struts 2 사용자 정의 차단기 2-아 날로 그 session 시간 초과 처리

19839 단어 struts2
인 스 턴 스 기능:사용자 가 로그 인 에 성공 하면 session 이 시간 을 초과 하면 로그 인 페이지 로 돌아 가 다시 로그 인 합 니 다.
1、 http://localhost:8083/struts2/user.jsp   사용자 로그 인
2、 http://localhost:8083/struts2/login/loginHelloWorld.do   로그 인 에 성공 하면 성공 페이지 로 이동 합 니 다.그렇지 않 으 면 session 실효 알림 페이지 로 이동 합 니 다.
 session 실효 시간 설정,웹.xml 수정

  
<!-- session , 1 -->
< session - config >
< session - timeout > 1 </ session - timeout >
</ session - config >

           
로그 인 페이지

  
<% @ page language = " java " import = " java.util.* " pageEncoding = " UTF-8 " %>
<%
request.getSession().setAttribute(
" user " , " " );
%>


              
액 션 클래스

  
package com.ljq.action;


public class HelloWorldAction {

public String login() {
return " success " ;
}
}

              
세 션 차단기

  
package com.ljq.interceptor;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
* session ,30s
*
*
@author jiqinlin
*
*/
@SuppressWarnings(
" serial " )
public class SessionIterceptor extends AbstractInterceptor{

@Override
public String intercept(ActionInvocation invocation) throws Exception {
ActionContext ctx
= invocation.getInvocationContext();
String user
= (String)ctx.getSession().get( " user " );
if (user != null && user.equals( " " )){
return invocation.invoke();
}
//
return " index " ;
}



}

            
struts.xml 프로필

  
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<! DOCTYPE struts PUBLIC
" -//Apache Software Foundation//DTD Struts Configuration 2.0//EN "
" http://struts.apache.org/dtds/struts-2.0.dtd " >

< struts >
< constant name = " struts.i18n.encoding " value = " UTF-8 " />
< constant name = " struts.enable.DynamicMethodInvocation " value = " false " />
< constant name = " struts.action.extension " value = " do " />

< package name = " login " namespace = " /login " extends = " struts-default " >
< interceptors >
<!-- -->
< interceptor name = " permission " class = " com.ljq.interceptor.SessionIterceptor " />
<!-- -->
< interceptor - stack name = " permissionStack " >
<!-- -->
< interceptor - ref name = " permission " />
< interceptor - ref name = " defaultStack " />
</ interceptor - stack >
</ interceptors >
<!-- -->
< default - interceptor - ref name = " permissionStack " />
<!-- -->
< global - results >
< result name = " success " >/ WEB - INF / page / message.jsp </ result >
</ global - results >
< action name = " *HelloWorld " class = " com.ljq.action.HelloWorldAction " method = " {1} " >
<!-- -->
< result name = " index " >/ index.jsp </ result >
</ action >
</ package >

</ struts >

좋은 웹페이지 즐겨찾기