防止未登录进行操作 解决登录页面内嵌问题

防止未登录进行操作   解决登录页面内嵌问题

1.进入登录的action时将登录信息保存在session里面

2.写一个拦截器如下

public class UserLoginInterceptor extends AbstractInterceptor {

 @Override
 public String intercept(ActionInvocation invocation) throws Exception {
  ActionContext ctx = invocation.getInvocationContext();
  Map session = ctx.getSession();
  User user = (User)session.get("user");
  if(user==null){
   return "login";
  }else{
            return invocation.invoke();   
  }
 }

}

3.配置拦截器

<!-- 配置一个admin-default包,包含了自己设置的用于未登录的拦截器和一些全局参数 --> 
 <package name="admin-default" extends="struts-default">
     <interceptors>
         <interceptor name="userLogin" class="com.zjh.shopping.interceptor.UserLoginInterceptor" />
         <interceptor-stack name="adminDefaultStack">
              <interceptor-ref name="userLogin" />
              <interceptor-ref name="defaultStack" />
         </interceptor-stack>
     </interceptors>
     <default-interceptor-ref name="adminDefaultStack" />
     <global-results>
         <result name="login">/WEB-INF/admin/nosession.jsp</result>
     </global-results>
 </package>

4.配置需要拦截的action,将这些action放在一个或多个package里面,package的配置如下:

<package name="admin" extends="admin-default">

这个package要继承第三步配置的包

 

5.拦截后不直接跳转到登录页面,而是先跳到nosession.jsp页面

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Insert title here</title>
 </head>
 <body>
  <script type="text/javascript">
       window.parent.location = "login.jsp";
        </script>

 </body>
</html>

6.这样就不会出现登陆页面内嵌的问题了

 

 

 

来自:http://blog.sina.com.cn/s/blog_6145ed810100h4he.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值