美文网首页
Servlet学习笔记2: Servlet细节

Servlet学习笔记2: Servlet细节

作者: 奔跑的程序媛A | 来源:发表于2021-02-19 17:08 被阅读0次

    【目录】

    1. Servlet多重映射
    2. 映射路径中使用通配符
    3. <load-on-startup>

    Servlet是运行在Web服务器或应用服务器上的程序,它担当web浏览器或其他HTTP客户程序发出的请求

    1. Servlet多重映射

    Servlet是多重映射是指同一个Servlet可以被映射成多个虚拟路径,客户端可以通过多个路径访问同一个Servlet。

    • 配置一
    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>/business1</url-pattern>  
        <url-pattern>/business2</url-pattern>  
    </servlet-mapping>  
    
    • 配置二
    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>/business1</url-pattern>  
    </servlet-mapping>  
    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>/business2</url-pattern>  
    </servlet-mapping>  
    

    servlet-mapping虽然可以多配置,但url-pattern虚拟映射路径绝对不能重复,否则报空指针异常。

    2. 映射路径中使用通配符

    • 如果不使用通配符,那么在<url-pattern>的映射路径必须是绝对路径,说白了是前面必须加一个“/”
    • 三种通配方式的优先级是匹配的范围越大优先级越低。
    • 通配符要么在开头,要么在结尾,不能在中间

    1)完全匹配

    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>business/*</url-pattern> 
    </servlet-mapping>  
    

    配置所有路径,这种通配符的方式一般在登录拦截的时候用的比较多点。

    2)路径匹配

    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>business/*</url-pattern> 
    </servlet-mapping>  
    

    以*通配符为后辍,例如:business/a、business/b...都是可以访问此business的。

    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>/*/business</url-pattern> 
    </servlet-mapping>  
    

    可以使用,a/business、b/business...等路径访问。

    3)扩展名匹配

    <servlet-mapping>  
        <servlet-name>business</servlet-name>  
        <url-pattern>business/*.sss</url-pattern> 
    </servlet-mapping>  
    

    例如:business/a.sb、business/b.sb...等都是可以访问到的,但此种方式的的映射路径不能是以/开头的路径。

    3.<load-on-startup>

    • load-on-startup 元素标记容器是否应该在web应用程序启动的时候就加载这个servlet,(实例化并调用其init()方法)。
    • 它的值必须是一个整数,表示servlet被加载的先后顺序。
    • 如果该元素的值为负数或者没有设置,则容器会当Servlet被请求时再加载。
    • 如果值为正整数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet的优先级越高,就越先被加载。值相同时,容器就会自己选择顺序来加载。--转

    Servlet知识点

    相关文章

      网友评论

          本文标题:Servlet学习笔记2: Servlet细节

          本文链接:https://www.haomeiwen.com/subject/ukobtltx.html