一 tomcat 原理
1. 代码结构
配置:
1. 配置文件
2. 配置tomcat容器
3. 请求request 和响应response
4. 处理服务servlet
运行流程:
客户端请求[inputStream]
>MyTomcat容器[servlet.serivce(request, response)]
>request[url,mothod]
>response[os.write(...);os.flush();]
1.1 配置文件 web.properties
servlet.one.url=/login
servlet.one.classname=com.northleaf.servlet.LoginServlet
1.2 tomcat 服务
public class MyTomcat {
private int port = 8080; //端口
ServerSocket serverSocket; //
private Map<Pattern, Class<?>> servletMapping = new HashMap<Pattern, Class<?>>();
private Properties webxml = new Properties();
private String WEB_INF = this.getClass().getResource("/").getPath();
public MyTomcat() {
start();
}
public MyTomcat(int port) {
this.port = port;
}
//容器启动之前 加载所有的 配置文件
private void init() {
FileInputStream fis = null;
try {
fis = new FileInputStream(WEB_INF + "web.properties");
webxml.load(fis);
for (Object k :
webxml.keySet()) {
String key = k.toString();
if (key.endsWith(".url")) {
String servletName = key.replaceAll("\\.url$", "");
String url = webxml.getProperty(key);
Pattern pattern = Pattern.compile(url);