Struts拦截器

一旦在项目里用到Struts,那么拦截器出现的概率相当大。
在一般应用里,一个拦截器只承担拦截特定请求的功能,可以定义多个拦截器来拦截不同的请求。
使用拦截器需要定义一个拦截器,比如下面是一个对登录功能进行拦截的拦截器。

public class UserLoginInterceptor extends AbstractInterceptor{	
public String intercept(ActionInvocation arg0) throws Exception {
	if(LoginAction.class==arg0.getAction().getClass()) {
		return arg0.invoke();
	}
		
	Map sessionMap =arg0.getInvocationContext().getSession();
	if(null==sessionMap.get("username")) {
		System.out.println("in Logininterceptor,the Username is null.");
		return Action.LOGIN;
	}
	return arg0.invoke();
	
	}	
}

LoginAction.class返回LoginAction的类型类,arg0.getAction().getClass()返回对象arg0的类的类型类。
判断他们是否相等,
相等表示请求来自于登录界面(login)则返回arg0.invoke(),即不做任何事情。

struts.xml中拦截器的定义

<package name="interceptLogin" extends="struts-default" namespace="/">
	<interceptors>
		<interceptor name="loginCheck" class="action.UserLoginInterceptor"></tinerceptor>
		<interceptor-stack name="myDefaultStack">
			<interceptor-ref name="loginCheck"/>
			<interceptor-ref name="defaultStack">
		</interceptor-stack>
	</interceptors>
	<default-interceptor-ref  name="myDefaultStack"/>
</package>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值