- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                Java Web控制器Servlet程序设计第六章: 过滤器编程 目标 编写一个过滤器 部署一个过滤器 了解请求和响应包装器 在请求分发器下的过滤器 什么是过滤器 过滤器处于请求与请求的资源之间 资源可以是一个servlet  JSP页面 HTML等. 他们在请求资源前后执行 请求/响应可能在传递前后被修改 过滤器可能作为链的一部分执行 可以使用过滤器器以提供:会话管理、日志记录、安全、编码、XML转换 在J2EE网络程序中的过滤器 通过过滤器调用路径资源 网络层过滤器对象交互图 过滤器开发步骤 第一步:编写过滤器类 第二步:编写测试页面 第三步:编译和部署过滤器 第四步:配置运行目录 第五步:运行 编写过滤器 实现javax.servlet.Filter接口 init(javax.servlet.FilterConfig config) doFilter(javax.servlet.ServletRequest res, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain) destroy() chain.doFilter(javax.servlet.ServletRequest res, javax.servlet.ServletResponse res) 过滤器生命周期 类图 HelloFilter代码框架 初始化方法 常见业务处理: 1、获取ServletContext对象,以便后续业务使用 2、读取编码格式,在请求到达之前进行处理 3、获取不用处理的页面列表等 doFilter()方法 过滤器执行流程 过滤器配置 在布署描述符中配置过滤器-web.xml filter标签 filter-name filter-class init-param param-name param-value  HelloFilter 配置 配置使用过滤器的位置 标签: url-pattern 实例: url-pattern/*/url-pattern	所有的地方都通过过滤器 url-pattern/*.jsp/url-pattern	只有jsp页面通过过滤器 url-pattern/文件夹名/*/url-pattern	只有在某文件夹下的所有页面,才通过过滤器 url-pattern/servlet/*/url-pattern	与filter映射方式一致的servlet将通过过滤器  拦截请求/响应 [Http]ServletRequestWrapper Add添加额外的内容 [Http]ServletResponseWrapper Set设置额外的请求属性 过滤器可以包装请求和响应 给我们能够改变一个请求数据的能力 改变内容类型 添加或删除请求的头信息 包装响应可以获取和改变的响应内容 实例—包装类 实例—过滤器 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpReq=(HttpServletRequest)request; chain.doFilter(new MyRequestWrapper(httpReq), response); }  包装器 Request请求包装器将会重写getter()和setter() Response响应包装器一般会重写getWriter()和getOutputStream() 为被调用者写入提供自己的缓冲 然后能操作缓冲 如果响应包装器提供自己的缓冲 必须管理响应头信息以便调用方记得特别设置头信息长度 在分发器下的过滤器 分发器请求的4种方式 REQUEST INCLUDE FORWARD ERROR 设定方法 dispatcher元素  在分发器下的过滤器 在RequestDispatcher 下调用过滤器       可能是    REQUEST, FORWARD, INCLUDE, ERROR 或者 任何它们的集合   过滤器回顾 过滤器的概念 编写和部署过滤器 包装器的概念 编写包装器 Filter请求分发器下的过滤器 
                 原创力文档
原创力文档 
                        

文档评论(0)