- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
T09 Web监听与过滤
下次预习 标签语言的概述 JspTag与Tag接口介绍 开发一个自定义标签 实现 Tag 接口 /继承 TagSupport类 在Web中使用自定义标签 创建带属性的自定义标签 通过BodyTagSupport来创建自定义标签 Web监听与过滤 课程目标 理解 Web应用过滤器 Servlet上下文监听 Servlet会话监听 Servlet请求监听 掌握 使用过滤器解决中文乱麻问题 使用servlet会话监听统计网站的在线人数 体验项目 --管理在线用户 实现的功能:统计当前在线用户人数,以及管理用户列表。编写一个登录页面,在登录页面中添加一个文本框和一个提交按钮。在文本框中输入用户名后,即可点击“登录”按钮登录到聊天室。在聊天室左框架中将显示当前在线人数及用户名等信息。 (1)启动服务器,访问登录页面,如图所示: (2)在登录页面的文本框中输入用户名后,点击“登录”按钮,进入聊天室页面。在聊天室页面的左侧框架将显示出当前的在线人数和用户列表。如图所示: 体验项目 --管理在线用户 (3)接着再登录第二个用户“manager”,这时在线人数将变为2,用户名列表里也将列出“admin”和“manager”两个用户。如图所示: (4)然后,我们将“admin”退出系统(关闭浏览器),当前的在线用户信息也将改变。如图所示: Filter Filter根据字面上的意思就是过滤器。 它具有以下特点: 声明式的: 动态的: 灵活的: 模块化的: 可移植的: 可重用的: 透明的: 过滤器的特点 主要运用方法: 统一的认证处理 对用户的请求做检查、做更精确的纪录 监视或对用户所传递的参数做前置处理,如防止数据隐藏码攻击 改变图像文件的格式 对响应做编码的动作 对响应做压缩处理 对XML的输出使用xslt来转换 Filter -- 运作方式 Servlet Container Filter 1 Filter 2 Servlet/Jsp/静态文件 doFilter() FilterChain#doFilter() doFilter() FilterChain#doFilter() Service() 传回内容 后置处理 Filter的运作方式 Filter -- 实现及其配置 1、写一个servlet类,让其实现javax.servlet.Filter接口。在该类中可以通过doFilter()方法实现你的过滤功能。 2、在web.xml文件中进行配置,指定该filter生效的条件。 filter … filter filter-mapping … filter-mapping 指定被加载的Filter类路径并定义名称 指定该Filter将通过那些请求对那些页面生效 Filter – 类实现 1、继承javax.servlet.Filter接口。 2、实现接口中的三个方法: init(FilterConfig?filterConfig) throws ServletException 当servlet容器创建该filter实例的时候调用该方法进行初始化设置。 doFilter(ServletRequest?request, ServletResponse?response, FilterChain?chain) throws java.io.IOException, ServletException 当客户端请求服务资源或是回复的时候调用该方法进行filter功能处理。 destroy( ) 当服务不在使用该filter功能的时候被web容器调用,此后的web请求将不在进行doFilter中的处理。 Filter-例子 Web.xml文件中的配置 Filter-例子 例子 用户登陆的 1、通过连接数据库来现实验证 2、在整个例子中使用Filter来解决中文乱码 过滤器的生命周期 和Servlet一样,过滤器的生命周期分为四个阶段。 实例化,实现javax.servlet.Filter接口。 读取过滤器的初始化函数,调用init()方法。 完成对请求或过滤的响应,调用doFilter()方法。 销毁过滤器,调用destroy()方法。 监听器 在Servlet中可以通过创建不同的监听程序来实现不同的事件处理。 在Servlet2.4中提供了三种对象的事件监听: ServletConteext监听web上下文信息 HttpSession监听Servelt的会话信息 ServletRequest监听Servlet的请求信息 Servlet上下文监听 在Web应用中可以通过创建监听程序来监听ServletContext的信息: 比如监听ServletContext的创建和删除 对S
文档评论(0)