servlet-mapping元素及其子元素的使用方法

项目推荐

推荐个人GItHub开源项目(iot-dc3)一个开源的、分布式的物联网(IOT)平台,用于快速开发物联网项目和管理拓展。https://github.com/pnoker/iot-dc3


< servlet-mapping >元素的作用:用在Servlet和URL样式之间定义一个映射。
它包含了两个子元素
< servlet- name >< url-pattern >

*< servlet-name >元素给出的Servlet名字必须是在< servlet >*元素中声明过的Servlet的名字,
*< url-pattern>*元素指定对应于Servlet的URL路径,该路径是相对于Web应用程序上下文根的路径。
例如:

<servlet>
    <description>spring mvc servlet</description>
    <servlet-name>wecard</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
				classpath:spring-mvc.xml
			</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>wecard</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>wecard</servlet-name>
    <url-pattern>*.html</url-pattern>
  </servlet-mapping>

在配置了Servlet与URL样式之间的映射后,当Servlet容器接收到一个请求,它首先确定该请求应该由哪一个Web应用程序来响应。这是通过比较请求URI的开始部分与Web应用程序的上下文路径来确定的。映射到Servlet的路径是请求URI减去上下文的路径,Web应用程序的Context对象在去掉请求URI的上下文路径后,将按照下面的路径映射规则的顺序对剩余部分的路径进行处理,并且在找到第一个成功的匹配后,不再进行下一个匹配,
大概意思只这样的,
例子:

register.html部分代码

<div class="mt30 center">
	<a href="wechatOAuth.html">忘记密码</a> 
	<a href="#springUrl('/register.do')">点我注册</a>
</div>

同过SpringURL路径解析,servlet接到register.do 请求它,确定web程序响应,然后做出反应:

  • 容器试着对请求的路径和Servlet映射的路径进行精确匹配,如果匹配成功,则调用这个Servlet来处理请求,
    容器试着匹配最长的路径前缀,以斜杠(/)为路径分隔符,按照路径树逐级递减匹配,选择最长匹配的Servlet来处理请求,

  • 如果请求的URL路径最后有扩展名,如.jsp,Servlet容器会试着匹配处理这个扩展名的Servlet,

  • 如果按照前面3条规则没有找到匹配的Servlet,容器会调用Web应用程序默认的Servlet来对请求进行处理,如果没有定义默认的Servlet,容器将向客户端发送HTTP 404错误信息(请求资源不存在),

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值