欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Session过期,关闭父窗口,跳转到登陆页面

程序员文章站 2024-03-20 18:16:10
...

D:\GTRS_workspace\TRS_1_TimeReportingFEWeb\WebContent\sessionTimeoutTarget.jsp

 

add for the window.open() with session_timeout,that close the child_page and reload the father_page.

In the sessionTimeoutTarget.jsp

<head>
<script type="text/javascript">
function redirectPage(){
	if (window.opener && window.opener.location) {
 		window.opener.document.location.replace('sessionTimeoutTarget.jsp');
		window.close(); 
	}
}
</script>
</head>
<body onload="redirectPage();">

 

配置Filter过滤器,Session过期跳转。

public class SessionExpirationFilter implements Filter {

    private String expiredUrl;
    
	public void destroy() {
		// TODO Auto-generated method stub
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		//String loginUrl = "/login.jsp";
		//setExpiredUrl(loginUrl);		
        HttpServletRequest httpRequest = (HttpServletRequest) request;
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        
        HttpSession session = httpRequest.getSession(false);
	
        if (session == null || httpRequest.getRequestedSessionId() == null || httpRequest.isRequestedSessionIdValid())
        {    
        	String requestURI = httpRequest.getRequestURI();
        	httpResponse.sendRedirect(httpResponse.encodeRedirectURL(targetUrl));
            	return;
        }
        chain.doFilter(request, response);
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
	}

    public void setExpiredUrl(String expiredUrl) {
        this.expiredUrl = expiredUrl;
    }
    
}

 配置xml中的expiredUrl值

	<bean id="sessionExpirationFilter" class="com.ubs.swidTRS.v1.timereporting.core.util.SessionExpirationFilter">
		<property name="expiredUrl" value="/sessionTimeoutTarget.jsp"></property>
	</bean>