Filter开发实战:URL访问记录与登录控制

需积分: 0 1 下载量 119 浏览量 更新于2024-09-07 收藏 535KB DOC 举报
"Filter程序开发与应用上机手册" Filter程序在Web开发中扮演着至关重要的角色,它允许开发者在HTTP请求到达目标Servlet或JSP之前进行拦截和处理,以及在响应返回给客户端之前进行修改。本手册主要涵盖了两个相关的案例,分别是用Filter实现URL访问记录(Web-542)和用Filter实现登录检查与访问权限控制(Web-541)。 案例Web-542的目标是让开发者熟悉Filter的编写和部署,以及如何在Filter中获取并记录用户访问信息。在这个案例中,开发者需要创建一个Filter,该Filter能够记录所有用户对jsp和servlet的访问,记录的信息包括访问时间、用户的IP地址以及所访问的URL,并将这些信息输出到标准输出stdout。具体步骤包括: 1. 下载并解压Eclipse工程文件,然后导入到Eclipse的workspace中。 2. 在src/exper包下创建名为AccessLogFilter的Filter类。 3. 配置`web.xml`文件,添加新Filter的配置,指定过滤器的类名、URL模式等。 4. 启动Resin服务器,通过浏览器访问页面,观察Eclipse Console窗口中的输出,确认Filter是否正确记录了访问信息。 案例思考与扩展部分提出了两个问题:为什么无法记录用户对html和图片的访问,以及如何添加HTTP请求参数的记录。这提示开发者深入理解Filter的工作原理,例如,Filter只对特定的MIME类型或URL路径生效,而HTML和图片通常不经过Filter处理。若要记录HTTP请求参数,可以在Filter中解析HttpServletRequest对象,获取请求参数并记录。 案例Web-541则关注于登录检查和访问权限控制。这个案例提供了一个基础的登录系统,包括登录页面和登录处理Servlet。Filter在此处用于验证用户身份,只有登录成功的用户才能访问特定的管理员页面。通过Filter,开发者可以学习如何在请求链中检查用户状态,以及如何根据用户角色决定其访问权限。 总结来说,Filter程序开发与应用涉及到的核心知识点包括: 1. Filter接口和生命周期:理解`doFilter()`方法,初始化(`init()`)和销毁(`destroy()`)过程。 2. 配置Filter:在`web.xml`中设置Filter的映射,定义过滤规则。 3. 获取请求信息:通过HttpServletRequest对象获取请求头、参数和路径信息。 4. 拦截和转发:Filter可以决定请求是否继续传递给下一个过滤器或目标资源,也可以重定向用户。 5. 访问控制:基于用户角色或状态的访问控制策略。 6. 日志记录:如何在Filter中实现日志功能,记录用户活动。 这两个案例提供了实践Filter功能的实用示例,有助于开发者巩固理论知识并提升实际开发技能。