1.1 过滤器是什么?
过滤器是Servlet的高级特性之一,也别把它想得那么高深,只不过是实现Filter接口的Java类。其基本功能就是对servlet的调用进行干预,在servl请求和响应的过程中增加一些特定的功能。可以使用过滤器实现的功能有:统一编码,URL级别的权限访问控制,过滤敏感词汇,压缩请求信息。
1.2过滤器是怎么执行的?
咱们看如下图
清晰看到,在web浏览向web服务器发出请求时,会经过过滤器,然后再到达web资源,servle请求和响应。
过滤器可以比喻成一张滤网。我们想想现实中的滤网可以做什么:在泡茶的时候,过滤掉茶叶。那滤网是怎么过滤茶叶的呢?规定大小的网孔,只要网孔比茶叶小,就可以实现过滤了!
1.3为什么要使用过滤器?
举个例子,在你获取表单的数据或者向页面输出内容的时候,如果不进行编码处理,是不是会乱码?那我们是怎么做的?
request.setCharacterEncoding("UTF-8")
response.setContentType("text/html;charset=UTF-8");
设置对客户端请求进行重新编码的编码和设置向页面输出的类型。
想象一下,一个完整的网页,可不止一个servlet作出请求和响应,难道你要对一个servlet里都写上这两行代码吗?代码重复太高了吧,不要说你不怕苦不怕累。咱别死脑筋嘛。
倘若我们使用道过滤器,在请求和响应时,首先经过我的过滤器,为你编号码,设置好类型,你servlet就不需要在重写这些代码了,我只需一遍就够了。当然过滤器的功能远不止这些,接下来来了解一个能让普通类发挥出此等作用的Filter接口吧!
2.Filter接口
其实过滤器的方法十分的简单,