实现Servlet虚拟路径的映射

一、Servlet的多重映射

多个路径访问同一个Servlet,这里写了三种方式,必须掌握第一种。

1、注解配置访问路径

@WebServlet(name = "helloServlet", value = {"/hello-servlet","/a","/b","/c"})
public class HelloServlet extends HttpServlet {

2、配置多个<servlet-mapping>

        <servlet>
		<description></description>
		<display-name>TestServlet01</display-name>
		<servlet-name>TestServlet01</servlet-name>
		<servlet-class>cn.itcast.servlet.TestServlet01</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>TestServlet01</servlet-name>
		<url-pattern>/TestServlet01</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<!--映射为Test01 -->
		<servlet-name>TestServlet01</servlet-name>
		<url-pattern>/Test01</url-pattern>
	</servlet-mapping>

http://localhost:8080/chapter03/TestServlet01

http://localhost:8080/chapter03/Test01

3、一个<servlet-mapping>配置多个<url-pattern>

<servlet-mapping>                             
	<servlet-name>TestServlet01</servlet-name>
	<url-pattern>/TestServlet01</url-pattern> 
	<url-pattern>/Test02</url-pattern>        
	<url-pattern>/</url-pattern>              
</servlet-mapping>                            

http://localhost:8080/chapter03/Test02

http://localhost:8080/chapter03/

二、Servlet的映射路径中使用通配符(*)

两种使用方式

1.目录匹配: 比如 /abc/* 或者 /*
2.扩展名匹配: *.do ,*.action

注意:两种使用方式不能混用,例如 /*.do这种写法是错误的。

优先级:完全目录匹配>目录匹配>扩展名匹配

三、缺省Servlet

Servlet的映射路径 “/” ,代表这是一个缺省的servlet.

找不到匹配的虚拟路径时,交由缺省Servlet处理

四、tomcat也有缺省Servlet

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

<!-- The mapping for the default servlet -->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

请求路径找不到匹配的虚拟路径时,tomcat的缺省Servlet就起作用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值