今天没事干看了看struts2.1的拦截器部分,自己做了一个小例子,汇总一下,有需要的朋友也可以看看……
注:有关struts2.1的拦截器的概念东东我就不介绍了,自己可以去查查资料.
下面是本人写的登录实现拦截器的例子:
1. login.jsp
<s:form action="userLoginAction.action" method="post">
Username:<s:textfield name="user.username" /><br>
Password:<s:password name="user.password" /><br/>
<s:submit value="Submit" /> <s:reset value="Reset" />
</s:form>
2. struts.xml
<package name="User" extends="struts-default">
<!-- 设置自己创建的拦截器栈 -->
<interceptors>
<interceptor name="loginInterceptor" class="org.com.ssh.action.LoginInterceptor"></interceptor>
<interceptor-stack name="loginDefaultStack">
<interceptor-ref name="loginInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</interceptor-stack>
</interceptors>
<global-results>
<result name="login" type="redirect">/login.jsp</result>
</global-results>
<action name="findUserAction" class="org.com.ssh.action.UserAction" method="FindUser">
<result>/index.jsp</result>
<!-- 此处引用拦截器 -->
<interceptor-ref name="loginDefaultStack"></interceptor-ref>
</action>
<action name="userLoginAction" class="org.com.ssh.action.UserLoginAction" method="UserLogin">
<result name="success">/loginSuc.jsp</result>
<result name="error">/login.jsp</result>
</action>
</package>
注意:配置文件里最好使用全局转发的login代码
struts2 写道
<global-results>
<result name="login" type="redirect">/login.jsp</result>
</global-results>
3. UserLoginAction.java
private User user;
@Autowired
private UserService userservice;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public UserService getUserservice() {
return userservice;
}
public void setUserservice(UserService userservice) {
this.userservice = userservice;
}
/**
* 验证登录用户是否正确
* @return tipMes
*/
public String UserLogin()
{
String tipMes = "";
//MD5对密码进行加密
MD5 m = new MD5();
user.setPassword(m.getMD5ofStr(user.getPassword()));
Boolean b = userservice.valLogin(user);
if(b == true)
{
user = userservice.FindUserPro(user);
ActionContext.getContext().getSession().put("user", user);
return SUCCESS;
}
else
{
this.addFieldError(tipMes, "您输入的Username或者Password不匹配,请重新输入!");
return ERROR;
}
}
4. LoginInterceptor.java
public class LoginInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext actionContext = invocation.getInvocationContext();
Map session = actionContext.getSession();
User user = (User)session.get("user");
if (user == null){
return Action.LOGIN;
}
else
{
return invocation.invoke();
}
}
}
5. loginSuc.jsp
<body>
登录成功!
</body>
OK,简单的登录的拦截器就搞定了!
分享到:
相关推荐
Struts2.1是Apache软件基金会的开源框架Struts的第二个主要版本,它基于MVC(Model-View-Controller)设计模式,为Java Web应用程序提供了一种强大的开发框架。Struts2的核心目标是简化Web应用的开发过程,提高代码...
- 利用FileUpload拦截器实现文件上传功能。 - 设计Action处理文件存储和访问逻辑。 - 支持大文件上传和断点续传等功能。 #### 四、Struts 2.1 高级特性 - **拦截器**: - 创建自定义拦截器增强框架功能。 - ...
3. **Interceptor(拦截器)**:拦截器是Struts 2中的一个重要概念,它们可以插入到Action调用的流程中,执行预处理或后处理任务,如日志记录、权限检查、事务管理等。 4. **Result**:Result是Action执行后的结果...
Struts2.1是Apache软件基金会的开源框架,主要用于构建基于Java EE的Web应用程序。它在Struts1的基础上进行了重大改进,提供了更强大的MVC(Model-View-Controller)架构支持,增强了动作处理、异常处理、国际化、...
18_黑马程序员_struts2.1视频教程_自定义拦截器.rar是关于Struts2的拦截器(Interceptor)机制,拦截器是Struts2的一大亮点,它可以拦截请求,执行预处理或后处理操作。通过自定义拦截器,开发者可以实现如日志记录...
Struts2.1是Apache软件基金会旗下的Web应用框架Struts的特定版本,它基于Model-View-Controller(MVC)设计模式,旨在提供一个结构化的、可扩展的平台,用于开发Java Web应用程序。Struts2作为Java EE领域的重要组件...
4. **拦截器链**:合理利用Interceptor链可以实现如性能监控、事务管理、权限控制等多种功能。 5. **插件扩展**:Struts 2拥有丰富的插件体系,可以根据需求选择使用,如Tiles插件用于布局管理,Struts2-dojo-...
1. **拦截器(Interceptors)**:Struts2的核心部分之一,拦截器允许开发者定义一系列操作,这些操作在Action调用前后执行。它们可以用来处理如日志、授权、事务管理等通用任务,提高了代码的可复用性和模块化。 2. *...
Struts2.1是一款基于MVC(Model-View-Controller)设计模式的开源Java Web框架,由Apache软件基金会维护。这个“struts2.1包”是该框架的一个旧版本,可能包含了Struts2的核心库和其他相关的依赖库,用于支持开发...
Struts2.1是Apache软件基金会的一个开源框架,主要用于构建基于Java的企业级Web应用程序。它在Struts1的基础上进行了重大改进,提供了更强大的控制层、更灵活的MVC设计模式实现,以及对现代Web开发技术的更好支持。...
4. **配置Struts2**:在WEB-INF下创建struts.xml文件,配置Struts2的核心拦截器栈、Action和结果类型。例如: ```xml <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false"/> ...
总结来说,Struts2.1 jar包是Java Web开发中不可或缺的一部分,它提供了强大的MVC架构,帮助开发者构建可维护、可扩展的Web应用。了解并熟练掌握Struts2框架的使用,对于提升开发效率和项目质量有着显著的帮助。
使用Struts2.1进行开发时,你需要配置`struts.xml`文件来定义Action、结果和拦截器,然后创建Action类处理业务逻辑,编写视图(如JSP或Freemarker模板)展示数据。同时,还需要确保你的项目正确引入了所有必要的库和...
Struts2.1是Apache软件基金会下的一个开源框架,它基于MVC(Model-View-Controller)设计模式,主要用于构建Java Web应用程序。本教程“传智播客struts2.1视频教程—源代码”旨在帮助初学者深入理解并掌握Struts2.1...
总的来说,"Struts 2.1权威指南基于WebWork核心的MVC开发"涵盖了从基础概念到高级特性的全面内容,包括但不限于Action、拦截器、OGNL、配置文件、结果类型等,是学习和掌握Struts 2.1框架的宝贵资料。通过深入学习并...
首先,Struts2.1作为Java Web开发中的主流框架,它的核心在于Action和Interceptor(拦截器)。Action是业务逻辑的载体,Interceptor则是处理请求和响应的关键组件,可以进行权限控制、日志记录等操作。在Struts2.1中...
Struts2.1是Apache软件基金会的开源框架Struts的第二个主要版本,它在Web应用开发领域具有广泛的应用。此“Struts2.1权威指南”第9章的源码光盘提供了深入学习和理解Struts2.1框架的宝贵资源。通过分析和实践这些...
Struts2.1是Apache软件基金会的开源框架,主要用于构建企业级Java web应用程序。这个"Struts2.1权威指南光盘源代码第21章"的资源很可能包含了一个章节的示例代码,帮助读者深入理解和实践Struts2.1框架的特定功能。 ...
这个"Struts2.1权威指南光盘源代码第5章"很可能是书籍《Struts2.1权威指南》中第五章的配套源代码,旨在帮助读者深入理解Struts2.1框架的工作原理和实践应用。 在Struts2框架中,第5章通常会涵盖以下几个关键知识点...
Struts2.1是Apache软件基金会旗下的一个开源框架,它主要应用于Java平台,用于构建企业级Web应用程序。这个"Struts2.1权威指南光盘源代码第3章"提供的内容,显然着重于讲解和实践Struts2.1框架的核心功能和特性。第3...