过滤器代码:userLoginFilter.java
package com.gifer.action; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; public class userLoginFilter implements Filter { private static Logger log = Logger.getLogger(AuthenticationFilter.class); private static String LOGIN_PAGE = "/login.jsp"; @Override public void init(FilterConfig arg0) throws ServletException { if (log.isDebugEnabled()) { log.info("权限过滤器初始化完成。"); } } @Override public void destroy() { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; // 当前访问路径 String currentUrl = req.getRequestURI(); // 获取session HttpSession session = req.getSession(); // 如果不是登录页面,就要进行身份认证 if (currentUrl.indexOf(LOGIN_PAGE) == -1) { if (log.isDebugEnabled()) { log.info("正在对请求进行权限认证," + "请求URL:" + currentUrl); } // 如果session为空,或者用户没有登录,则重定向输出登录页面 if (session == null || session.getAttribute("user") == null) { res.sendRedirect(req.getContextPath() + LOGIN_PAGE); return; } } // 过滤完成,filter链继续向下执行 chain.doFilter(request, response); } }
web.xml
<!-- 自定义权限过滤器 --> <filter> <filter-name>authFilter</filter-name> <filter-class>com.gifer.action.userLoginFilter</filter-class> </filter> <filter-mapping> <filter-name>authFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
相关推荐
通过以上分析可以看出,在Struts2项目中配置过滤器是一种非常实用的方法,可以有效地实现对用户请求的预处理工作。需要注意的是,在实际应用中还应考虑更多细节问题,比如如何处理不同环境下的配置差异、如何更灵活...
在Struts2中实现自动登录功能,通常涉及到利用Cookie来保存用户登录状态,以便在用户再次访问时能够快速恢复其身份。这个过程涉及到几个关键步骤,包括登录处理、Cookie的创建与设置、过滤器的配置以及在请求处理...
Struts 2中的过滤器是实现请求处理、响应优化和安全控制的关键技术。通过灵活配置和合理设计,过滤器能显著提升Web应用程序的功能性和安全性。掌握过滤器的原理与应用,对于开发高效、安全的Web应用至关重要。
本实例展示了如何在Struts2环境中实现几个关键功能:自定义过滤器、文件上传下载以及用户登录功能。这些功能是任何Web应用程序的基础组成部分,理解和掌握它们对于提升Web开发技能至关重要。 首先,我们来探讨...
在`web.xml`中添加自定义过滤器的配置,确保它在Struts过滤器之前执行,以便先进行权限检查: ```xml <filter-name>customAuthenticationFilter <filter-class>...
在了解struts2连接数据库实现用户登录的相关知识点之前,首先需要对文档中出现的各种技术词汇有所了解。文档涉及了Struts2框架、web.xml配置文件、Action类以及数据库连接等关键概念。接下来,将详细探讨这些概念...
在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...
通过对Struts 2框架中过滤器和拦截器的核心区别以及具体应用场景的分析,我们可以看到,虽然两者都能实现类似的功能(如权限验证),但它们的工作方式和技术基础存在明显差异。选择合适的技术方案取决于实际项目的...
本文将深入探讨如何利用Struts2来实现用户登录功能,这对于任何Web应用来说都是基础且至关重要的部分。 首先,要理解Struts2的工作原理。Struts2框架的核心是Action类,它处理来自用户的请求,并通过...
在本项目中,过滤器可能与拦截器协同工作,同样负责验证用户登录状态。通常,过滤器通过实现`javax.servlet.Filter`接口并重写`doFilter()`方法来实现。过滤器可以全局应用,对所有请求或特定URL模式生效。 **非法...
- Struts2的拦截器或自定义过滤器会检测到这个Cookie,读取其值并解密。 - 检查解密后的Token是否存在于服务器的Session中。如果存在,说明该用户已经通过了身份验证,可以直接跳转到主页面,实现自动登录效果;...
Struts2提供了一个名为`ActionContextCleanUp`的过滤器,它负责清理ActionContext,确保请求处理过程中使用的字符集是UTF-8。在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免...
Servlet Filter(过滤器)是Servlet API的一部分,它允许开发者在请求被Servlet处理之前或之后对请求和响应进行拦截和修改。Filter可以用来实现如登录验证、字符编码转换、日志记录等多种功能。当一个请求到达Web...
在这个场景中,我们将探讨如何使用Struts2拦截器来实现输入数据的过滤,特别是去除前后空格。 首先,我们需要理解拦截器的工作原理。在Struts2中,拦截器是基于责任链模式设计的,它们按照配置的顺序形成一个链条,...
在SSH(Struts2、Spring、Hibernate)项目中,过滤器通常用于实现以下功能: 1. **安全控制**:如题目中提到的,过滤器可以用来拦截非法登录尝试。通过检查请求参数或会话状态,可以防止未授权用户访问受保护的资源...
总结一下,Struts2+CAS的单点登录集成涉及到的主要知识点包括:CAS的工作流程、Struts2框架的拦截器机制、Web应用的过滤器配置以及安全认证的实现。通过这个简单的示例,开发者可以学习如何在自己的项目中实施SSO,...
Struts2 工作原理及拦截器和过滤器 Struts2 框架的工作原理可以分为以下几个步骤: 1. 客户端发出一个指向 Servlet 容器的请求(Tomcat); 2. 这个请求会经过几个过滤器,最后会到达 FilterDispatcher 过滤器。...
Hibernate和Struts2都提供了一些安全相关的工具和插件,例如使用预编译的SQL(PreparedStatement)来防止SQL注入,以及使用过滤器和拦截器来防止恶意脚本。 综上所述,这个项目展示了如何结合使用Hibernate和Struts...
例如,在"struts过滤器(拦截器)程序.zip"中,`web.xml`可能包含了对Struts2 Filter的配置,像这样: ```xml <filter-name>struts2 <filter-class>org.apache.struts2.dispatcher.filter....
总的来说,这个"Struts2用户登录实例(无数据库)"是一个很好的起点,可以帮助初学者理解Struts2的基本工作流程,以及如何在没有数据库的情况下实现用户登录功能。一旦掌握了这些基础,可以进一步探索如何整合数据库...