【目录】
- Servlet多重映射
- 映射路径中使用通配符
- <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知识点
网友评论