sevlet 乱码

转载 2016年08月31日 16:15:52

JavaWeb中交中文经常会出现乱码,想必各位都遇到过吧。今天跟大家聊聊一种比较常用的方式——Filter过滤。Filter就是起到一个过滤器的作用,当提交或者获取信息的时候,都会经过Filter,然后Filter会将你传递的信息转换成你设置好的编码格式,从而避免一些中文乱码的情况。

使用Filter过滤需要添加两部分代码,一是配置文件里关于Filter的配置信息;另一个就是Filter里面的过滤代码。下面一起看一下吧。


web.xml中的配置代码:

 

  <filter>
  	<filter-name>CharsetEncodingFilter</filter-name>
  	<filter-class>
  		com.tgb.drp.util.filter.CharsetEncodingFilter
  	</filter-class>
  	<init-param>
  		<param-name>endcoding</param-name>
  		<param-value>GB18030</param-value> <!--设置你想用的字符集,我这里用的是GB18030-->
  	</init-param>
  </filter>
  
  <filter-mapping>
  	<filter-name>CharsetEncodingFilter</filter-name>
  	<url-pattern>*.jsp</url-pattern>
  </filter-mapping>


 

Filter中的过滤代码:

 

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;


/**
 * 采用Filter统一处理字符集
 * @author Ronaldinho
 *
 */
public class CharsetEncodingFilter implements Filter {

	private String endcoding;
	

	@Override
	public void destroy() {
	}
	
	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		
		System.out.println("CharsetEncodingFilter--->>>begin");
		
		//设置web.xml中配置的字符集
		request.setCharacterEncoding(endcoding);
		
		System.out.println("CharsetEncodingFilter--->>>doing");
		
		//继续执行
		chain.doFilter(request, response);
		
		System.out.println("CharsetEncodingFilter--->>>end");
	}
	
	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		this.endcoding = filterConfig.getInitParameter("endcoding");
		System.out.println("CharsetEncodingFilter.init()-->> endcoding=" + endcoding);
	}

}

解决Servlet输出到JSP页面的JavaScript脚本的中文乱码问题

解决的方法很简单,就是在Servlet中的doPost方法中加上:response.setContentType("text/html"); response.setCharacterEncodin...
  • zhengbo0
  • zhengbo0
  • 2012年12月10日 16:05
  • 1348

servlet get请求中文参数乱码

今天无意中突然对get请求时中文乱码的解决方法有了兴趣,以前只是会用,却不知道其中的原理,于是自己研究了一番,先来看后台代码 protected void doGet(HttpServletRequ...
  • jun99love
  • jun99love
  • 2016年12月07日 14:22
  • 1325

Servlet中Request请求转发和重定向遇到的乱码问题

已经把项目的文字编码格式改成了utf-8,但还是在转发的时候遇到乱码。 先把我的代码拷上来 package com.servlet; import java.io.IOException...
  • qq_34693891
  • qq_34693891
  • 2016年08月08日 14:21
  • 734

sevlet

http://www.cnblogs.com/xdp-gacl/p/3760336.html
  • u013360022
  • u013360022
  • 2016年06月24日 14:29
  • 259

黑马程序员 jsp乱码,sevlet乱码,struts乱码,tomcat乱码,get乱码,post乱码 解决方式

一、Servlet,jsp,输出乱码 第1种方式:t.write(str.getBytes("utf-8"))。        第2种方式:response.setHeader("content-ty...
  • u010267179
  • u010267179
  • 2014年03月22日 12:18
  • 361

sevlet(response request) /jsp乱码大总结

Response输出数据到客户端 response.getOutputStream().write("中文".getBytes())输出数据,这是一个字节流,是什么字节输出什么字节,而浏览器默认用平...
  • qqahanson
  • qqahanson
  • 2014年11月03日 17:39
  • 625

关于Servlet中前后台交互中文乱码问题的解决

在servlet前后台交互时,我们会经常遇到中文乱码的问题,以后是我总结的解决方式: 一、交互过程中,参数乱码的解决:    1.  如果请求方式是“get”: String user...
  • BeauXie
  • BeauXie
  • 2016年08月24日 14:55
  • 3810

servlet 下载文件名字 中文乱码 解决

response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("GBK...
  • dream_ll
  • dream_ll
  • 2017年06月14日 15:44
  • 392

servlet中文一般乱码问题结解决方式总结

出现中文乱码的问题有很多,以前在学习php的时候乱码的问题近乎没有多少,php在这方面还是处理的比较好的,但在javaee的servlet中中文乱码的问题比较好,而出现的原因也比较多,下面做一下简单的...
  • MyCodeDream
  • MyCodeDream
  • 2015年08月31日 21:01
  • 3017

sevlet学习笔记

动态网页与动态html页面概念的区别: 动态网页是web服务器端的动态,即web服务器发送的东西是在不断改变的。 而动态页面是客户端的动态,而服务器发送的东西始终没有改变。 例:动态网页做出的显...
  • fanaticism1
  • fanaticism1
  • 2012年11月26日 22:00
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sevlet 乱码
举报原因:
原因补充:

(最多只允许输入30个字)