zoukankan      html  css  js  c++  java
  • javaweb的Filter过滤器设置全站编码

      FIlter配置全站编码有一种方法是重写getParameter方法,也就是继承HttpServletRequestWrapper在重写getParameter方法,还有一种就是如下:

    	public void doFilter(ServletRequest request, ServletResponse response,
    			FilterChain chain) throws IOException, ServletException {
    		// 将requese进行强转
    		HttpServletRequest req = (HttpServletRequest) request;
    		HttpServletResponse resp = (HttpServletResponse) response;
    		// 得到参数提交方式
    		String method = req.getMethod();
    		// 分为Get和Post两种方式进行处理
    		if(method.equalsIgnoreCase("post")) {
    			System.out.println("采用的是Post请求方式...");
    			// post	请求方法,直接可以进行设置
    			req.setCharacterEncoding("utf-8");
    			resp.setContentType("text/html;charset=utf-8");
    		} else {
    			System.out.println("采用的是Get请求方式...");
    			// get 请求方法,对于请求的参数的进行改变设置字符集
    			resp.setContentType("text/html;charset=utf-8");
    			Enumeration<String> enumeration= req.getParameterNames();
    			while(enumeration.hasMoreElements()) {
    				String key = enumeration.nextElement();
    				String[] values = req.getParameterValues(key);
    				// 对值进行字符集的编码设置
    				for(int i=0; i<values.length; i++) {
    					values[i] = new String(values[i].getBytes("iso-8859-1"), "utf-8");
    				}
    			}
    		}
    		chain.doFilter(req, resp);
    	}
    

      

      如果在FIlter中进行制定编码方式的编码,且代码无误的话,还是显示乱码,那么可能存在的问题是因为Tomcat的<Connector>标签缺少了URIEncoding的配置。

      配置如下:

      修改Tomcat下的/conf/server.xml配置文件,制定URIEncoding;

      <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"  URIEncoding="UTF-8"/>
    

      就是加上:URIEncoding="UTF-8",但是请注意,这种方式不推荐使用

  • 相关阅读:
    给暗黑2佣兵换装备,他/她说的英语是什么?
    为什么“家徒四壁”中的徒是仅仅,只有的意思?
    喜马拉雅几个有意思的订阅内容
    看似最艰苦的道路,长远考虑确是收益最大,实际上最容易的路
    《赠友》--杜运夑
    【Python】由host得到IP
    day31_Hibernate复习_03(补刀)
    day31_Hibernate复习_03
    day31_Hibernate学习笔记_03
    MyEclipse2017 CI 断点无效
  • 原文地址:https://www.cnblogs.com/geore/p/7281764.html
Copyright © 2011-2022 走看看