- 【1】struts.xml:
- <!--定义一个拦截器 -->
- <interceptors>
- <interceptor name="authority"
- >
- </interceptor>
- <!-- 拦截器栈 -->
- <interceptor-stackname="mydefault">
- <interceptor-ref name="defaultStack"/>
- <interceptor-ref name="authority" />
- </interceptor-stack>
- </interceptors>
- <!-- 定义全局Result -->
- <global-results>
- <!-- 当返回login视图名时,转入/login.jsp页面-->
- <resultname="login">/login.jsp</result>
- </global-results>
- <actionname="show">
- <resultname="success">/main.jsp</result>
- <!-- 使用此拦截器 -->
- <interceptor-ref name="mydefault"/>
- </action>
- <!--验证登录用户信息-->
- <actionname="login"method="execute">
- <resultname="error">/login.jsp</result>
- <resultname="input">/login.jsp</result>
- </action>
- 【2】自定义拦截器org.interceptot.LoginInterceptor:
- package org.interceptot;
- import java.util.Map;
- import com.opensymphony.xwork2.Action;
- importcom.opensymphony.xwork2.ActionContext;
- importcom.opensymphony.xwork2.ActionInvocation;
- importcom.opensymphony.xwork2.interceptor.AbstractInterceptor;
- public class LoginInterceptor extendsAbstractInterceptor {
- @Override
- public String intercept(ActionInvocation invocation) throwsException {
- // 取得请求相关的ActionContext实例
- ActionContext ctx =invocation.getInvocationContext();
- Map session =ctx.getSession();
- String user = (String)session.get("username");
- // 如果没有登陆,即用户名不存在,都返回重新登陆
- System.out.println("user:"+user);
- if (user != null) {
- System.out.println("test");
- return invocation.invoke();
- }
- System.out.println("你还没有登录");
- ctx.put("tip", "你还没有登录");
- return Action.LOGIN;//返回一个叫login的result结果
- }
- }
- 【3】进入主页面的Action:org.action.showAction
- package org.action;
- importcom.opensymphony.xwork2.ActionSupport;
- public class showAction extendsActionSupport {
- public String execute(){
- return "success";
- }
- }
- 【4】LoginAction:
- private boolean isInvalid(String value) {
- return (value == null || value.length()== 0);
- }
- if (isInvalid(user.getUsername()))
- return INPUT;
- if (isInvalid(user.getPassword()))
- return INPUT;
- //登录成功将User放入session中
- HttpServletRequest request =ServletActionContext.getRequest();
- Mapmap=ActionContext.getContext().getSession();
- map.put("username",user.getUsername());
- 【5】如果我们通过show.action访问main.jsp那么就会被自定义拦截器拦住,拦截器检查session中
- 是否有值,有证明用户已经登录,没有则为没有登录,那么就会被跳转到登陆页面。
Struts2自定义拦截器实例—只允许从登录页面进入系统 struts2拦截器的作用
更多阅读
如何自定义文件夹图标 win7自定义文件夹图标
如何自定义文件夹图标——简介如何制作个性的文件夹图标,一眼就区别开不同的文件夹。如何自定义文件夹图标——工具/原料png图片转化ico图片软件美图秀秀如何自定义文件夹图标——方法/步骤如何自定义文件夹图标 1、从百度图片里
如何了解山地车后避震阻尼器构造和阻尼器的作用 捷安特全避震山地车
如何了解山地车后避震阻尼器构造和阻尼器的作用——简介这是一篇关于如何了解山地车后避震阻尼器构造和阻尼器的作用的技术贴如何了解山地车后避震阻尼器构造和阻尼器的作用——方法/步骤如何了解山地车后避震阻尼器构造和阻尼器的
加湿器的危害 六招有效解决加湿器隐患 纯净型加湿器的危害
加湿器的危害 六招有效解决加湿器隐患——简介 秋冬季节是一年四季最干燥的季节,特别是北方的天气,空气十分干燥,对人的皮肤和健康带来一些隐患,于是加湿器便不可置疑的进入到了人们的生活中,但是在日常生活中许多人却忽略了加湿器的危害
如何自定义QQ秀图片 qq秀免费自定义图片
如何自定义QQ秀图片——简介教你怎把QQ秀换成自定义图片,自定义图片功能可以把自己想要的图片传到QQ秀形象,也可以随时用空间的图片做形象,但是这个功能是收费的。下面小编就说说操作步骤。如何自定义QQ秀图片——工具/原料电脑QQ秀
42.减温器在过热器系统中如何布置较为合理?汽-汽热交换器的作用 过热器喷水减温器
127.减温器在过热器系统中如何布置较为合理?245减温器的作用,除了将汽温调节到额定范围内,还要保护受热面不致过热,既要求保证汽温调节的灵敏和准确,又要保证受热面安全。要很好完成这两方面的任务,减温器布置的位置,将起重要的作用。1)如