编写一个过滤器用于统一编码格式
来源:互联网 发布:java流程引擎activity 编辑:程序博客网 时间:2024/05/16 06:20
package com.itheima.c_proxy.encoding;import java.io.IOException;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;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.HttpServletResponse;public class EncodingFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)throws IOException, ServletException {//1.强转final HttpServletRequest request=(HttpServletRequest) req;HttpServletResponse response=(HttpServletResponse) resp;//创建代理对象HttpServletRequest requestProxy=(HttpServletRequest) Proxy.newProxyInstance(HttpServletRequest.class.getClassLoader(), request.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {if("getParameter".equals(method.getName())){//获取请求方式String m = request.getMethod();if("get".equalsIgnoreCase(m)){String s = (String) method.invoke(request, args);//相当于 request.getParameter(args);return new String(s.getBytes("iso8859-1"),"utf-8");}else if("post".equalsIgnoreCase(m)){request.setCharacterEncoding("utf-8");return method.invoke(request, args);}}//不需要加强的方法return method.invoke(request, args);}});//2.放行chain.doFilter(requestProxy, response);}@Overridepublic void destroy() {}}
阅读全文
0 0
- 编写一个过滤器用于统一编码格式
- Java通过过滤器统一编码格式
- 一个简单的字符编码格式过滤器
- JSP页面统一编码过滤器
- 过滤器_编码统一处理
- 编码格式过滤器
- MyEclipse设置统一编码格式
- Filter过滤器,统一网站字符编码
- 使用EncodingFilter过滤器来完成统一编码
- 使用过滤器统一全站编码
- JavaWeb之过滤器实现统一编码案例
- Java编码过滤器的编写
- eclipse中编码格式统一设置
- 统一修改 java 文件编码格式
- eclipse 统一修改 java 文件编码格式
- fiter过滤器控制统一编码和防止非法url进入
- 一个简单的编码过滤器
- 过滤器的编写(过滤字符编码)
- JZOJ 1729. blockenemy
- (35)异常
- tensorflow自定义op:梯度
- Windows和linux下搭建FTP服务器
- CPU天梯图
- 编写一个过滤器用于统一编码格式
- ajax设置contentType=json后台获取不到参数
- eclipse中一些常见svn图标的含义
- POJ 3093 Margaritas on the River Walk 笔记
- 定时器系列—定时器应用(时钟、倒计时、秒表和闹钟)
- 简单工厂模式
- 【SpringMVC】环境搭建
- python中关于class类中一个实例变量的引用问题
- firefox浏览器无法打开百度,但是能ping通百度的域名