Jfilter统一编码工具类
来源:互联网 发布:淘宝1块包邮的有什么 编辑:程序博客网 时间:2024/06/09 14:14
package cn.web.filter;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Map;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 Administrator * */public class EncodingFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { //1.强转 HttpServletRequest request=(HttpServletRequest) req; HttpServletResponse response=(HttpServletResponse) resp; //2.放行 chain.doFilter(new MyRequest(request), response); } @Override public void destroy() { // TODO Auto-generated method stub }}class MyRequest extends HttpServletRequestWrapper{ private HttpServletRequest request; private boolean flag=true; public MyRequest(HttpServletRequest request) { super(request); this.request=request; } @Override public String getParameter(String name) { if(name==null || name.trim().length()==0){ return null; } String[] values = getParameterValues(name); if(values==null || values.length==0){ return null; } return values[0]; } @Override /** * hobby=[eat,drink] */ public String[] getParameterValues(String name) { if(name==null || name.trim().length()==0){ return null; } Map<String, String[]> map = getParameterMap(); if(map==null || map.size()==0){ return null; } return map.get(name); } @Override /** * map{ username=[tom],password=[123],hobby=[eat,drink]} */ public Map<String,String[]> getParameterMap() { /** * 首先判断请求方式 * 若为post request.setchar...(utf-8) * 若为get 将map中的值遍历编码就可以了 */ String method = request.getMethod(); if("post".equalsIgnoreCase(method)){ try { request.setCharacterEncoding("utf-8"); return request.getParameterMap(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else if("get".equalsIgnoreCase(method)){ Map<String,String[]> map = request.getParameterMap(); if(flag){ for (String key:map.keySet()) { String[] arr = map.get(key); //继续遍历数组 for(int i=0;i<arr.length;i++){ //编码 try { arr[i]=new String(arr[i].getBytes("iso8859-1"),"utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } flag=false; } //需要遍历map 修改value的每一个数据的编码 return map; } return super.getParameterMap(); }}
阅读全文
0 0
- Jfilter统一编码工具类
- MyEclipse开发工具编码统一设置
- 编码统一
- 日志统一打印的工具类MyLog
- java 国际化统一处理的工具类
- iframe编码统一问题
- PHP页面编码统一
- filter统一编码
- PHP页面编码统一
- MyEclipse统一修改编码
- MySql统一编码
- 统一设置Eclipse编码
- Mysql 统一编码
- 设置MyEclipse统一编码
- 页面编码统一
- python - PyDev统一编码
- Filter统一编码实现
- 编码不统一问题
- array_x
- 厉害了黑科技,动态安全下的防拖库原来可以这么简单!
- 为什么看了她,会想做农活
- 单位用户两年免费延保
- NOIP2017提高组 模拟赛 27(总结)
- Jfilter统一编码工具类
- 33. Search in Rotated Sorted Array && 81. Search in Rotated Sorted Array II
- MVC框架
- Building Blocks
- 优化:4数平方和之积转换为2数平方之和
- Number Complement(leetcode)
- 邮件发送工具类
- 几种简单的文本数据预处理方法
- 基于Threejs的web 3D开发入门