servlet和JSP过滤器Filter
servlet API的2.3版本中最重要的一个新功能就是能够为servlet和JSP页面定义过滤器。过滤器提供了某些早期服务器所支持的非标准
“servlet链接”的一种功能强大且标准的替代品。
过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上。过滤器可
附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息。在这之后,过滤器可以作如下的选择:
l
以常规的方式调用资源(即,调用servlet或JSP页面)。
l 利用修改过的请求信息调用资源。
l
调用资源,但在发送响应到客户机前对其进行修改
l 阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出。
过滤
器提供了几个重要好处。
首先,它以一种模块化的或可重用的方式封装公共的行为。你有30个不同的serlvet或JSP页面,需要压缩它们的内容
以减少下载时间吗?没问题:构造一个压缩过滤器(参阅第11节),然后将它应用到30个资源上即可。
其次,利用它能够将高级访问决策与表现代码相
分离。这对于JSP特别有价值,其中一般希望将几乎整个页面集中在表现上,而不是集中在业务逻辑上。例如,希望阻塞来自某些站点的访问而不用修改各页面
(这些页面受到访问限制)吗?没问题:建立一个访问限制过滤器(参阅第8节)并把它应用到想要限制访问的页面上即可。
最后,过滤器使你能够对许多
不同的资源进行批量性的更改。你有许多现存资源,这些资源除了公司名要更改外其他的保持不变,能办到么?没问题:构造一个串替换过滤器(参阅第10节),
只要合适就使用它。
但要注意,过滤器只在与servlet规范2.3版兼容的服务器上有作用。如果你的Web应用需要支持旧版服务器,就不能使用
过滤器。
1. 建立基本过滤器
建立一个过滤器涉及下列五个步骤:
1)建立一个实现Filter接口的类。这个类需要三个方法,
分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码(见第2步),init方法建立设置操作,而
destroy方法进行清楚。
2)在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对
象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在
简单的过滤器中忽略此参数。最后一个参数为FilterChain,如下一步所述,此参数用来调用servlet或JSP页。
3)调用
FilterChain对象的doFilter方法。Fil
相关文档:
J2EE 探索者:
创建和管理有状态 Web 应用程序
对4种会话作用域的适当处理
文档选项
将此页作为电子邮件发送
拓展 Tomcat 应用
......
请参照以下的原代码,注意:可以替换JavaScript码中的2007
以下是网页源代码
<!-- 分三步完成全部脚本:
1. 将第一部分粘贴到HTML的HEAD区
2. 将OnLoad事件加入BODY标签内
3. 将最后一部分代码加入BODY区 -->
<!-- 第一步: 将如下代码粘贴到HTML的HEAD区-->
<HEAD>
<SCRIPT LANGUAGE="JavaScri ......
风格一
星期四,4月19日,2007年
风格二 1:23:15下午
风格三 星期四,4月19日,2007年 1:23:15下午
风格四 4../../../19../../../07
风格五: 13:23:15
风格六: Thu Apr 19 13:23:15 UTC+0800 2007
风格七 Microsoft Internet Exp ......
1: 我们需要下载page标签的jar包; pager-taglib.jar
[样例代码]: http://jsptags.com/tags/navigation/pager/pager-taglib-2.0.war
解压war文件 在{..}\WEB-INF\lib\pager-taglib.jar
2:把这个jar 拷贝到你的web ......
一,jsp出现的的原因
看两段代码的对比
1 servlet实现
public class Welcome extends HttpServlet {
int num = 1;
public void doGet(HttpServletRequest request,
&nbs ......