读书人

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

发布时间: 2012-12-24 10:43:14 作者: rapoo

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

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

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" />
???????? <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

读书人网 >编程

热点推荐