Servlet的理解和运行流程

1.怎么理解Servlet?

Public interface Servlet
           Implement by : FacesServlet, GenericServlet, JspPage
  Servlet是一套规范,内部提供一套接口,运行在Application服务器中,通过http协议用来接收客户端的请求和回复响应。具体的实现类需要服务器厂商提供。

  由于部署在服务器上的web项目,必须通过在浏览器的地址栏中输入地址才可以被访问到,所以Servlet也需要配置地址才能被浏览器访问。

例如:http://192.01.18:8080/ALiPaPa/LoginServlet

2.谁创建了Servlet?

Servlet容器:Tomcat、JBoss、webLogic等。

3.如何新建一个Servlet?

①继承:想要创建一个Servlet,必须继承HttpServlet类,或实现Servlet接口;
②注册:在web.xml里配置Servlet的配置映射信息。
   Servlet注册:Servlet程序必须在WEB应用程序的web.xml文件中进行注册和映射其访问路径,才可以被Servlet引擎加载和被浏览器访问。
   一个标签用于注册一个Servlet,它包含有两个主要的子元素:,分别用于设置Servlet的注册名称和Servlet的完整类名。
      一个标签用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:,分别用于匹配Servlet的注册名称和Servlet的对外访问路径。
 告诉TomCat新创建了一个Servlet类; 
<servlet>               
    <servlet-name>LoginServletservlet-name>                              这个新建的Servlet类名字叫LoginServlet;
    <servlet-class>com.atguigu.servlet.LoginServletservlet-class>        这是LoginServlet类的全类名;
        <init-param>                           通过key-value的形式,设置初始化信息
                <param-name>usernameparam-name>      初始化参数的名:key
                <param-value>rootparam-value>        初始化参数的值:value
        init-param>
servlet>            
<servlet-mapping>             给这个LoginServlet程序配置访问地址:/loginServlet
    <servlet-name>LoginServletservlet-name>
    <url-pattern>/loginServleturl-pattern>
servlet-mapping>
    上面Servlet的标签内配置的信息其实就是 ServletConfig接口。

4.Servlet的对象是如何创建的?

通过反射!
默认是:浏览器是在第一次请求访问的时候,TomCat创建对应的Servlet对象。
当发起一个请求,TomCat通过 标签中映射的url路径,找到需要运行的对应的com.Servlet类;由于这个Servlet是第一次访
问,TomCat中还没有这个Servlet对象,TomCat会通过这个Servlet的全类名,得到这个Servlet类的Class对象;然后TomCat再通过Class反射调用Servlet的构造器,把对象创建出来,生命周期开始。
Servlet对象创建出来之后,TomCat调用这个对象的init()方法,将ServletConfig做为方法入参,做初始化操作;然后调用service()方法处理请求和回传数据。service()方法会被多次调用,客户端每请求一次Servlet,对应的service()方法就会被调用一次;最后根据请求方式的不同去分别调用doGet()或doPost()方法做请求分发。
当TomCat服务器停止或移除当前工程的时候,就会调用destroy()方法,Servlet对象销毁,生命周期结束。

5.如何实现在Tomcat启动时就把需要的Servlet对象创建出来?

在需要启动时创建对象的标签内加上  1  标签,指定一个大于等于0的正整数就可以了。

   值越小优先级越高。如果有多个Servlet都需要TomCat启动时被创建,设置的数越小先被创建。如果是负数就是默认情况:代表第一次被访问时创建对象。
SpringMVC就是通过再web.xml里配置标签的方式来实现在TomCat启动时就创建SpringMVC的核心对象DispatcherServlet,来代替Servlet功能。

6.Servlet的运行详细流程图

Servlet的理解和运行流程_第1张图片
Servlet程序必须通过Web容器来启动运行,也就是TomCat,并且储存目录有特殊要求,通需要存储在

7.Servlet对象的生命周期:

默认客户端第一次请求访问时,创建对应的Servlet对象。
1.先反射调用Servlet的构造器,创建Servlet对象,生命周期开始;
2.然后执行init()初始化方法;只会调用一次,其中方法参数ServletConfig也是一个接口。
3.执行server()方法,主要用来处理请求和回传数据;执行多次,每次请求都会调用一次。一直点击刷新地址栏,server()就会一直执行。
4.当TomCat服务器停止或移除当前工程的时候,会调用destroy()方法,Servlet对象销毁,生命周期结束。

Servlet的生命周期是Servlet接口源码规定的:
Servlet的理解和运行流程_第2张图片

你可能感兴趣的:(javaee)