package com.nantian.surveypark.struts2.action; import java.util.List; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.nantian.surveypark.domain.Survey; import com.nantian.surveypark.domain.User; import com.nantian.surveypark.service.SurveyService; /** * */ @Controller @Scope("prototype") public class SurveyAction extends BaseAction<Survey> implements UserAware { /** * */ private static final long serialVersionUID = 1L; @Resource private SurveyService surveyService; // 接受session的user对象 private User user; private List<Survey> mySurveys; public List<Survey> getMySurveys() { return mySurveys; } public void setMySurveys(List<Survey> mySurveys) { this.mySurveys = mySurveys; } /* * 新建调查 */ public String newSurvey() { this.model = surveyService.newSurvey(user); return "designSurveyPage"; } /** * 查询我的调查 */ public String mySurveys() { this.mySurveys = surveyService.findMySurveys(user); return "mySurveyListPage"; } // 注入user对象 public void setUser(User user) { this.user = user; } }
package com.nantian.surveypark.struts2.action; import com.nantian.surveypark.domain.User; /** * 用户关注接口 */ public interface UserAware { public void setUser(User user); }
package com.nantian.surveypark.struts2.interceptor; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.nantian.surveypark.domain.User; import com.nantian.surveypark.struts2.action.BaseAction; import com.nantian.surveypark.struts2.action.LoginAction; import com.nantian.surveypark.struts2.action.RegAction; import com.nantian.surveypark.struts2.action.UserAware; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.Interceptor; /** * LoginInterceptor */ public class LoginInterceptor implements Interceptor { /** * */ private static final long serialVersionUID = 2780249243216901184L; public void destroy() { } public void init() { } @SuppressWarnings("rawtypes") public String intercept(ActionInvocation invocation) throws Exception { BaseAction action = (BaseAction) invocation.getAction(); if (action instanceof LoginAction || action instanceof RegAction) { return invocation.invoke(); } // 登录判断 else { HttpSession s = ServletActionContext.getRequest().getSession(); User user = (User) s.getAttribute("user"); if (user == null) { return "login"; } else { // 处理action的user注入问题 if (action instanceof UserAware) { ((UserAware) action).setUser(user); } return invocation.invoke(); } } } }
<?xml version="1.0"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <!-- 简单主题 --> <constant name="struts.ui.theme" value="simple" /> <!-- 开发模式 --> <constant name="struts.devMode" value="true" /> <package name="surveyParkPkg" namespace="/" extends="struts-default"> <interceptors> <!-- 注册自定义登录拦截器 --> <interceptor name="loginInterceptor" class="com.nantian.surveypark.struts2.interceptor.LoginInterceptor" /> <!-- 自定义拦截器栈 --> <interceptor-stack name="surveyparkStack"> <interceptor-ref name="loginInterceptor" /> <interceptor-ref name="defaultStack"> <param name="modelDriven.refreshModelBeforeResult">true</param> </interceptor-ref> </interceptor-stack> </interceptors> <!-- 定义默认栈 --> <default-interceptor-ref name="surveyparkStack" /> <!-- 定义全局结果 --> <global-results> <result name="login">/index.jsp</result> </global-results> <!-- regAction --> <action name="RegAction_*" class="regAction" method="{1}"> <result name="regPage">/reg.jsp</result> <result name="success">/index.jsp</result> <result name="input">/reg.jsp</result> </action> <!-- loginAction --> <action name="LoginAction_*" class="loginAction" method="{1}"> <result name="loginPage">/index.jsp</result> <result name="success">/index.jsp</result> <result name="input">/index.jsp</result> </action> <!-- SurveyAction --> <action name="SurveyAction_*" class="surveyAction" method="{1}"> <result name="designSurveyPage">/designSurvey.jsp</result> <result name="mySurveyListPage">/mySurveyList.jsp</result> </action> </package> </struts>
相关推荐
在Struts2中,拦截器(Interceptor)扮演着至关重要的角色,它允许开发者在动作执行前后插入自定义逻辑,如日志记录、权限验证等。在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合...
在Struts2中,拦截器是实现业务逻辑控制和处理流程的重要组件,它们可以添加额外的功能,如日志记录、权限检查、事务管理等,而不干扰实际的业务操作。本篇文章将详细介绍如何配置Struts2的登录拦截器,以及其背后的...
总结起来,这个"Struts拦截器案例——登陆"涵盖了Struts2拦截器的基本使用、登录验证、数据库操作以及异常处理等多个方面。通过学习这个案例,开发者可以更好地理解和掌握Struts2框架中的拦截器机制,从而在实际项目...
2. 注册拦截器:在Struts2的配置文件(如struts.xml)中,将这个拦截器添加到默认栈或者自定义拦截器栈中。 3. 检查登录状态:在`intercept()`方法中,可以通过Session或者其他方式检查用户是否已登录,未登录则返回...
在这个"struts2实现的简单登陆 附加拦截器防止重复提交"的项目中,我们将深入探讨Struts2如何处理用户登录以及如何通过拦截器来防止重复提交的问题。 首先,我们来理解一下Struts2的核心概念。Struts2框架基于...
struts2上传单个文件及多个文件,strus2拦截器的使用,里面有个user用户,先执行user.jsp即登陆,可以执行上传文件的操作,反之,不能,有个exit.jsp,退出之后不能执行。里面含有jar文件,导入myeclipse可以执行...
Struts2 框架是Java Web开发中的一个强大MVC框架,它的核心特性之一是拦截器(Interceptor),它允许开发者在Action执行前后插入自定义的处理逻辑,从而实现诸如日志、权限控制、事务管理等多种功能。在这个场景中,...
在Struts2中,我们还可以利用拦截器(Interceptor)增强功能,如登录拦截器可以检查用户是否已经登录,未登录时重定向到登录页面。日志拦截器可以记录请求信息,帮助调试和监控。 文件"hello_struts2"可能包含了...
3. **拦截器**:Struts2的拦截器可以进行全局性的操作,比如登录检查、权限验证等。在登录注册中,我们可能会用到`Params`拦截器来处理表单参数,`Validation`拦截器来进行数据验证。 4. **结果类型(Result)**:...
3. **拦截器(Interceptors)**:Struts2的核心特性之一是拦截器,它们可以插入到Action调用链中,执行额外的任务,如日志记录、权限检查等。在登录场景中,可能有一个验证用户凭据的拦截器。 4. **结果(Results)...
Struts2框架通过拦截器处理请求,拦截器链可以实现诸如参数绑定、类型转换、异常处理等功能。在登录案例中,Struts2会自动将表单数据绑定到Action类的属性上,无需手动获取请求参数。 总结一下,Struts2登录案例...
此外,Struts2支持拦截器(Interceptor),这些拦截器可以插入到Action执行流程中,提供额外的功能,如登录检查。你可以创建一个自定义拦截器,确保只有已登录的用户才能访问特定的Action。在Struts2配置文件中,将...
4. **拦截器(Interceptor)**:Struts2的拦截器可以用来增强Action执行前后的功能,比如登录验证。可以创建自定义的拦截器来检查Session中是否有已登录的用户,或者直接在Action中进行验证。 5. **数据验证**:在...
Struts拦截器实现拦截未登陆用户实例解析 Struts拦截器是Struts2框架中的一个重要组件,它可以在Action执行之前或之后进行拦截,实现一些公共的逻辑操作。今天,我们将讲解如何使用Struts拦截器来实现拦截未登陆...
本文深入探讨如何利用Struts2的拦截器特性实现有效的登录验证,包括超时后的跳转处理。 #### 一、拦截器的概念 拦截器(Interceptor)是Struts2框架中的关键组件之一,用于在执行Action之前或之后进行一系列的...
4. **拦截器(Interceptor)**:Struts2的拦截器机制允许在Action执行前后插入自定义逻辑,如登陆验证。通常,一个名为`validation`的拦截器会检查Action的输入是否有效,而`login`拦截器则处理实际的登陆验证。 5....
此外,Struts2使用配置文件(如struts.xml)来管理Action、结果和拦截器,使得整个应用的结构清晰可维护。 在MyEclipse中,开发者通常会创建一个Struts2项目,包含src目录、WebContent目录等。源代码通常分布在src...
2. **配置文件**:Struts2的配置文件(通常是`struts.xml`或`struts-default.xml`)定义了Action类和Action方法之间的映射关系,以及拦截器的配置。在登录场景下,我们需要配置`LoginAction`及其相关操作的结果。 `...
4. **拦截器(Interceptor)**:Struts2的拦截器机制允许在Action执行前后插入额外的处理逻辑。在登录场景中,可以使用`params`拦截器来处理表单参数,`validation`拦截器进行表单验证,以及可能的`login`自定义拦截...
5. **Interceptor(拦截器)**:Struts 2的拦截器机制允许我们在Action执行前后添加自定义逻辑,如验证、日志等。对于登录,我们可以使用预定义的`params`拦截器来处理表单参数,以及自定义的`validation`拦截器进行...