Servlet编码过滤器(Post和get方式都支持)
来源:互联网 发布:周立波 知乎 编辑:程序博客网 时间:2024/06/02 04:15
package com.pdsu.filter;import java.io.IOException;import java.io.UnsupportedEncodingException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;/** * 类说明:字符过滤器 * * @author 作者: LiuJunGuang * @version 创建时间:2011-11-18 下午07:05:51 */public class CharacterEncodingFilter implements Filter {private String encode = "UTF-8";// 默认UTF-8编码public void init(FilterConfig filterConfig) throws ServletException {String encoding = filterConfig.getInitParameter("encode");if (encoding != null) {encode = encoding;}}public void doFilter(ServletRequest req, ServletResponse resp,FilterChain chain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;// 设置request编码request.setCharacterEncoding(encode);// 设置相应信息response.setContentType("text/html;charset=" + encode);response.setCharacterEncoding(encode);chain.doFilter(new CharacterEncodingRequest(request), response);}public void destroy() {}}/** * 对Get方式传递的请求参数进行编码 */class CharacterEncodingRequest extends HttpServletRequestWrapper {private HttpServletRequest request = null;public CharacterEncodingRequest(HttpServletRequest request) {super(request);this.request = request;}/** * 对参数重新编码 */@Overridepublic String getParameter(String name) {String value = super.getParameter(name); if(value == null) return null; String method = request.getMethod();if ("get".equalsIgnoreCase(method)) {try {value = new String(value.getBytes("ISO8859-1"),request.getCharacterEncoding());} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return value;}}
在web.xml中添加如下内容:
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>com.pdsu.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encode</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
- Servlet编码过滤器(Post和get方式都支持)
- 编码过滤器,过滤中文乱码(Post和get方式都支持)
- 中文编码过滤器2: post和get方式都有效
- get和post编码方式
- JAVAWEB开发之Servlet Filter(过滤器)详解包括post和get编码过滤器、URL访问权限控制、自动登录。以及装饰模式的使用
- servlet中get和post编码问题
- 参数传递中的编码问题(get和post方式)
- 参数传递中的编码问题(get和post方式)
- 参数传递中的编码问题(get和post方式)
- Get和Post设置编码方式
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- 利用过滤器解决GET和POST请求编码问题
- 过滤器解决get和post方式提交的中文乱码
- SpringMVC 控制器默认支持GET和POST两种方式
- 全站编码 解决Get、Post乱码问题(Servlet)
- Servlet请求参数编码处理(POST & GET)
- GET和POST方式
- apk 工具
- 爆笑的日语音标
- 02_Java基础_数据类型及运算符
- GridView光棒效果总结
- 关于wince6.0休眠唤醒同步不上的问题
- Servlet编码过滤器(Post和get方式都支持)
- Android中music播放器源码要点详解【安卓music源码进化一】
- CommonLisp标识符统计
- phpstudy2010
- 添字成回文词 POJ1159
- 程序员面试、算法研究、编程艺术、红黑树4大经典原创系列集锦与总结
- 进程异常的捕捉
- Linux内核模块与应用程序的对比
- 建站之星安装,数据导入