(参考了公众号:java架构沉思录中的文章:教你写一个迷你版的tomcat
原文:https://www.jianshu.com/p/dcelee01fb90)
作为一个java学习的起步者,对tomcat的认识还是有很多的欠缺,在无意中发现了这篇文章,便在自己的环境下尝试搭建,收获良多:
分以下几个步骤:
(1)提供Socket服务
(2)进行请求的转发
(3)把请求和响应封装成request/response
代码实现如下:
1、工程截图:
2、封装请求对象:通过输入流,对HTTP协议进行解析,拿到了HTTP请求头的方法和URL:
/**
* @author wangjie
* @version 2018/11/9
* 封装请求对象
* 通过输入流,对http协议进行解析,拿到http请求头的方法和url
*/
public class MyRequest {
private String url;
private String method;
public MyRequest(InputStream inputStream) throws IOException{
String httpRequest ="";
byte[] httpRequestBytes =new byte[1024];
int length =0;
if((length=inputStream.read(httpRequestBytes)) >0){
httpRequest=new String(httpRequestBytes,0,length);
}
String httpHead = httpRequest.split("\n")[0];
url=httpHead.split("\\s")[1];
method=httpHead.split("\\s")[0];
System.out.println(this);
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMethod() {
return method;
}
public void setMethod(String method) {
this.method = method;
}
}
3、封装响应对象:基于HTTP协议的格式进行输出写