javaweb_高级_过滤器_监听器

javaweb_高级_过滤器_监听器

ID:6075134

大小:562.50 KB

页数:14页

时间:2018-01-02

javaweb_高级_过滤器_监听器_第1页
javaweb_高级_过滤器_监听器_第2页
javaweb_高级_过滤器_监听器_第3页
javaweb_高级_过滤器_监听器_第4页
javaweb_高级_过滤器_监听器_第5页
资源描述:

《javaweb_高级_过滤器_监听器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、过滤器1.【学习目标】1:过滤器的原理。2:如何使用过滤器。(对象api实现业务功能)3:filterConfig对象4:映射filter的多种方式5:filter的案例(重点掌握)1)用户权限url设置2)解决全网站的post和get方式乱码。2.教学内容2.1.过滤器的原理Serlvet技术规范中描述了三种技术:Servlet(服务器端小程序),filter(过滤器),listener(监听器),而其中过滤器和监听器可以用来实现很多高级的功能今天的课程重点是学习过滤器,过滤器主要用来干什么?主要用来拦截客户端对web资源的访问,包括静态资源以及web资源,例如:对一些敏感的词汇,控

2、制访问权限等等。Filter工作的原理是什么?见下图:当客户端访问服务器端的web组件(servlet/jsp时,每一次请求都会执行过滤器组件的业务方法doFilter()具体的业务在doFilter里面编写!)1.1.过滤器的快速入门!1:编写java类实现Filter接口编写目标servlet编写过滤器拦截目标servletfilter12:对目标web组件(servletjsp起作用)配置web.xml过滤器有效路径启动容器控制台发现init方法执行过滤器对象在容器启动就会生成实例对象小结:编写过滤器实现Filter接口重点:doFilter(三个参数)过滤器会创建request

3、response两个对象第三个参数FilterChain是否放行后续servlet或者jspdoGet()doPost()参数是由过滤器传递过来的过滤器有效性由web.xml配置决定过滤器作用范围.问题:当filter对某个请求的资源拦截后,如果想正常的看到被拦截的内容,那么怎么办呢?其doFilter方法中调用下chain.doFilter(request,response),否则将看不到后续的数据了。1.1.1.过滤器映射filter的多种方式过滤器拦截配置:参考servlet-mapping语法一致1、如果连接目标资源是一个Servlet,选择ur

4、l-pattern配置方式2、url-pattern和Servlet中路径写法一样,有三种:完全匹配、目录匹配、扩展名匹配需要常用配置:1:/hello2:/dir/*3:*.jsp1.1.1.filterConfig对象filterConfig是类似于ServletConfig的一个组件。首先大家回想下学习servlet时,servletConfig对象是一个什么样的对象。该对象主要用来获取web.xml文件中过滤器配置的初始化参数同样的,filterConfig也是tomcat服务器传递给我们开发人员的对象,主要用来获得filter的一些配置信息,而这些信息一般配置在web.xml

5、中。类似的也有如下这几个方法:getServletContext();//获得serlvetContext对象getInitParameter(Stringname);//获得配置的参数。EnumerationgetInitParameterNames();//获得所有的配置参数。1.1.2.获取web.xml配置参数信息知道filterConfig如何获得filter中配置的参数。(了解即可)举例:用户可以获取web.xml配置的参数信息!1.filter的案例1.1.案例一实现全站的中文字符编码1:编写过滤器对象问题:web开发中出现乱码位置?1:表单提交数据给Se

6、rvlet进行数据封装对象:entity实体类postget提交的数据解决中文乱码post:request.setChatacterEncoding("utf-8");get:超链接发送数据:解决乱码/hello?name=xxx&password=xxx&inite.....?name=newString(name.getBytes("iso-8859-1"),"utf-8");问题:每一个servlet都需要进行乱码的操作!引入过滤器:将乱码问题提前到过滤器中进行编码处理,图解:doFilter(request,response);将已经处理过的请求和响应对象传递给目标servle

7、t在你的具体的servldet乱码问题就解决了!问题:如何实现过滤器统一处理乱码?将获取请求参数的所有api方法全部编码处理获取请求参数的apirequest.getParameter("name")request.getParameterValues("kk")request.getParameterMap()目的:将上述的每一个方法都进行编码处理!结论:在过滤器的业务方法里面重写三个方法!java如何重写一个类的方法?---->HttpSe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。