Tomcat

第一章 一个简单的http服务器

  • http与socket的关系
    1.http只是一个应用层协议,所有应用层协议都是基于socket编程,http也不例外
    2.所以自己编写的http服务器是通过socket获取数据,然后将数据按照http协议解析,从而得到需要的数据
  • javax.net.Socket和javax.net.ServerSocket
    1.在java中,前者是客户端套接字,后者是服务端套接字
    2.ServerSocket.accept()方法会阻塞线程,直到建立连接!!!
  • Request、Response
    1.前者用于包装请求数据(主要是ServerSocket对象中的输入流);
    2.后者用于包装响应数据(主要是ServerSocket对象中的输出流);
    3.对于tomcat,有相应的类实现javax.servlet.ServletRequest即ServletResponse接口,只是不一定叫Request/Response

第二章 一个简单的servlet容器

  • javax.servlet.Sevlet接口

    public interface Servlet {
        public void init(ServletConfig config) throws ServletException;
        
        public ServletConfig getServletConfig();
     
        public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
    	
        public String getServletInfo();
        
        public void destroy();
    }
    

    其中:
    1.init()、service()、destroy()方法与servlet的生命周期相关;init()方法只会调用一次
    2.请求到达后,容器调用servlet的service()方法处理请求(会将ServletRequest、ServletResponse对象作为参数传入service方法)
    3.在将servlet实例从服务中移除前,容器会调用destroy()方法

  • javax.servlet.ServletRequest/ServletResponse
    servlet规范中关于请求、响应的接口,主要起到对请求/响应的包装作用; 传入service(…)方法的对象实现了这个接口

第三章 连接器

  • StringManager类
    在org.apache.catalina.util下
    单例
    用于管理某个包下的错误信息
  • 本章容器程序的几个主要模块
    启动模块:Bootstrap类,连接模块的连接器在其中另起一个线程从而启动容器
    连接器模块:由连接器部分(负责等待http请求,然后将socket传递给处理器部分处理) 和 处理器部分(负责创建Request、Response对象;解析请求并填充Request;交给相应的核心模块处理静态/动态资源请求)组成
    核心模块:处理静态资源的类 和 处理动态请求的类(后者负责调用servlet)
  • javax.servlet.http.HttpServlet
    HttpServlet继承了GenericServlet,而GenericServlet实现Servlet接口;
    可见HttpServlet包含了Servlet的方法,但是HttpServlet更适用于http协议;
    => servlet的相关规范,都有一个对应的http版本;从第二章到第三章的类,基本就是由servlet规范上升到其http版本
  • javax.servlet.http.HttpServletRequest、HttpServletResponse
    位于javax.servlet.http包下;
    与ServletRequest的区别在于:HttpServletRequest符合http协议(ch02中实现的前一个接口,ch03中实现的后一个接口)

杂七杂八

  • Servlet与jdk的关系
    1.servlet只是http和后端java应用程序交互的一套接口规范。看做一个特殊的java类即可,可以在jdk下编译运行;
    2. jdk1.8以后没有javax.servlet包,不过在tomcat下可以找到;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值