项目推荐
推荐个人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错误信息(请求资源不存在),