springMVC的url-pattern
来源:互联网 发布:android电视直播软件 编辑:程序博客网 时间:2024/06/07 06:00
web.xml中
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
其中<url-pattern>
中的路径的情况
1、“/”
.jsp能通过浏览器直接打开,.html则不能
此情况下会拦截静态资源,不会拦截.jsp
2、“/action/*”
.jsp和.html都可以通过浏览器直接打开,url中不需要加/action
需要controller处理的url则需要添加/action才会被拦截
3、 “/*” (错误)
.jsp和.html都不能通过浏览器直接打开
此情况或拦截所有请求,转发后的.jsp同样会被拦截
这算是一种错误的使用情况,因为会拦截所有请求,无法展示任何东西,单独配置展示类型资源则又比“/”的情况需要多处理一种.jsp类型,使用意义不大
4、 “/**”(错误)
.jsp和.html都可以通过浏览器直接打开
但是controller拦截不到url,同时会报出如下信息提示错误
信息: Suspicious url pattern: “/**” in context [/shoes] - see sections 12.1 and 12.2 of the Servlet specification
5、 “*.do”
简单好用的方式,不会拦截静态资源,页面都可以直接通过浏览器访问。
缺点:不是REST风格,对于追求url格式的没办法使用
ps:WEB-INF目录下的内容无法通过浏览器直接访问,其内的.jsp需要转发才能访问
对于静态资源拦截的处理,在网上可以找到三种方式
1、在web-xml中对每种类型的资源进行处理,需要写在spring的servlet前面
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping>
2、spring配置文件中的<mvc:resources>
标签,此标签需要指定静态资源的位置,例如
<mvc:resources mapping="/images/**" location="/images/" />
可参考http://blog.csdn.net/clementad/article/details/46763339
3、spring配置文件中的<mvc:default-servlet-handler/>
,个人认为这种方式最简单,只需两句话
<!-- 配置mvc注解扫描 --> <mvc:annotation-driven/> <!-- 配置静态资源的默认servlet --> <mvc:default-servlet-handler/>
这里会在DispatcherServlet找不到资源时调用servlet容器默认的servlet来处理,此时就不会拦截静态资源了
使用这种方式时碰到一个小问题:
@RequestMapping()中的地址和静态页面重复时会出问题,
例如@RequestMapping(“/add”)和静态页面add.html,
这样配置无法访问静态页面,会被spring拦下来进入(“/add”)的controller。
为此我使用第一种方式在web.xml中加了一个.html的过滤
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
ps:方式2、3在使用时需注意拦截器过滤的问题
- springMVC的url-pattern
- SpringMVC中url-pattern /和/*的区别
- springmvc中url-pattern /和/*的区别
- SpringMVC中url-pattern /和/*的区别
- SpringMVC中url-pattern /和/*的区别
- springmvc dispatcherServlet url-pattern的设置
- springmvc <url-pattern>xxx</url-pattern>配置
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc中url-url-pattern /和/*的区别
- springmvc的Dispatcher的url-pattern的拦截机制
- SpringMVC DispatcherServlet在配置Rest url-pattern的一点技巧
- SpringMVC 配置Rest api中url-pattern的技巧
- android点击输入法会把底部顶上去的解决办法
- Fibonacci斐波那契数列序列
- locate(str1,str2)函数
- 严苛模式(StrictMode)
- matlab figure是什么用途
- springMVC的url-pattern
- Java反射机制详解
- Linux常用命令手册
- C
- ubuntu下面 将桌面换成 英文
- Java求给定数组的最长递增子序列
- 数据库隔离级别---MySQL的默认隔离级别就是Repeatable,Oracle默认Read committed,最高级别Serializable
- shared_ptr简单实现
- 【c】三子棋