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"

时间: 2024-12-25 05:10:37

javaweb的Filter过滤器设置全站编码的相关文章

JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存

以前我们设置servlet的request和response的编码需要在每个servlet都设置,如果Servlet很多,显得很麻烦,现在我们可以用过滤器很简单的实现这个功能. 还有页面缓存,如果我们的网页是静态的,图片和内容基本上很少变化或者不变化的,我们就可以告诉客户端这个页面你缓存多久~以达到节省流量的目的. 设置全站编码: 先写好Filter:CharacterFilter.java: package cn.hncu.pubs; import java.io.IOException; i

JavaWeb的Filter过滤器

过滤器Filter 过滤器概述 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter"放行",那么会继承执行用户请求的Servlet:如果Filter不"放行",那么就不会执行用户请求的Servlet. 其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否

javaweb之Filter过滤器详解

快速入门 1.新建一个类,实现Filter接口 2.实现doFilter()方法,打印一句话,来证明能够进行拦截 3.在web.xml中进行配置(参照Servlet配置) 4.访问一个页面,看看能不能拦截 例子: import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.serv

【JavaWeb学习】过滤器Filter

一.简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过Filter技

Filter过滤器-JavaWeb三大组件之一

Servlet.Filter.Listener是JavaWeb的三大组件,给Web开发提供了很大的便利. 什么是Filter? Filter,过滤器.类似与生活中的净水器.空气净化器. JavaWeb中Filter的作用:当浏览器请求访问服务器的资源时,过滤器可以将请求拦截下来,完成一下特殊的功能.例如:登录验证.统一编码处理.敏感字符过滤等. Filter的基本使用 (1)定义一个类,实现接口Filter. (2)实现Filter接口的方法 (3)配置拦截路径.可以用web.xml进行配置:S

Filter多方式拦截、禁用IE图片缓存、Filter设置字符编码

dispatcher多方式拦截 我们来看一个例子 我们定义一个index.jsp,里面有一个链接跳转到dispatcher.jsp页面 <body> <a href="dispatcher.jsp">To Test Page</a> </body> 我们来看下dispatcher.jsp页面,转发到test.jsp页面 <body> <jsp:forward page="/test.jsp">&

传智播客JavaWeb day14--监听器(用户踢人)、过滤器(解决全站乱码)

1. 2. 3. 4. 5. filter应用 1.用过滤器解决全站乱码问题 1.1 乱码分类 乱码分为get和post方式请求乱码 1.2 post请求乱码解决 post请求乱码很好解决只需一行代码搞定request.setCharacterEncoding("utf-8")告诉服务器用utf-8来获取参数即可 1.3 get请求乱码解决 问题:不能针对某个参数去解决乱码问题,因为过滤器是全站通用的,其他的请求可能没有这个参数,所以想到改造获取请求参数的三个方法,而直接继承的方式会有

Filter过滤器(自动登陆、通用的字符集编码的过滤【处理不同请求的乱码问题】、。。。)

Filter过滤器:可以过滤(拦截)从客户端向服务器发送的请求. 过滤器的作用: 进行ip的过滤,脏话敏感词语的过滤,自动登陆,响应压缩... 过滤器的使用: 1.编写类实现Filter接口. destroy()销毁 doFilter(servletRequest request,ServletResponse response,FilterChain chain)拦截过滤 eg:chain.doFilter(request,response);//执行此代码表示放行到下一个过滤器中,如果没有下

javaweb学习总结——Filter(过滤器)学习

一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过F