Jsp之五 过滤器与监听器
2016-05-28 19:41
351 查看
什么是Filter?依据字面上的意思是过滤器。很多时候会利用它,例如:在线游戏、web聊天室或E-mail等等,可以利用Filter来过滤不雅字句或者拒绝对象的信息或信件。当用户的请求到达指定的页面之前,可以借助过滤器(Filter)来改变这些请求内容;同样地,当执行结果要响应道用户之前,若先经过过滤器,就可以修改输出的内容。
Filter的运行方式如同一层接一层,一直从最外面的的filter做到最里面的原始网页,然后再把响应一层一层传送出去,最后产生回传结果给用户。但是Filter也不是只能乖乖照这个顺序传送,首先Filter必须使用doFilter()才可以继续传到下一个Filter,因此可以选择某种条件下让Filter不要调用doFiler(),而通过其他方法转向到其他页面。Filter主要可以通过RequestDispatcher的forward()、include()或HttpServletResponse的sendRedirect()、sendError()等方法来转向到其他网页的动作。
我们可以在web.xml中使用<dispatcher>元素,用来设定Filter所对应的请求方式。他有四种设定,分别是request、forward、include、error。图【5-1】描述了Filter的运行方式。
1、Request
当用户直接对网页做出请求的动作时,才会调用此Filter。
2、Forward
当用户的请求是通过RequestDispatcher的forward()方法时,才调用此Filter其他请求不会调用此filter
3、include
当用户的请求时通过RequestDispatcher的include()方法时,才会调用此Filter其他请求不会调用此filter。
4、Error
当用户的请求时通过错误机制处理的时候,才会调用此filter,同样,其他请求不会调用此filter。
下面简单看一下Filter在web.xml中的配置情况
<filter>
<filter-name>test</filter-name>
<filter-class>com.filterbo.FilterTest</filter-class>
</filter>
<filter-mapping>
<filter-name>test</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
|
我们可以在web.xml中使用<dispatcher>元素,用来设定Filter所对应的请求方式。他有四种设定,分别是request、forward、include、error。图【5-1】描述了Filter的运行方式。
1、Request
当用户直接对网页做出请求的动作时,才会调用此Filter。
2、Forward
当用户的请求是通过RequestDispatcher的forward()方法时,才调用此Filter其他请求不会调用此filter
3、include
当用户的请求时通过RequestDispatcher的include()方法时,才会调用此Filter其他请求不会调用此filter。
4、Error
当用户的请求时通过错误机制处理的时候,才会调用此filter,同样,其他请求不会调用此filter。
下面简单看一下Filter在web.xml中的配置情况
<filter>
<filter-name>test</filter-name>
<filter-class>com.filterbo.FilterTest</filter-class>
</filter>
<filter-mapping>
<filter-name>test</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
相关文章推荐
- Jsp之五 过滤器与监听器
- fastjson生成JSON字符串的时候出现$ref
- Javascript的Date类型总结
- JavaScript书单
- 几种JS转跳页面方式
- javascript 工作必知(四) 类型转换
- 一个页面可以重复调用的TAB选项卡切换js代码 鼠标悬浮
- fastjson序列化hibernate查询的数据报错:failed to lazily initialize a collection of role
- dom中的事件
- C#无需第三方插件实现json和table互转
- Ajax的jsonp方式跨域获取数据的简单实例
- 深入理解js数组的sort排序
- js获取参数丢失0
- javaScript 工作必知(二) null 和undefined
- 深入理解js函数的作用域与this指向
- javaScript 工作必知(三) String .的方法从何而来?
- js实现CkeckBox全选与反选
- js 遍历json对象
- JavaScript的Array类型总结
- js和C# 时间日期格式转换的简单实例