加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java过滤器及一般的配置方法

(2014-07-31 10:11:13)
标签:

it

struts

中文乱码

分类: coding路上

       过滤器,通常是指在java web工程中,在你传入request、response信息前,提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑的处理。比如提前过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符等。下面以统一设置字符集为例来说明java过滤器的一般配置方法:

(一)创建过滤器类

        我们这里将过滤器统一存放在com.hy.filters的包下,以免将来我们还需要创建其他的过滤器。过滤器的类名为EncodingFilter。过滤器作为一种比较特殊的servlet,需要继承HttpServlet类,同时需要实现javax.servlet包下的Filter接口,具体代码如下图所示:

http://s4/mw690/001RHap3gy6KS7m26Uba3&690
要想实现一些过滤功能,我们只需要实现他的init方法和doFilter方法即可。一般我们都会将处理逻辑放在doFilter方法中,例如我们这里要实现struts的中文乱码问题,只需要在doFilter方法中添加以下两句代码即可:

request.setCharacterEncoding("UTF-8");//设置接收的编码
  // 必须要有继续传递下去的这句话
  chain.doFilter(request, response);//②

注意,第二句的代码是必不可少的。这句代码可以保证我们的程序在遭遇过滤之后按照正常的流程继续运行下去。至此,我们的过滤器类即创建完成,接下来我们需要配置我们的过滤器以完成调用。

(二)web.xml中配置过滤器

这里不想用多余的文字赘述,直接上代码,大家会很一目了然:

http://s13/mw690/001RHap3gy6KS8pKAm88c&690
通过以上两步,当我们重启我们的web工程时,通常就不会再出现中文乱码的问题了!当然,我们的编码格式也不是必须要固化在我们的filter类里,编码格式也是可以通过参数传递的。这个大家可以利用filter中的init-param属性进行配置,然后再filter类中通过set方法进行参数的接收,这里就不作赘述。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有