📄 servlet_filter.txt
字号:
第六章 过滤器编程1、过滤器 Filter 也是一个对象 过滤器位于客户端和服务端的请求资源之间 1) 请求的资源可以是JSP、servlet html等 2) 它们在资源执行的前后被执行 3) request和response在经过过滤器的时候可以被修改(加入一些信息) 4)多个过滤器可以形成一个链,每个过滤器可以作为链中的一个部分 5) 能够使用过滤器做以下工作: session的管理、日志、安全检查、编码和XML格式的转换2、过滤器能做什么 1)例如授权验证,延迟登陆(在登陆前先经过过滤器进行一些信息处理,比如往请求中加入些信息) 2) 设置编码格式 3) 记录日志、审计审核、点击统计 4) 数据处理 5) 进行数据加密 6) 将XSL样式脚本应用到response中(通过XSL样式表将xml转换成html) 二。 1)判断是否登录等 缺点: 优点:对很多的请求,可以只用一个Filter来处理, 2)中文处理(在配置文件中可以设定) 3) 3、Filter可以组成一个链状结构,调用Filter的顺序根据web.xml中Filter的配置顺序 Fileter链:4、包装器的作用 中途截取request或者response: 1)[Http]ServletRequestWapper:设置额外的请求属性 2)[Http]ServletResponseWrapper:增加额外的内容 3)过滤器和servlet能包装request和response 4)让我们能够扩展一个请求数据的资源 改变内容类型 增加或者删除请求头的信息 5)包装response能够捕获和改变response5、包装类 1)request包装类将覆盖getters和setters方法 2)response包装类通常覆盖getWriter和getOutputStram 对于被调用者来说,为自己提供缓存用于写入response返回的信息,并且能处理缓存。 3)如果response包装器提供它们自己的缓存 必须处理调用者的response头部信息 特别要记住在头部设定信息的长度6.Filter的方法: (1)public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) // FilterChain chain 也有一个DoFilter()方法,将请求转给下一个Filter对象 //直至转到Servlet应用 throws java.io.IOException, ServletException (2)public void init(FilterConfig filterConfig)//之调用一次,在装载时调用 throws ServletException{} (3)public void destroy()7)filter的生命周期:练习:ch6/AuthFilter.javalogin.htmlch6/LoginServlet.javaauth/success.html
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -