【web】赵雅智_Filter常见应用
没配置过滤器:
CharseterEncodingFilter.java
配置过滤器:
web.xml
禁止浏览器缓存所有动态页面的过滤器有 3 个 HTTP 响应头字段都可以禁止浏览器缓存当前页面,它们在 Servlet 中的示例代码如下:response.setDateHeader("Expires",-1);response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); 并不是所有的浏览器都能完全支持上面的三个响应头,因此最好是同时使用上面的三个响应头。Expires数据头:值为GMT时间值,为-1指浏览器不要缓存页面Cache-Control响应头有两个常用值: no-cache指浏览器不要缓存当前页面。max-age:xxx指浏览器缓存页面xxx秒。
允许缓存:不编写过滤器
NoCacheFilter.java
编写过滤器禁止缓存:
NoCacheFilter.java
控制浏览器缓存页面中的静态资源的过滤器:场景:有些动态页面中引用了一些图片或css文件以修饰页面效果,这些图片和css文件经常是不变化的,所以为减轻服务器的压力,可以使用filter控制浏览器缓存这些文件,以提升服务器的性能。
ExpiresFilter.java
实现用户自动登陆的过滤器在用户登陆成功后,发送一个名称为user的cookie给客户端,cookie的值为用户名和md5加密后的密码。编写一个AutoLoginFilter,这个filter检查用户是否带有名称为user的cookie来,如果有,则调用dao查询cookie的用户名和密码是否和数据库匹配,匹配则向session中存入user对象(即用户登陆标记),以实现程序完成自动登陆。
login.jsp
建表:
DBUtils连接数据库倒包
c3p0_config.xml