`
water84222
  • 浏览: 373122 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

利用过滤器实现request的编码转换

阅读更多
关于Filter接口:
创建Filter必须实现javax.servlet.Filter接口,该接口种定义了三个方法
void init(FilterConfig config):用于完成Filter的初始化。
void destroy();用于Filter销毁前资源的回收。
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain):实现过滤功能,该方法就是对每个请求及响应增加额外处理。
实现Filter接口实现编码转换:
public class changeEncodingFilter implements Filter{
//将要设定的编码方式
protected String encoding=null;

//系统配置文件中是否忽略配置的编码方式,即是否采用web.xml中的设定值进行编码方式的重设置。
//设定yes,true,即不进行编码的重设置,否则,按配置文件中的设置进行重设置。
protectd boolean isReset=true;

//销毁Filter
publi void sestroy(){
  this.encoding=null;
}

//初始化Filter,用web.xml中设定的filter参数进行初始化,避免了硬编码。
public void init(FilterConfig filterConfig) throws ServletException{
  //通过filgerConfig获取参数 encoding,
  this。encoding=filterConfig.getInitParameter("eccoding");
  //通过filgerConfig获取参数isReset,
  //isReset在web.xml中可以设定为,yes,no,true,false,需进行boolean型转化
  String isResetValue=filterConfig.getInitParamenter("isReset");
  if(isResetValue==null
     || isResetValue.equalsIgnoreCase("true")
     || isResetValue.equalsIgnoreCase("yes"){
   this.isReset=true;
  }else{
   this.isReset=false;
  }
}

//设置编码方式
public void doFilter(ServletRequest request,
        ServletResponse response,
        FilterChain chain)
  throws IOException,ServletException{
  //设置编码方式,用web.xml中设定的filter参数进行设置
  if((isReset) && (encoding!=null)){
   request.setCharacterEncoding(encoding);
  }

  chian.doFilter(request,reponse);
}
}

web.xml中此Filter的配置代码
<filter>
<filter-name>change Encoding Filter</filter-name>
<filter-class>
  *.*.*.changeEncodingFilter
</filter-calss>
<init-param>
  <param-name>encoding</param-name>
  <param-value>utf-8</param-value>
</init-param>
<!--设定为true,yes则表示要进行再设置,空值时默认为设置。-->
<init-param>
  <param-name>isReset</param-name>
  <param-value>false</param-value>
</init-param>
<filter-mapping>
<filter-name>change Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
分享到:
评论

相关推荐

    JSP利用过滤器解决request中文乱码问题.docx

    过滤器可以实现多种功能,如身份验证、日志记录、字符编码转换等。 为什么需要解决request中文乱码问题 在JSP中,客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter()读取...

    在使用实现过滤器进行request包装,获取内层request的分析

    例如,登录验证、字符编码转换、权限控制等任务都可以在过滤器中完成。以下是一个简单的过滤器实现示例: ```java public class LoginFilter implements Filter { @Override public void doFilter(ServletRequest...

    编码过滤器

    编码过滤器的主要任务是对请求和响应进行编码转换,一般会设置为UTF-8,因为它是国际化的标准。在过滤器的`doFilter`方法中,可以使用如下代码来实现: ```java HttpServletRequest request = (HttpServletRequest)...

    利用过滤器设置权限利用过滤器设置权限

    在Java Web开发中,过滤器经常被用来实现诸如权限验证、编码转换、日志记录等功能。 #### 二、配置过滤器 过滤器的配置通常是在`web.xml`文件中完成的。例如: ```xml &lt;filter-name&gt;access &lt;filter-class&gt;...

    利用过滤器解决JavaWeb(JSP)的乱码问题

    过滤器在JavaWeb中的角色是拦截请求和响应,执行特定的操作,比如转换编码。我们可以通过实现javax.servlet.Filter接口,重写doFilter方法来创建一个自定义的过滤器。以下是一个简单的过滤器示例: ```java @Web...

    servlet+jsp实现过滤器 防止用户未登录访问

    它常用于进行登录验证、权限检查、字符编码转换等。 在本例中,要实现一个简单的登录验证过滤器,可以阻止未登录用户访问除了登录页面以外的其他后台管理页面。通过实现javax.servlet.Filter接口,我们创建了一个...

    jsp过滤器(编码)

    除了Spring框架提供的过滤器,我们也可以自定义过滤器实现`javax.servlet.Filter`接口,覆盖`doFilter()`方法,手动进行编码转换。例如: ```java public class MyEncodingFilter implements Filter { @Override ...

    servlet过滤器实现(Eclipse工程)

    本教程将详细介绍如何在Eclipse环境中创建并实现一个Servlet过滤器。 一、Servlet过滤器简介 Servlet过滤器是Servlet API的一部分,定义在`javax.servlet.Filter`接口中。它们的主要作用是拦截HTTP请求,对请求或...

    jsp-14-过滤器

    在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而过滤器(Filter)是Servlet规范的一部分,允许我们在请求处理前后插入逻辑,以实现诸如数据验证、字符编码转换、日志记录等功能。...

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

    JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式。在你复制粘贴了无数次request.setCharacterEncoding(“gb2312”);后,有没有想要一劳永逸...

    jsp中过滤器配置实现所有过滤

    在Java服务器页面(JSP)开发中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求被处理之前或之后执行某些操作,比如字符编码转换、权限验证、日志记录等。本话题将深入探讨如何在`web.xml`配置文件中...

    javaweb中文过滤器

    中文过滤器通过统一编码格式和转换过程,确保中文数据在服务器和客户端之间正确无误地传输。 首先,让我们了解过滤器(Filter)在JavaWeb中的概念。在Servlet规范中,过滤器是实现动态网页请求处理链路中的一个组件...

    JavaEE Filter全局编码过滤器

    在处理编码问题时,Filter通常会在读取请求参数或设置响应内容时进行编码转换。 创建一个全局编码过滤器的步骤大致如下: 1. **定义Filter类**:首先,你需要创建一个实现`javax.servlet.Filter`接口的类。在这个...

    servlet过滤器技术实例,

    2. `doFilter(ServletRequest request, ServletResponse response, FilterChain chain)`: 过滤器的核心方法,当请求到达时被调用。你需要在这个方法中实现过滤逻辑,然后调用`chain.doFilter()`将请求传递给下一个...

    实现过滤器

    3. **链式处理**:`doFilter`方法中,通过`Chain.doFilter(request, response)`调用来传递请求给下一个过滤器或目标Servlet。 4. **初始化和销毁**:可以重写`init`和`destroy`方法,分别在过滤器实例创建时和应用...

    javaweb全站请求编码过滤器

    4. **传递请求**:完成编码转换后,调用`chain.doFilter(request, response)`来将请求传递给下一个过滤器或目标Servlet。 5. **异常处理**:为了增加健壮性,你还需要处理可能的异常情况,例如请求编码未设置或者不...

    过滤器详细讲解及代码

    过滤器是Java Web开发中一个强大的工具,可以用来实现各种功能,包括但不限于权限验证、编码转换、日志记录等。通过理解和掌握过滤器的使用,开发者可以构建更安全、更高效的应用程序。上述代码示例展示了如何利用...

    JAVA过滤器及原理

    创建一个Java过滤器,首先需要实现Filter接口,并覆盖其方法。以下是一个简单示例: ```java import javax.servlet.*; import java.io.IOException; public class MyFilter implements Filter { @Override ...

    jsp中的过滤器(含例子)

    过滤器的主要任务包括身份验证、内容编码转换、日志记录、性能监控等。它们按照在`web.xml`配置文件中定义的顺序执行。 在`JSP`中,我们通常会用到过滤器来处理一些共性问题,例如统一处理字符编码。当用户发送请求...

    过滤器简单使用代码!!

    在Java Web开发中,过滤器(Filter)是一个非常重要的组件,它允许我们在数据处理之前或之后执行特定的任务,比如字符编码转换、权限验证等。在这个主题中,我们将深入探讨"过滤器简单使用代码",包括字符编码、检查...

Global site tag (gtag.js) - Google Analytics