`
webdev2014
  • 浏览: 688505 次
文章分类
社区版块
存档分类
最新评论

解决乱码,配置过滤器

 
阅读更多

package edu.sdkd.utils;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ProFilter implements Filter {
protected FilterConfig filterConfig;

/**
*
* 初始化
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}

/**
*
* 将inStr转为UTF-8的编码形式
*
* @param inStr输入字符串
*
* @return UTF-8的编码形式的字符串
*
* @throws UnsupportedEncodingException
*/

private String toUTF(String inStr) throws UnsupportedEncodingException

{

String outStr = "";

if (inStr != null)

{

// outStr=java.net.URLDecoder.decode(inStr);//不用decode了,到这的时候就已经自动decode过了

// 将字符串转为UTF-8编码形式

outStr = new String(inStr.getBytes("iso-8859-1"), "UTF-8");

}

return outStr;

}

/**
*
* 中文乱码过滤处理
*/

public void doFilter(ServletRequest svlrequest, ServletResponse svlresponse,

FilterChain chain) throws IOException, ServletException

{

// 将Servlet请求与响应对象转换成HttpServlet请求与响应对象

HttpServletRequest request = (HttpServletRequest) svlrequest;

HttpServletResponse response = (HttpServletResponse) svlresponse;

// 获得请求的方式(1.post or 2.get),根据不同请求方式进行不同处理

String method = request.getMethod();

// 1.以post方式提交的请求,直接设置编码为UTF-8

if (method.equalsIgnoreCase("post"))

{

try

{

request.setCharacterEncoding("UTF-8");

} catch (UnsupportedEncodingException e)

{

e.printStackTrace();

}

}

// 2.以get方式提交的请求

else

{

// 取出客户提交的参数集

Enumeration<String> paramNames = request.getParameterNames();

// 遍历参数集取出每个参数的名称及值

while (paramNames.hasMoreElements())

{

String name = paramNames.nextElement();// 取出参数名称

String values[] = request.getParameterValues(name);// 根据参数名称取出其值

// 如果参数值集不为空

if (values != null)

{

// 如果参数值集中只有一个值

if (values.length == 1)

{

try

{

// 调用toUTF(values[0])函数,(values[0]即第一个参数值)方法转换参数值的字元编码

String vlustr = toUTF(values[0]);

// 并将该值以属性的形式藏在request

request.setAttribute(name, vlustr);

} catch (UnsupportedEncodingException e)

{

e.printStackTrace();

}

}

// 如果参数值集中有多个值

else

{

// 遍历参数值集

for (int i = 0; i < values.length; i++)

{

try

{

// 回圈依次将每个值调用toUTF(values[i])方法转换参数值的字元编码

String vlustr = toUTF(values[i]);

values[i] = vlustr;

} catch (UnsupportedEncodingException e)

{

e.printStackTrace();

}

}

// 将该值以属性的形式藏在request

request.setAttribute(name, values);

}

}

}

}

// 设置响应方式和支持中文的字元集

response.setContentType("text/html;charset=UTF-8");

// 继续执行下一个filter,无一下个filter则执行请求

chain.doFilter(request, response);

}

/**
*
* 销毁方法
*/

public void destroy()

{

}

}

<!-- 配置过滤器 -->

<filter>

<description>处理中文乱码过滤器</description>

<filter-name>ProFilter</filter-name>

<filter-class>edu.sdkd.utils.ProFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>ProFilter</filter-name>

<url-pattern>*</url-pattern><!-- 过滤所有请求,注:tomcat5请用/* -->

</filter-mapping>

-----------------------------加密-------------------------------------

package edu.sdkd.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

import sun.misc.BASE64Encoder;

public class EncryptionUtils {
public static String md5(String message) {
try {
MessageDigest mdDigest = MessageDigest.getInstance("md5");
byte[] md5 = mdDigest.digest(message.getBytes());

BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(md5);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
}

分享到:
评论

相关推荐

    java配置过滤器,解决乱码

    解决java乱码的代码,配置过滤器,解决乱码问题。

    如何配置Filter过滤器处理JSP中文乱码

    配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记和; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的Server.xml文件配置...

    servlet过滤器配置,解决JSP的所有乱码

    JSP页面获得sercvlet是不是经常出现乱码呢?很烦人哦,那就试试这个吧,可以解决所有的乱码,里面有说明教你怎么配.

    如过你配置了过滤器无用,下面以下方可以解决AJAX中文乱码

    如果你配置了过滤器,但是中文还会乱码,可以参考下面两种方法解决。

    解决JSP字符串乱码的过滤器

    下载后按说明文件进行简单配置即可。很好用的

    用过滤器解决oracle中文乱码问题

    只要按照这个上面说的,就可以解决从jsp页面从oracle数据库读取中文数据时的中文乱码问题。...其他的修改配置之类的方法,我都试过了,没用,只用这个过滤器文件就可以了,里面详细说明了如何使用这个过滤器。

    Filter解决中文乱码

    使用filter过滤器解决中文乱码问题,包含源码,以及filter的配置,希望能帮上大家

    解决乱码问题

    使用filter解决乱码问题,分为编写doFilter和在web.xml中配置过滤器

    编码过滤器

    编码过滤器,在项目中统一处理编码问题 解决乱码问题

    过滤器的使用,内有源码的说明

    如何配置过滤器,使用过滤器解决登录和乱码问题。 内有代码详解。

    关于SSH中文乱码的一个小总结.doc

    本文将总结解决SSH中文乱码问题的方法,主要涉及到spring的编码过滤器、struts.properties配置、MyEclipse工程属性设置等方面。 一、 Spring 的编码过滤器 Spring提供了一个CharacterEncodingFilter来解决中文乱码...

    Filter过滤器的代码及其web.xml配置代码

    Filter过滤器的代码及其web.xml配置代码 很好的解决网页乱码问题,很方便,只要按照名字添加就可以了

    JavaWeb开发中文乱码问题解决方案

    中文乱码问题是JavaWeb开发中最常见的问题之一,解决的方法也有很多种,其中,过滤器是最常用的方法之一。提供了过滤器的源码和详细配置。

    中文字符过滤器

    解决编码传参中文乱码问题,附有.java和web.xml配置文件关键代码

    无意间发现的sturts过滤器

    Struts过滤器可以解决页面之间的乱码问题 一个类继承struts的RequestProcessor(分request 和response处理) 然后在struts-config.xml配置即可!

    数据库乱码的小技巧

    近用ssh框架和mysql数据库写项目的时候,老是出现中文乱码,根据网上的各种策略,使用spring自带的字符过滤器啊,设置页面编码啊,设置数据库编码啊都设置好为UTF-8了,还是出现中问乱码,后来在spring的配置文件...

    jsp传参 servlet接收中文乱码问题的解决方法

    在公司实习了8个月,一直都是做android和h5的,但是发现做程序连一点服务都不会该怎么办,所以最近开始学起了java,不知道是不是因为...第三,项目配置过滤器 第四,修改servlet里面的传值编码和传输编码 request.setC

    解决Linux下Tomcat向MySQL插入数据中文乱码问题

    一、问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二、解决办法 ...由于是SSM框架项目,在web.xml中加过过滤器    &lt;filter&gt;e

    GetRequestUtf8Filter.java

    解决Get请求中文乱码的方式1、修改tomcat server.xml的编码 2、过滤器 ;本文就是通过过滤器修改,因业务需要兼容,所以写的Get拦截器,本文仅支持Get请求拦截器,本文仅支持Get请求拦截器,本文仅支持Get请求拦截器...

    吴天雄--JavaWeb完整笔记.doc

    模块八:过滤器和监听器(三大组件、八大监听器、session的绑定、解绑、钝化、活化);模块九:文件上传和下载(限制上传(文件的大小和类型)、详细代码、解决下载时文件名乱码问题) --author

Global site tag (gtag.js) - Google Analytics