谈起软件开发,我们首先想到的就是Java。因为Java作为一门面向对象的语言来讲,已经发展的非常熟悉了。那么今天我给大家分享的是Javaweb开发里面的过滤器的使用。(本头条号是技术型文章,欢迎我们IT软件人士订阅哦,多多支持,如有写的不好的地方,望见谅)
一、 过滤器案例
缓存:禁止浏览器缓存所有动态页面
a.response.setDateHeader("Expires",-1);
b.response.setHeader("Cache-Control","no-cache");
c.response.setHeader("Pragma","no-cache");
强制浏览器缓存所有的静态页面
3. 实现用户自动登陆功能示例
1)在用户登陆成功后,发送一个名称为user的cookie给客户端,cookie的值为用户名和md5加密后的密码
2)编写过滤器检查用户是否带名为user的cookie来,如果有,检查用户名和密码做自动登陆
核心思路:
1.用户登陆后找LoginServlet , LoginServlet中做登陆,如果登陆成功, 获得用户选择的自动登陆时间
2.创建一个新的cookie 将用户名和密码用 “_”连接作为value,autoLogin作为name
3.设置cookie 的有效路径 request.getContextPath() 作用于整个web应用
4.设置cookie的有效时间为 autologintime
5.发送 cookie,写一个过滤器,对全站的资源进行拦截, 检查用户发送的cookie有没有一个名为autologin的,如果有 取出用户名和密码 再次做登陆处理 如果登陆成功, 将 user 存入session ,放行出于安全性考虑, cookie 中的密码应该进行 md5 加密.
4. 统一全站字符编码功能示例
response和request的post的方式好办,只需要做以下操作即可。
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
对于request的get方式需要手工转换,此时就需要用到 包装设计模式decorator包装 getParameter方法
5.怎样发送压缩后的响应数据,思路示例
给 IE 浏览器会送的数据 需要进行gzip 压缩 访问速度快 省点浏览,在最后将数据打给浏览器的时候, 将 response 中的数据全部压缩,在过滤器放行的时候传入一个 假的 response 提供缓冲区, 这样后面的资源都会写入我的缓冲区,缓冲区满了 或者 请求快结束的时候 将缓冲区的数据压缩后写入 真的 response 。
备注:j2se 提供了一个流GZIPOutputStream 用于 gzip压缩, j2se 提供了一个流 ZIPOutputStream 用于 zip 压缩。