《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解
上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置。今天我们来详细的研究一下DispatcherServlet的url-pattern配置。
一、DispatcherServlet的url-pattern配置
在没有特别要求的情况下,SpringMVC的中央调度器DispatcherServlet的url-pattern常使用后缀匹配方式进行配置,如*.do、*.action
注意:这里的url-pattern不能写/*,因为DispatcherServlet会将向JSP的动态页面跳转请求也当作为普通的Controller来处理。中央调度器在调用处理器映射器来为其查找相应的处理器时,肯定找不到。所以在这种情况下,所有的JSP页面跳转都会变为404。
最好也不要写成/,因为DispatcherServlet会将向静态资源的请求当作为普通的Controller来处理。如.css、.jpg、.js等。所以静态资源也会变成404。
所以建议写成*.do、*.action之类的配置。当然也有一些时候不得不配置成/,当开发一些移动端接口采用restful请求时,需要配置成/。
二、url-pattern配置为/时静态资源的访问
1:使用tomcat的默认Servlet解决
在web.xml中添加如下代码
<servlet-mapping><servlet-name>default</servlet-name><url-pattern>*.js</url-pattern> </servlet-mapping>
注意:上方只处理*.js,如果需要大家可以再加几个拦截其它资源。使用该配置只需要配置servlet-mapping即可,default的Servlet配置在tomcat的conf/web.xml文件中。如下图:
具体的解释在该段代码的上方注释里。
<!-- The default servlet for all web applications, that serves static --> <!-- resources. It processes all requests that are not mapped to other --> <!-- servlets with servlet mappings (defined either here or in your own --> <!-- web.xml file). This servlet supports the following initialization --> <!-- parameters (default values are in square brackets): -->
该default的servlet对所有的web应用程序生效,专门处理静态资源。(处理所有没有匹配到servlet mappings的请求)
2:使用SpringMVC的default-servlet-handler解决
在springmvc.xml中添加<mvc:default-servlet-handler/>。当然添加这个default-servlet-handler时,需要对当前xml添加mvc的约束xsd。如下图:
最终springmvc.xml如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><mvc:default-servlet-handler/><!-- 注册视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!-- 注册SpringMVC处理器 --><bean id="/my.do" class="cn.wechatbao.controller.MyController"></bean> </beans>
注意:default-servlet-handler会对静态资源的访问请求通过handlerMapping映射到默认的Servlet请求处理器DefaultServletHttpRequestHandler类上。而该类最终调用的是Tomcat的defaultServlet来处理的请求。如图:
3:使用SpringMVC的resources解决
在springmvc.xml中添加如下代码:
<mvc:resources location="/images/" mapping="/images/**"></mvc:resources>
其中的location和mapping为具体的静态资源文件夹,大家可以根据具体的项目来定义。
注意:该方法是在spring3.0.4版本后,专门定义的一个静态资源的处理器ResourceHttpRequestHandler类,该种配置文件会将所有的静态资源映射到ResourceHttpRequestHandler该类
转载于:https://www.cnblogs.com/xinhudong/p/8323857.html
《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解相关推荐
- 从数据类型 nvarchar 转换为 numeric 时出错_JS入门篇(三):javascript的数据类型详解...
JavaScript的数据类型分为两大类,基本数据类型和复杂数据类型. 基本数据类型:Undefined.Null.Boolean.Number.String. 复杂数据类型:Object. (1)U ...
- ajax mode,DWR的三种Reverse Ajax Mode配置详解
Full Streaming Mode Early Closing Mode Polling Mode 在DWR应用中.默认启用的是Full Streaming Mode .它是三种modes中最快的 ...
- SpringMVC 框架系列之组件概述与配置详解
在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...
- SpringMVC基础--spring MVC配置详解
牧涛 --<-<-<@态度决定一切→_→... 博客园 首页 新闻 新随笔 联系 管理 订阅 随笔- 171 文章- 3 评论- 79 spring MVC配置详解 现在主流的 ...
- Spring框架深入(四)--SpringMVC配置详解
一.SpringMVC web模型 二.@RequestMapping参数说明 1.value:定义处理方法的请求的URL地址: 2.method:定义处理的方法的http method类型,如GET ...
- mysql 获取当前整点_Oracle 生成未来三天的整点时间(步骤详解)
需求:X坐标轴时间都为整点时间,展示未来三天内的预测(x轴展示未来三天的整点时间),每3个小时一个刻度,横坐标共计24个刻度 步骤一:取当前时间 SELECT SYSDATE FROM DUAL 步骤 ...
- Android异步处理三:Handler+Looper+MessageQueue深入详解
本博文地址:http://blog.csdn.net/mylzc/article/details/6771331 转载请注明出处 Android异步处理系列文章索引 Android异步处理一:使用Th ...
- SSO单点登录三种情况的实现方式详解
SSO单点登录三种情况的实现方式详解 单点登录(SSO--Single Sign On)对于我们来说已经不陌生了.对于大型系统来说使用单点登录可以减少用户很多的麻烦.就拿百度来说吧,百度下面有很多的子 ...
- TCP三次握手/四次分手详解
TCP三次握手/四次分手详解 | ------------------TCP(Transmission Control Protocol) 传输控制协议 ...
- 【正点原子Linux连载】第三十一章 U-Boot顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
最新文章
- MyBatis中使用#{}和${}的区别
- [USACO1.4]母亲的牛奶 Mother's Milk
- html 选中tag标签,HTML Tag Selector标签选择器PFC020071801
- 巨头入局,华为云将给音视频行业带来什么?
- php执行一条insert插入两条数据其中一条乱码
- MoveNet 姿态估计,树莓派上也能跑!
- 区块链学习笔记:DAY05 如何使用公有云区块链服务
- 广西谋建面向东盟金融开放门户
- IBM服务器无法启动怎么恢复
- 2022辽宁最新消防设施操作员模拟试题题库及答案
- 安利!王一博与海飞丝的清爽秘籍
- 关于Android蓝牙设备的连接使用
- CTF训练 web安全SSI注入
- BMS(电池管理系统)第五课 ——核心!!!SOH算法开发
- CAN总线终端电阻的作用
- 实验室风淋系统洁净风淋室
- B站视频之CC字幕抓取
- XDU Problem 1037 - 智破机枪阵
- 广义回归神经网络(GRNN) 讲解的较好的博客
- axure命令行_如何快速学习Axure工具?