首页 > 编程知识 正文

说一说servlet的生命周期,servlet生命周期及特点

时间:2023-05-06 10:20:05 阅读:259478 作者:1909

文章目录 一.面试常考问题二.Servlet详解(1)什么是Servlet类(2)Servlet类创建(3)Servlet接口(4)Servlet请求响应流程:(5)tomcat和servlet的关系

一.面试常考问题 问题1:请回答Servlet生命周期?

Servlet是单实例多线程的,自始至终只会创建一个对象来响应用户请求。

①如果web.xml中没有配置load-on-startup,则当用户第一次请求到达时创建servlet类的对象,然后使用该对象依次调用service(ServletRequest,ServletResponse)—service(HttpServletRequest,HttpServletResponse)—doGet/doPost方法响应用户请求;当用户请求再次到达时,不会重新创建对象,直接使用已经创建的对象调用service—service—doGet/doPost进行响应。

②如果web.xml中有该Servlet的load-on-startup配置,则服务器启动时会按照load-on-startup配置的加载顺序依次创建Servlet对象,当请求到达时直接使用对象调用service-service-doGet/doPost方法进行相应。

③当服务器关闭时,就销毁Servlet对象实例

问题2:为什么创建的servlet是继承自httpServlet,而不是直接实现Servlet接口?HttpServlet已经实现了HTTP协议处理。 二.Servlet详解 (1)什么是Servlet类 servlet是Server+Applet的缩写,表示服务器应用。Servlet其实就是一套规范,按照servlet规范编写的程序可以直接运行在支持servlet规范的java服务器上。

Servlet就是继承了(javax.servlet.http.HttpServlet)类、能够接收请求的Java类。

(2)Servlet类创建 ①创建过程

a.创建一个类(类名通常以Servlet结尾)
b.继承(javax.servlet.http.HttpServlet)类
c.重写doGet和doPost方法
d.如果get请求和post请求的处理方式相同,则在doGet中调用doPost,然后将处理请求的逻辑代码写在doPost方法中

②Servlet类三种创建方式:

a.implements Servlet
b.extends GenericServlet
c.extends HttpServlet
在实际项目开发中,我们通常采用第三种继承HttpServlet的方式创建Servlet类,HttpServlet已经实现了HTTP协议处理。

(3)Servlet接口 Servlet是一套规范,那么里面的Servlet结构自然很重要了。Servlet接口定义如下: 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();} init在容器启动时会被容器调用(load-on-startup设置为负数或者不设置时会在Servlet第一次被调用时才被调用),只会调用一次;getServletConfig用户获取ServletConfig;service方法用于处理一个具体的请求;getServletInfo方法用于获取Servlet相关信息,这个方法要自己实现,默认返回空字符串。destory主要用于Servlet销毁时释放资源,一般是关闭服务器时,也只会调用一次。 (4)Servlet请求响应流程: 处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西。理解这个的前提是了解一些http协议的东西,并且知道B/S模式(浏览器/服务器)。

一个Java Servlet就是一个小型Java应用程序,它可以继承HttpServlet实现,运行在Web服务器中。Servlet会接收并响应来自浏览器的请求,通常是基于Http协议的请求。

(5)tomcat和servlet的关系 Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件.
①:Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,所有的HTTP头数据读可以通过request对象调用对应的方法查询到。②:Tomcat同时会要响应的信息封装为HttpServletResponse类型的response对象,通过设置response属性就可以控制要输出到浏览器的内容,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器

补充Servlet生命周期图解

Invest in yourself while you are young.

2020.03.08

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。