您的位置:首页 > 编程语言 > Java开发

[JavaWeb基础] 011.Struts2 配置拦截器

2015-08-17 20:27 537 查看
  在网页开发中有一个很重要的东西就是拦截器,就是在请求接收到的时候先到拦截器中进行一些逻辑处理,例如会话是否过期的验证等。在Struts2中我们可以编写一个拦截器的类,然后在struts.xml中简单配置,然后实现Action的拦截。下面我们来看看配置的具体内容。

  1.书写拦截器的类,要继承com.opensymphony.xwork2.interceptor.AbstractInterceptor。

package com.babybus.sdteam.filter;

import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class LoginIntercept extends AbstractInterceptor {

/**
* 序列号
*/
private static final long serialVersionUID = 1L;

@Override
public String intercept(ActionInvocation invocation) throws Exception {
// 获取上下文
ActionContext ctx = invocation.getInvocationContext();
// 获取request参数
Map<String, Object>  params = ctx.getParameters();
// 判断是否传递参数,可以写自己的逻辑
if(params.size()<=0)
{
System.out.println("没有参数....");
return Action.LOGIN;
}

return invocation.invoke();
}
}


  2.struts.xml配置

<!-- 定义一个拦截器 -->
<interceptors>
<interceptor name="authority"  class="com.babybus.sdteam.filter.LoginIntercept">
</interceptor>
<!-- 拦截器栈 -->
<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="authority" />
</interceptor-stack>
</interceptors>

<!-- 定义全局Result -->
<global-results>
<!-- 当返回login视图名时,转入/login.jsp页面 -->
<result name="login">/index.jsp</result>
</global-results>

<action name="logOn" class="com.babybus.sdteam.action.LoginAction">
<result name="loginSuccess">/UserList.jsp</result>
<interceptor-ref name="mydefault" />
</action>


3.通过如上在action中配置定义的拦截器去对指定的Action添加拦截器

结语

受益,掌握了Struts2 拦截器



本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )

转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669148.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: