Servlet学习笔记2: Servlet细节

【目录】

  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知识点
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容