zoukankan      html  css  js  c++  java
  • servlet 各种请求路径方法及其生命周期

    /*
    1.具体请求路径:
                 如果浏览器请求的【资源文件地址】与当前Servlet中<url-pattern>的内容【完全一致】,Tomcat才会带调用当前Servlet
    
                 例子   OneServlet    <url-pattern>/one.do</url-pattern>
    
    
                        http://localhost:8080/myWeb/one.do   OneServelt会被调用
    
    
                      http://localhost:8080/myWeb/abc/one.do OneServelt不会被调用
    
                        [注意]: 具体请求路径,必须以"/"为开头
    
    
        2.前置条件请求路径:
                         如果浏览器请求的【资源文件地址】以当前Servelt中<url-pattern>
                 的内容为开头的。Tomcat才会带调用当前Servlet
    
                 例子  OneServlet    <url-pattern>/abc/*</url-pattern>
    
                       "*": 是一个通配符,描述是一个任意长度字符串
                   如果当前【资源文件地址】是以"/abc/"为开头,就表示调用的资源OneServlet
    
    
                        http://localhost:8080/myWeb/abc/two.do        OneServelt会被调用
                    
    
                    http://localhost:8080/myWeb/abc/one.html      OneServelt会被调用
            
                        [注意]: 具体请求路径,必须以"/"为开头,必须以"*"为结尾
    
      3.后置条件请求路径:如果浏览器请求的【资源文件地址】以当前Servelt中<url-pattern>
                  的内容为结尾的。Tomcat才会带调用当前Servlet
    
                    例子  OneServlet    <url-pattern>*.do</url-pattern>
    
                      http://localhost:555/myWeb/abc/one.do        OneServelt会被调用
    
                      http://localhost:555/myWeb/five.do            OneServelt会被调用
    
                      http://localhost:555/myWeb/five.do?uname=mike OneServelt会被调用,因为tomcat是通过读取url来定位servlet的
    
                      请求行:[
                                 url:http://localhost:555/myWeb/five.do
                                 methos:get
                              ]
    
                                  请求头:[
                                        uname:mike
                               ]
    
                            [注意]: 不能以"/"为开头,必须以"*"为开头
    
     4.通配符请求路径:   当前Servlet可以接收对当前网站所有的请求
    
                           例子  OneServlet    <url-pattern>/*</url-pattern>
    
                         http://localhost:555/myWeb/mm.jpg   OneServlet
    
    
                     http://localhost:555/myWeb/one.do    OneServlet 
    
    
    5.请求路径优先级:[具体请求路径] > [前置条件]>[通配符] >[后置条件] 
    
                http://localhost:555/myWeb/abc/one.do
    
            OneServlet:  <url-pattern>/abc/one.do</url-pattern>
    
            TwoServlet    <url-pattern>/abc/*</url-pattern>
    
                ThreeServlet  <url-pattern>*.do</url-pattern> 
    
            FourServlet   <url-pattern>/*</url-pattern>
    */

    关于优先级:即tomcat根据获取的url去web.xml寻找对应的Servlet来响应请求。

          如果按照【具体请求路径】有匹配了,那么直接调用对应的Servlet,反之再按【前置条件】去匹配,依次类推

    生命周期

    /*
    Servlet实例对象【生命周期】
    
                1.项目中,所有Servlet的实例对象都是由Tomcat负责创建;开发人员
              没有权利创建Servlet的实例对象
    
                2.【创建时机】:
    
                   1)【默认情况】:当第一个用户来访问这个Servlet时,Tomcat负责创建
                                它的实例对象
    
                   2)【人工干预】: 要求Tomcat在启动时,创建Servlet的实例对象
    
                                         <servlet>
                                              <servlet-name>TwoServlet</servlet-name>
                                              <servlet-class>com.bjpowernode.controller.TwoServlet</servlet-class>
                                              <load-on-startup>890</load-on-startup>
                                            </servlet>
    
              3.在Tomcat运行期间,一个Servlet实现类只能被创建一个实例对象
    
          4.在Tomcat关闭时,由Tomcat负责销毁所有的Servlet实例对象
    */

  • 相关阅读:
    [转]SVN 乱码问题
    [转]自己做 Visual Studio 2013 代码折叠插件
    [Java]一步一步学 Web
    [转]SQL Server 结构读取
    [转][c#]注册表经验集
    [转]加密经验集 => C#
    [转]Oracle 连接dll
    《高效能程序员的修炼》读书笔记
    Blend for Visual Studio 2013
    ASP.NET中服务器控件的生命周期
  • 原文地址:https://www.cnblogs.com/zsben991126/p/12654895.html
Copyright © 2011-2022 走看看