JavaWeb 全站乱码过滤
来源:互联网 发布:成都电视台网络直播 编辑:程序博客网 时间:2024/05/18 01:38
1、创建 EncodingFilter 实现 Filter 接口
public class EncodingFilter implements Filter {public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// 解决响应乱码response.setContentType("text/html;charset="+encode);// 包装改造request中和获取请求参数相关的方法解决请求参数乱码chain.doFilter(new MyHttpServletRequest((HttpServletRequest) request), response);}}class MyHttpServletRequest extends HttpServletRequestWrapper{private HttpServletRequest request = null;private boolean isNotEncode = true;public MyHttpServletRequest(HttpServletRequest request) {super(request);this.request = request;}@Overridepublic Map getParameterMap() {try{if(request.getMethod().equalsIgnoreCase("POST")){//--如果是post提交,一行代码解决post提交请求参数乱码request.setCharacterEncoding(encode);return request.getParameterMap();}else if(request.getMethod().equalsIgnoreCase("GET")){//--如果是get提交,则应该手动编解码解决乱码Map<String,String[]> map = request.getParameterMap();//获取有乱码的mapif(isNotEncode){//只能在第一次解决乱码for(Map.Entry<String, String[]> entry : map.entrySet()){//遍历map,解决所有值的乱码String [] vs = entry.getValue();for(int i=0;i<vs.length;i++){vs[i] = new String(vs[i].getBytes("iso8859-1"),encode);}}isNotEncode = false;//设置为false,第二次就不会再进这个代码块了}return map;}else{return request.getParameterMap();}}catch (Exception e) {e.printStackTrace();throw new RuntimeException(e);}}}
2、注册:
<filter><description>全站乱码过滤器</description><filter-name>encodeFilter</filter-name><filter-class>com.itheima.filter.EncodingFilter</filter-class><init-param><param-name>encode</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encodeFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
0 0
- JavaWeb 全站乱码过滤
- javaweb全站乱码解决
- 重新学javaweb---过滤器 应用--全站乱码
- javaweb 过滤
- javaweb--Filter全站压缩
- javaweb全站编码过滤器
- 彻底解决全站乱码
- JavaWeb学习篇——使用过滤器及装饰器设计模式解决全站乱码问题
- javaweb乱码
- javaweb乱码
- javaWeb项目,web.xml配置中文乱码过滤失效的解决办法
- JavaWEB网页登陆过滤
- javaWeb之过滤链
- javaweb之jsp全站压缩
- javaweb中处理全站编码问题
- 用过滤器过滤全站非法字符
- 解决全站字符乱码
- 解决全站乱码过滤器
- java中,数值型Double运算出错问题
- JAVA入门基础文章3-类的概念-什么是继承
- 文本文件解析
- Java比较String ==和equals() 解析
- 这样的人注定生活在社会最底层
- JavaWeb 全站乱码过滤
- 个人主页常见的头像与背景图不同步移动的下拉效果实现
- CF 550C 数学 or dp
- window.open 打开子窗口,关闭所有的子窗口
- 黑马程序员--学习OC类方法
- Android播放音频的两种方式
- 悼念512汶川大地震遇难同胞——选拔志愿者
- 简约至上-交互是设计四策略读书感
- 5. CSS 类选择器