web.xml中 /和/*的区别
< url-pattern>/</url-pattern> 会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
< url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)
因为 springmvc 要使用DispatcherServlet类 处理 前端的 请求,所以配置为< url-pattern > / </ url-pattern > 将路径型url 交给springMVC处理
例如 中文乱码处理、shiro 安全认证处理需要处理所有的 url ,所以配置为< url-pattern > /* </ url-pattern >
< url-pattern > / </ url-pattern > 不会匹配到*.jsp,即:*.jsp不会进入spring的 DispatcherServlet类 。
< url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。
例某 web.xml文件配置:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 3 <!-- 配置spring 上下文参数 --> 4 <context-param> 5 <param-name>contextConfigLocation</param-name> 6 <param-value>classpath:applicationContext.xml</param-value> 7 </context-param> 8 <!-- 配置spring ---- 配置侦听器 --> 9 <listener> 10 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 11 </listener> 12 <!-- 配置springmvc 核心控制器 --> 13 <servlet> 14 <servlet-name>springDispatcherServlet</servlet-name> 15 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 16 <init-param> 17 <param-name>contextConfigLocation</param-name> 18 <param-value>classpath:springMVC.xml</param-value> 19 </init-param> 20 <load-on-startup>1</load-on-startup> 21 </servlet> 22 <servlet-mapping> 23 <servlet-name>springDispatcherServlet</servlet-name> 24 <url-pattern>/</url-pattern> 25 </servlet-mapping> 26 <!-- 配置shiro认证过滤器 --> 27 <filter> 28 <filter-name>shiroFilter</filter-name> 29 <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 30 <init-param> 31 <param-name>targetFilterLifecycle</param-name> 32 <param-value>true</param-value> 33 </init-param> 34 </filter> 35 <filter-mapping> 36 <filter-name>shiroFilter</filter-name> 37 <url-pattern>/*</url-pattern> 38 </filter-mapping> 39 <!-- 配置编码过滤器(只对post方法) --> 40 <filter> 41 <filter-name>CharacterEncodingFilter</filter-name> 42 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 43 <init-param> 44 <param-name>encoding</param-name> 45 <param-value>UTF-8</param-value> 46 </init-param> 47 <init-param> 48 <param-name>forceRequestEncoding</param-name> 49 <param-value>true</param-value> 50 </init-param> 51 <init-param> 52 <param-name>forceResponseEncoding</param-name> 53 <param-value>true</param-value> 54 </init-param> 55 </filter> 56 <filter-mapping> 57 <filter-name>CharacterEncodingFilter</filter-name> 58 <url-pattern>/*</url-pattern> 59 </filter-mapping> 60 </web-app>
转载于:https://www.cnblogs.com/mumu122GIS/p/10161725.html
web.xml中 /和/*的区别相关推荐
- web.xml中/和/*的区别
< url-pattern > / </ url-pattern > 不会匹配到*.jsp,即:.jsp不会进入spring的 DispatcherServlet类 . < ...
- web.xml中filter,servlet和listener区别
2019独角兽企业重金招聘Python工程师标准>>> 1.Filter与Servlet的区别和联系,点击查看详情 2.Filter的执行顺序与实例,点击查看详情 Filter 实现 ...
- web.xml中的ContextLoaderListener和DispatcherServlet区别
web.xml中的ContextLoaderListener和DispatcherServlet区别 ContextLoaderListener和DispatcherServlet都会在Web容器启动 ...
- 深入理解web.xml中配置/和/*的区别
在用SpringMVC进行web开发的时候,如果将DispathcerServlet对外访问的虚拟路径配置成/时,需要在Spring的配置文件中配置<mvc:default-servlet-ha ...
- JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)
文章目录 结论 分析 1.context-param 2.listener 3.filter 4.servlet 总结 结论 先说结论,在JavaWeb的web.xml中的加载顺序为: context ...
- Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
Spring中,applicationContext.xml 配置文件在web.xml中的配置详解 2016年10月04日 15:22:26 阅读数:7936 转自http://www.cnblogs ...
- 【转载】web.xml中的classpath和classpath*
最近在review别的team代码,发现有些东西绝大多数人都不太清楚, 这里分几篇文章澄清下. 比如,大多数web-based应用都采用了spring 框架,但是spring 的配置文件,一般是在we ...
- web.xml中的主要元素说明(listener, filter, servlet)
web.xml中加载的顺序为:context-param ---> listener ---> filter ---> servlet. listener:主要针对的是对象的操作,如 ...
- java web.xml taglib_java – 在web.xml中声明JSP taglib指令
web.xml中的taglib元素为您上面提供的taglib伪指令提供了不同的用途. 正如David所说,每个页面都需要taglib伪指令. 如果您有许多页面使用常见的标签库,可以通过将taglib伪 ...
最新文章
- linux shell case语句
- 【Python】感觉是全网最详细Pandas合并数据集操作总结
- ABAP很厉害是怎么一种体验?
- [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵
- C++vector相关学习,我的理解
- PiFlow大数据流水线系统v0.9源码
- c oracle 分页工具类,Util工具类 跨Oracle、MySQL通用分页查询
- python 电脑文件变动提醒_Python整理文件方法,效率提升100倍-docx是什么文件
- 经典算法研究系列:七、深入浅出遗传算法,透析GA本质【转载】
- 【白皮书分享】工业互联网人才白皮书(2020).pdf(附下载链接)
- 碳酸铜行业调研报告 - 市场现状分析与发展前景预测
- matlab状态反馈控制器设计,H无穷的状态反馈控制器设计
- 小白:测试的逻辑思维
- php ios表情包,php处理APP中emoji表情包的方法
- 外卖联盟高级接口 - 美团联盟接口 美团外卖CPS+CPA推广活动推广API接口
- 偷偷看了同事的代码找到了优雅代码的秘密
- 求一元二次方程根(含虚根)
- org.hibernate.TransientObjectException:The given object has a null identifier
- java特征向量计算_Java与Python计算特征向量的区别
- ubuntu 下实现 quagga镜像
热门文章
- H5实例 移动端页面练习
- 什么是Vue?为什么要学习Vue?如何使用Vue?
- 下载OpenCV神经网络模型及pycharm中 argparse的参数设置
- 计算机网络 ospf重点,计算机网络:OSPF协议概述
- phpStudy下载安装+配置站点+You don't have permission to access / on this server错误解决
- C语言-输入一个正整数,输出它的所有质数因子
- 能ping通工作组计算机 无法访问,可以ping通不能访问共享,其他电脑可以访问
- 增量更新同步_干货 | Debezium实现Mysql到Elasticsearch高效实时同步
- centos php ssl,CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问
- 关于Image创建的内存管理