老生常谈 Servlet的一些基本知识

        Java Web开发,我们在这里谈到一个简单的,基础的,也是通用的技术-Servlet。如果要学好JavaWeb,个人认为,Servlet是首要必须学好的技术。因为我们之后的框架技术,多数是在他基础上扩展,或者是依赖于他来扩展的。
        首先,我们来谈谈Servlet的生命周期,我们来看下面这幅图



        我们能在这张图上看到Servlet的完整的生命周期。
        首先,我们通过浏览器发送Http请求到Servlet容器,也就是Tomcat服务器中。

        当服务器接收到请求之后,会判断是否是第一次调用该Servlet,如果是第一次调用,则初始化一个Servlet供使用(调用Servlet的init()方法),但是如果是第二次调用,就直接使用该Servlet。当然,如果这个Servlet在Web.xml中配置过服务器启动时就加载的参数,当然说明服务器里已经有这个Servlet了,所以就不需要再初始化一个新的了,直接拿有的来用。

        new好了Servlet对象后,服务器当然就需要开始new一个HttpServletRequest和一个HttpServletResponse对象。

        接下来,服务器会将之前new出来的两个对象传入Servlet中的service()方法里进行业务处理。如果是基于Web,那service()方法是已经写好了,不需要重写的,当然官方也不推荐重写,因为这个service()方法里面要判断传过来的HTTP请求类型,然后通过请求类型调用相应的业务处理类doXXX(),我么常用到的就是doGet()和doPOST()方法了。所以说这里就是调用serice()方法,然后根据HTTP请求类型调用相应的方法。

        最后,当我们完成操作后,需要返回一个封装好的HttpServletResponse方法。该方法会返回到Web容器中,然后由容器负责将其返回发送给浏览器显示。该Servlet在此次调用后,将会常驻于后台内存中,等待下一次的任务。

        而当容器,也就是服务器shutdown,所有的Servlet就会调用其destory()方法对自身进行销毁工作。

       这里总结一下从前我学习servlet用到的一些重点知识点:
     1. HTTP协议定义了GET和POST两种请求方法,POST方法对请求发送的数据量没有限制。 
     2. Servlet允许用户在服务器上运行Java代码和生成动态内容。  
       3. Servlet运行于Servlet容器中。 
     4. 扩展HttpServlet类的Servlet必须覆盖如下至少一个方法:doGet、soPost、
doPut、doDelete、init、destroy和getServletInfo。  
       5. Servlet声明周期包含三种方法:init()、service()和destroy()。  
       6. Servlet API包含在两个包中,javax.servlet和javax.servlet.http。  
       7. 通过从GenericServlet类或HttpServlet类扩展,可以编写Servlet。

你可能感兴趣的:(Web,servlet,生命周期,重点)