拦截器最后一讲-使用拦截器完成权限控制

使用拦截器完成权限控制
本文将通过拦截器实现一个实用功能 -使用拦截器实现权限控制(简单的)
功能描述:当用户执行一个操作时,先检查用户是否已经登录,否则转到登录页面
检查用户登录,一般检查的是session中是否有该用户的登录信息,
代码如下:

public class Author extends AbstractInterceptor{

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        // TODO Auto-generated method stub
        //取得相应的实例,假设用户在登陆后,以user存在session中
    //  1:String user=  (String) ServletActionContext.getRequest().getSession().getAttribute("user");
        //第二种方法取得
        ActionContext ctx = invocation.getInvocationContext();
        String user = (String) ctx.getSession().get("user");
        if(null != user && "zhangsan".equals(user))
            return invocation.invoke();//执行action中的方法
        //没有登陆,将服务器提示设置成一个HttpServletRequest属性
        ctx.put("tips", "请登录!!");
        return "login";
    }

}

struts.xml中的部分代码:

    <package>
        <interceptors>
            <interceptor name="myLoginInterceptor" class="pageInterCeptor.Author"/>
        </interceptors>

        <action>
            <result name="success">/success.jsp</result>
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="myLoginInterceptor"/>
        </action>
    </package>

当然也可以配置成一个拦截器栈,方便使用:

package>
        <interceptors>
            <interceptor name="myLoginInterceptor" class=pageInterCeptor.Author">
            <!--  顶一个一个包括默认拦截器以及权限检查的拦截器-->
            <interceptor-ref name="default-stack"/>
            <interceptor-ref name="myLoginInterceptor"/>
        </interceptors>
    </package>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值