Encoding filter 编码过滤器

摘要:
1、首先编写过滤器,实际上就是继承了filter接口的一个类,实现其中的initdoChain和destroy方法packagecom.util;importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjav

1、首先编写过滤器,实际上就是继承了filter接口的一个类,实现其中的init doChain 和destroy方法

Encoding filter 编码过滤器第1张Encoding filter 编码过滤器第2张
packagecom.util;

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;


public class EncoderFilter implementsFilter {

    @Override
    public voiddestroy() {
        //TODO Auto-generated method stub
        System.out.println("i defined filter destroy~~~~~~~~~~~~~~~~~~~~~~");
    }

    @Override
    public voiddoFilter(ServletRequest arg0, ServletResponse arg1,
            FilterChain arg2) throwsIOException, ServletException {
        //TODO Auto-generated method stub
        arg0.setCharacterEncoding("UTF-8");
        System.out.println("the request encoding is " +arg0.getCharacterEncoding());
        System.out.println("enter myself filter~~~~~~~~~~~~~~~~~~~~~~" + new String(arg0.getParameter("men.name").getBytes(), "GBK"));
        arg2.doFilter(arg0, arg1);
    }

    @Override
    public void init(FilterConfig arg0) throwsServletException {
        //TODO Auto-generated method stub
        System.out.println("i defined filter init~~~~~~~~~~~~~~~~~~~~~~");
    }

    

}
EncoderFilter.java

2、在web.xml文件里面,加入如下代码

Encoding filter 编码过滤器第3张Encoding filter 编码过滤器第4张
  <filter>
          <filter-name>encodeFilter</filter-name>
          <filter-class>com.util.EncoderFilter</filter-class>
  </filter>
  <filter-mapping>
          <filter-name>encodeFilter</filter-name>
          <url-pattern>/*</url-pattern>
  </filter-mapping>
web.xml

切记,此代码应该加在struts2的过滤器前面的位置。

这时候访问传汉字应该是没有问题了,可是~~~还是乱码,解决办法:修改tomcat的server.xml文件


<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
里添加上后面3个编码的设置

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
useBodyEncodingForURI="true"
IEncoding="utf-8"
URIEncoding="utf-8"
/>

这时候传汉字就正常了!

关于编码,可以使用request.getCharacterEncoding()方法来看请求时采用的是什么编码!

免责声明:文章转载自《Encoding filter 编码过滤器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇TranslateAnimation 解释AspNetPager实现真分页+多种样式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

过滤器 ||(filter)

http://www.cnblogs.com/lvdabao/p/3475426.html 原文地址 filter的两种使用方法 1. 在模板中使用filter 我们可以直接在{{}}中使用filter,跟在表达式后面用 | 分割,语法如下: {{ expression | filter }} 也可以多个filter连用,上一个filter的输出将作为下...

Java 审计 之过滤器防御xss

Java 审计 之过滤器防御xss 0x00 前言 本文从攻击与防守两个角度来思考一些审计中的小细节。在前面两篇的xss审计中,写少了一个比较重要的点,就是Filter过滤器。都说Java的审计第一步就是先看web.xml,能看到该cms使用的是哪些框架来进行开发。其次就是看其有没有配置的一些过滤器。 审计文章: Java审计之XSS篇 Java 审计之x...

【aspnetcore】在过滤器(Filter)中使用注入服务(ServiceFilter|TypeFilter)

在MVC中,AOP是很常用的功能,我们经常会使用如 ActionFilter,IAuthorizeFilter 等描述对Controller和Action进行约束和扩展,一般做法如下: public class TestActionFilterAttribute : Attribute, IActionFilter { public voi...

Shiro权限管理框架(五):自定义Filter实现及其问题排查记录

明确需求 在使用Shiro的时候,鉴权失败一般都是返回一个错误页或者登录页给前端,特别是后台系统,这种模式用的特别多。但是现在的项目越来越多的趋向于使用前后端分离的方式开发,这时候就需要响应Json数据给前端了,前端再根据状态码做相应的操作。那么Shiro框架能不能在鉴权失败的时候直接返回Json数据呢?答案当然是可以。 其实Shiro的自定义过滤器功能特...

servlet过滤器1 解决字符集乱码 filter

package com.tarena.web.filter;    import java.io.IOException;    import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servl...

Filter(过滤器)

Filter(过滤器) Filter 功能: 1.用来拦截传入和传出的响应。 2.修改或以某种方式处理正在客户端和服务端之间交换的数据流。 使用方法: 与使用Servlet相似,Filter是JavaWeb提供的一个接口,开发者只要自定义一个类并且实现该接口即可。 注意事项: 1.接口实现时一定要引用 Filter(Javax.servlet) 2.doF...