java过滤器实例java编码格式_JSP 开发中过滤器filter设置编码格式的实现方法

在JSP开发中,为了避免请求数据乱码,通常需要在每个请求前设置编码格式。本文介绍如何通过过滤器Filter实现一次设置,统一所有请求的编码。提供了一个名为SetCharacterEncodingFilter的Filter实现示例,并展示了在web.xml中的配置方法。
摘要由CSDN通过智能技术生成

JSP 开发中过滤器filter设置编码格式的实现方法

我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式。在你复制粘贴了无数次request.setCharacterEncoding("gb2312");后,有没有想要一劳永逸的方法呢?能不能一次性修改所有请求的编码呢? 用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;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class SetCharacterEncodingFilter implements Filter { //要实现Filter接口

//存储编码格式信息

private String encode = null;

public void destroy(){

}

public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain)

throws IOException,ServletException{

//转换

HttpServletRequest request = (HttpServletRequest)req;

HttpServletResponse response = (HttpServletResponse)resp;

/*

* 判断在web.xml文件中是否配置了编码格式的信息

* 如果为空,则设置编码格式为配置文件中的编码格式

* 否则编码格式设置为GBK

*/

if(this.encode != null && !this.encode.equals("")){

request.setCharacterEncoding(this.encode);

response.setCharacterEncoding(this.encode);

}else{

request.setCharacterEncoding("GBK");

response.setCharacterEncoding("GBK");

}

/*

* 使用doFilter方法调用链中的下一个过滤器或目标资源(servlet或JSP页面)。

* chain.doFilter处理过滤器的其余部分(如果有的话),最终处理请求的servlet或JSP页面。

*/

chain.doFilter(request, response);

}

public void init(FilterConfig config) throws ServletException{

//获取在web.xml文件中配置了的编码格式的信息

this.encode = config.getInitParameter("encode");

}

}

在web.xml文件中的配置信息如下:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

SetCharacterEncodingFilter

ssh.dlc.chp1.filter.SetCharacterEncodingFilter

给参数和值设置名称和编码类型

encode

GBK

SetCharacterEncodingFilter

*.do

以上就是过滤器filter设置编码格式的方法,如有疑问请留言或者到本站社区交流讨论,大家共同进步,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值