SpringMVC学习(三)
来源:互联网 发布:ping 的端口 编辑:程序博客网 时间:2024/06/12 01:23
静态资源访问和default-servlet-handler
由于在dispatcherServlet中设置了对“/*”进行过滤,那么当系统内访问到诸如js等静态资源的时候会报错。
因此,需要在servlet-Context.xml中配置default-servlet-handler
和annotation-driven
两个bean。
前者会判断来了的请求是否被映射过(即使用RequestMapping进行过标记),如果映射过,则交给dispatcherServlet
进行映射;如果没有,则当做静态资源去直接访问,如果该资源或页面不存在,直接报404.
而后者annotation-driven,保证了在所有请求被过滤之后,带有注解映射的资源能够被识别到。因此,二者是同时存在的。
注:静态资源一般放在webapp目录下,即跟WEB-INF同级。否则可能需要配置静态资源访问映射。
<mvc:default-servlet-handler/> <mvc:annotation-driven></mvc:annotation-driven>
HiddenHttpMethodFilter配置
我们知道,form表单的提交,method是需要设置为POST请求的。
除了GET、POST请求,还有PUT、DELETE等诸多类型的请求。
在探讨如何实现PUT、DELETE请求的时候,先要弄清楚他们是什么,为何要有他们的存在。
Rest风格中的请求方式
Rest模式get,put,post,delete含义与区别
REST当中为什么要使用HTTP PUT
使用HiddenHttpMethodFilter将POST转换为PUT和DELETE
在web.xml中仅需要做出如下配置:
<filter> <filter-name>HiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class> </filter> <filter-mapping> <filter-name>HiddenHttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
在form中,要加入input标签(delete 同理):
<input type="hidden" name="_method" value="PUT"/>
这样,尽管form的method=POST,但是在提交的时候,HiddenHttpMethodFilter会主动将该提交操作转为需要的类型。
而在Controller类中,RequestMapping需要规定相应的方法,否则会无法映射,例如:
@RequestMapping(value="path", method=RequestMethod.PUT) public String update(User user){ userDao.update(user); return "success"; }
还有一点,form的action一定要是绝对路径,而不能是相对路径,否则会报错。绝对路径需要加入以下占位符:
<form:form action="${pageContext.request.contextPath }/input" method="POST" modelAttribute="employee">
该占位符的使用,需要引入依赖
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.2-b01</version> </dependency>
上述form中的ModelAttribute作用,见SpringMVC(二)
- SpringMVC学习(三)
- springmvc学习(三)
- SpringMVC学习笔记(三)
- SpringMVC学习笔记(三)
- J2EE系列之SpringMVC学习笔记(三)--SpringMVC控制器
- springMVC学习笔记三(controller控制器)
- SpringMVC源代码学习(三)DispatcherServlet
- SpringMVC源代码学习外传(三)RequestCondition
- SpringMVC学习笔记(三) 切面详解
- SpringMVC学习(三)--注解开发
- SpringMVC学习笔记三
- SpringMVC学习总结(三)
- SpringMVC杂项学习(三)
- 学习SpringMVC(三)之RequestParam
- SpringMVC入门学习(三)+Spring应用(整合)
- SpringMVC入门学习(三)+Spring应用(整合)
- SpringMVC入门学习(三)+Spring应用(整合)
- springMVC学习(三)表单提交之数据封装
- CodedUI自动化测试及脱离VS独立运行
- C++二叉树翻转
- c++中的4种类型转换
- 手把手教你把 Vim 改装成一个 IDE 编程环境(图文)
- oracle建立了监听为什么在服务中没有显示?
- SpringMVC学习(三)
- 规律生活
- drp错误集锦---“Cannot return from outside a function or method”
- notepad++自动补全括号
- 学习Android的Camera
- CSAPP缓冲区溢出攻击实验(下)
- 调试规则
- 纸牌问题
- 浅谈Qos技术