过滤器2

来源:互联网 发布:知乎 阿里 投资 编辑:程序博客网 时间:2024/05/16 23:48
 

FilterConfig接口:

       用户在配置filter时,可以使用<init-param>为filter配置一些初始化参数,当web容器实例化Filter对象。调用init方法时,会把封装对象filter初始化参数的filterConfig对象传递进来。因此开发人员在编写filter时,通过filterConfig对象个方法,就可获得:

       String getFilterName():得到filter的名称。

       String getInitParameter(String name):返回在部署描述中指定名称的初始化参数的值。如果不存在返回null。

       Enumeration getInitParamterNames():返回过滤器的所有初始化参数的名字的枚举集合。

       public ServletContext getServletContext():返回Servlet上下文对象的应用。

Filter常见应用:

       1、统一全站字符编码的过滤器

              通过配置参数encoding指明使用何种字符编码,已处理Html Form请求参数的中文问题

增删改查:insert.jsp---InsertServlet

       Request.getParmeter();---乱码

       修改---Updateervlet()

request. getParmeter();---乱码;

reques.setCharaterEncode(“utf-8”);--Filter中

配置文件—只解决post

2、禁止浏览器缓存所有动态页面的过滤器:

       有3个HTTP响应头字段都可以禁止浏览器缓存当前页面,他们在Servlet中示例代码如下:

              response.setDateHeader(“Exprires”,-1);

              response.setHeader(“Cache-Control”,”no-cache”);

response.setHeader(“Pragme”,”no-cache”);

              并不是所有的浏览器多完全支持上面的三个响应头,因此最好是同时使用上面三个响头。

              Expires数据头:值为GMT时间值,为-1只浏览器不要缓存页面

              Cache-Control只浏览器不要缓存当前页面

              max-age:xxx指浏览器缓存页面xxx秒

1、          控制浏览器缓存页面中的静态资源的过滤器:

场景:有些动态页面中引用了一些图片或css文件以修饰页面效果,这些图片和css文件经常是不变化的,所以为减轻服务器的压力,可以使用filter控制浏览器缓存这些文件,以提升服务器的性能

2、          实现用户自动登陆的过滤器

在用户登陆成功后,发送一个名称为user的cookie给客户端,cookie的值为用户名和md5加密后的密码。

编写一个AutoLoginFilter,这个filter检查用户是否带有名称为user的cookie来,如果有,则调用dao查询cookie的用户名和密码是否和数据库匹配,匹配则向session中存入user对象(即用户登陆标记),以实现程序完成自动登陆。

原创粉丝点击