自定义拦截器

 


首先定义一个拦截器类 微笑

package com.java.web.action.interceptor;

import com.java.model.Admin;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;


public class LoginValidateInterceptor implements Interceptor {

	
	private static final long serialVersionUID = 1L;

	public void destroy() {

	}

	public void init() {

	}

	/**
	 * 这里拦截后台管理员登陆,防止用户在地址栏输入地址直接登陆
	 */
	public String intercept(ActionInvocation invocation) throws Exception {
		
		Admin user = (Admin) ActionContext.getContext().getSession().get("loginUser");
		
		if(user != null){
			//说明session中存在,用户已经登录了
			return invocation.invoke();
		}
		
		//说明用户没有登录,要重新定向到登录页面
		
		ActionContext.getContext().put("directUrl", "/page/controller/login.jsp");
		
		return "url";
		
	}

}
然后配置struts.xml文件(部分代码)

<package name="base" extends="struts-default">	
	<interceptors> <!-- 定义权限控制拦截器 --> 
<interceptor name="authority" class="com.java.web.action.interceptor.LoginValidateInterceptor" /> <!-- 定义一个包含权限控制的拦截器栈 --> <interceptor-stack name="mydefault"> <interceptor-ref name="defaultStack" /><!-- 默认的拦截器栈 ,一定要写的-->
 <interceptor-ref name="authority" /> 
</interceptor-stack> 
</interceptors>




<default-interceptor-ref name="mydefault"/>自定义的拦截器没有放入个别的action中,表示对所有的action都进行拦截		<global-results> <!--定义全局result-->
    		<result name="url">/page/share/url.jsp</result>
    		<result name="message">/page/share/message.jsp</result>
    		</global-results>
	</package>
	
	<!-- 前台用户模块 -->
   <package name="user" namespace="/user" extends="base">继承base包
        <action name="*" class="{1}Action">
		<result name="success">/page/user.jsp</result>
        </action>
   </package>    



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值