Struts 2 拦截器应用分析和总结.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Struts2拦截器应用

权限拦截器实际上就是一个实现权限控制的java类,这个类只需要集成一个AbstractInterceptor类,并通过实现intercept(ActionInvocationai)方法。完成拦截器的权限检查功能。

Java代码LoginInterceptor.java

packageinterceptor;importtmq.action.*;importjava.util.Map;

packageinterceptor;importtmq.action.*;importjava.util.Map;

importcom.opensymphony.xwork2.*;

publicclassLoginInterceptorextendsAbstractInterceptor{

publicStringintercept(ActionInvocationai)throwsException{Mapsession=ai.getInvocationContext().getSession();

//获得session中的用户名

Stringusername=(String)session.get(user);

//执行其他操作

if(username!=nullusername.length()0){returnai.invoke();

}else{

//返回Action中的LOGIN字符串

returnAction.LOGIN;

}

}

}

上述LoginInterceptor类主要实现用户的登录拦截,如果session中没用登录的用户名,则将该用户的请求转到Action.login,如果用户已经登录,则执行returnai.invoke();表示继续执行其他操作。

拦截器的配置

创建一个登录拦截器,要使用该拦截器时,需要在struts.xml文件中进行配置。配置内容有:对拦截器的配置,对该action类的配置。

拦截器配置代码:

下面代码中,使用interceptors元素配置拦截器,该拦截器为interceptor包下的LoginInterceptor类。配置Action,该Action为action包下的LoginAction类。在该Action中将使用所配置的拦截器。在前面已经讲过,如果为Action指定一个拦截器,则系统的默认拦截器栈就不会再起作用。为了继续使用默认拦截器栈,所以在下面的配置文件中手动引入默认拦截器栈。

packagename=testInterceptorextends=struts-default

packagename=testInterceptorextends=struts-default

//定义拦截器

interceptors

interceptorname=checkLoginclass=interceptor.LoginInterceptor/

/interceptors

//配置Action

actionname=loginActionclass=action.LoginAction

resultname=success/success.jsp/result

resultname=login/login.jsp/result

interceptor-refname=defaultStack/

//使用拦截器

interceptor-refname=checkLogin/

/action

/package

业务控制器Action

上述配置文件中,指出该实例所需的Action类为LoginAction,该类继承ActionSupport类,并实现execute()方法。代码如下LoginAction.java:

packageaction;

packageaction;

importcom.opensymphony.xwork2.ActionSupport;publicclassLoginActionextendsActionSupport{

publicStringexecute(){ //实现execute()方法

returnSUCCESS; //返回success逻辑字符串

}

}

将用户名和口令存入session中的方法:

在Login.java文件中导入com.opensymphony.xwork2包下的ActionContext类。即Importcom.opensymphony.xwork2.ActionCon

文档评论(0)

hao187 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档