springmvc的过滤器--Filter
来源:互联网 发布:还原数据库一致性dbcc 编辑:程序博客网 时间:2024/04/29 03:14
一、CharacterEncodingFilter:POST中文乱码解决方案
spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题,具体配置如下:
- <filter>
- <filter-name>CharacterEncodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>utf-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>CharacterEncodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
二、HiddenHttpMethodFilter
浏览器 form 单只支持 GET 与 POST 请求,DELETE、PUT method 并不支持
Spring3.0 添加了一个过滤器可以将 这些请求转换为标准 http 方法使得 支持 GET、POST、PUT 与DELETE 请求。
以下是实例
1、在web.xml中配置HiddenHttpMethodFilter
<!-- 配置 org.springframework.web.filter.HiddenHttpMethodFilter: 可以把 POST 请求转为 DELETE 或 POST 请求 --><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>
2、编写页面控制器类
package com.atguigu.springmvc;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest {@RequestMapping(value="testRest/{id}",method=RequestMethod.GET)public String testGet(@PathVariable(value="id") Integer id) {System.out.println("get" + id);return "success";}@RequestMapping(value="testRest",method=RequestMethod.POST)public String testPost() {System.out.println("Post");return "success";}@RequestMapping(value="testRest/{id}", method=RequestMethod.PUT)public String testPut(@PathVariable(value="id") Integer id) {System.out.println("Put" +id);return "success";}@RequestMapping(value="/testRest/{id}", method=RequestMethod.DELETE)public String delete(@PathVariable(value="id") Integer id) {System.out.println("delete" + id);return "success";}}
注解解析:
1. @RequestMapping: 除了修饰方法, 还可来修饰类
1). 类定义处: 提供初步的请求映射信息。相对于 WEB 应用的根目录
2). 方法处: 提供进一步的细分映射信息。 相对于类定义处的 URL。
若类定义处未标注 @RequestMapping,则方法处标记的 URL相对于 WEB 应用的根目录
3)使用 method 属性来指定请求方式
另外:还可以使用 params 和 headers 来更加精确的映射请求. params 和 headers 支持简单的表达式.(一般不用)
2.@PathVariable :可以来映射 URL 中的占位符到目标方法的参数中.。value属性的值要和占位符名称一致。
3、编写jsp页面,用于通过超链接发送请求<!-- put:改 --><form action="springmvc/testRest/1" method="post"><input type="hidden" name="_method" value="PUT"/><input type="submit" value="TestRest PUT"/></form><br><br><!-- delete : 刪 --><form action="springmvc/testRest/1" method="post"><input type="hidden" name="_method" value="DELETE"/><input type="submit" value="TestRest DELETE"/></form><br><br><!-- Post : 增 --><form action="springmvc/testRest" method="post"><input type="submit" value="TestRest POST"/></form><br><br><!-- 查 --><a href="springmvc/testRest/1">Test Rest Get</a>
总结:
表单只支持post请求和get请求,那如何通过表单发送put请求和delete请求呢?
1、需要在web.xml中配置HiddenHttpMethodFilter
2、需要在表单中发送Post请求
3、需要在表单发送Post请求时携带一个name="_method"的隐藏域,value可取 delete 或 put。
- springmvc的过滤器--Filter
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- SpringMVC 过滤器Filter使用解析
- Filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- Servlet的Filter过滤器
- Servlet的Filter过滤器
- 过滤器Filter的介绍
- Filter过滤器的使用
- filter 过滤器的总结
- SSH2的filter过滤器
- filter过滤器的写法
- 阈值分割
- TED如何和压力做朋友(第二天)
- 翻转链表
- 关于互联网访问DNS
- Linux common clock framework(1)_概述
- springmvc的过滤器--Filter
- MySQL存储引擎
- vmware克隆虚拟机centos6.5,虚拟机从新配置
- hive提取等号后面的值
- Q&A——资源管理(六)
- Hbase学习
- 蓝桥杯填空题——剪邮票
- Android apk方法数量的检查和处理方法
- sql 查询优化方法