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);
	}

}

相关文章推荐

J2EE中解决sevlet提交给mysql中文出现乱码问题

问题描述 在java的servlet提交给mysql的中文数据后,在数据库中显示是乱码, 解决方法 第一步:上网查资料发现是编码字符集的问题,设置本地的数据库的编码,将其...

必背代码-Sevlet实现验证码

package cn.lijun; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import jav...

验证码 jsp 版 和sevlet版

sevlet1

1.什么是Servlet? sun公司制订的一种用来扩展web服务器功能的 组件规范。 (1)用来扩展web服务器功能 web服务器(比如apache)只能够处...

Sevlet的生命周期

Sevlet的生命周期(重点) 1 引入 Servlet的生命周期: servlet类对象什么时候创建,什么时候调用什么方法,什么时候销毁。 以前的对象: new Stu...

springmvc基本web.xml配置和xxxx-sevlet.xml配置简介

springmvc基本web.xml配置和xxxx-sevlet.xml配置简介

Sevlet概述

1. What's the Servlet?     Servlet是基于Java技术的一个Web 组件,是运行在服务器断的java应用程序.也是Java Web技术的核心基础.  由容器管理. 和...

jsp+sevlet使用Mysql存取图片

在web开发中,除了往数据库中存取文字信息外,还经常存取图片信息,今天我们就自己动手实现以下如何使用Mysql在jsp与servlet中存取图片信息。 首先看jsp,在jsp中首先添加一个按钮,按钮...

Sevlet篇之HttpServlet 请求 回应详解

Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口...

java Servlet使用c3p0创建多个Mysql数据库连接池,Sevlet使用c3p0创建oracle数据库连接池

java Servlet使用c3p0创建多个Mysql数据库连接池,Sevlet使用c3p0创建oracle数据库连接池
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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