JAVA 探索之路01 -tomcat原理及静态缓存

本文详细介绍了JAVA Tomcat的工作原理,包括配置文件解析、请求响应处理,以及静态资源缓存机制的讲解。通过自定义MyTomcat容器模拟了Tomcat的启动、请求处理流程,展示了如何利用Last-Modified和Etag实现静态资源的缓存优化,提高服务器性能。
摘要由CSDN通过智能技术生成

一  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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值