Heim  >  Artikel  >  php教程  >  So lösen Sie das Problem des Sitzungsablaufs in JSP, indem Sie zur Anmeldeseite springen und aus dem Iframe herausspringen

So lösen Sie das Problem des Sitzungsablaufs in JSP, indem Sie zur Anmeldeseite springen und aus dem Iframe herausspringen

高洛峰
高洛峰Original
2017-01-07 09:41:542134Durchsuche

Wenn die Sitzung abläuft, können Sie Filter verwenden, um Weiterleitungsseiten festzulegen

public class ActionFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
public void init(FilterConfig config) {
this.filterConfig = config;
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
servletRequest.setCharacterEncoding(“UTF-8″);
HttpServletResponse res = (HttpServletResponse) servletResponse;
String url = req.getRequestURI();
SysUserVOImpl user = (SysUserVOImpl) req.getSession().getAttribute(“SysUser”);
if (null == user) {
if (!COMMON.isEmpty(url) && (url.endsWith(“newestlogin.jsp”) || url.endsWith(“UserLoginAction.jsp”) || url.endsWith(“login.jsp”) || url.endsWith(“loginAction.do”))) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
req.getRequestDispatcher(“/newestlogin.jsp”).forward(req, res);
}
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
Aber dies kann nicht aus Iframes und anderen Frames ausbrechen.
Sie können das Problem mit JavaScript lösen

Fügen Sie den folgenden Code zwischen der Seite ein, zu der Sie den Sprung steuern möchten, z. B. login.jsp zwischen 93f0f5c25f18dab9d176bd4f6de5d30e und 9c3bca370b5104690d9ef395f2c5f8d1:

<script language=”JavaScript”> 
if (window != top) 
top.location.href = location.href; 
</script>

Skriptanweisung des JS-Aktualisierungsrahmens

//如何刷新包含该框架的页面用   
<script language=JavaScript>
   parent.location.reload();
</script>  
//子窗口刷新父窗口
<script language=JavaScript>
    self.opener.location.reload();
</script>
( 或 <a href="javascript:opener.location.reload()">刷新</a>   )
//如何刷新另一个框架的页面用   
<script language=JavaScript>
   parent.另一FrameID.location.reload();
</script>
如果想关闭窗口时刷新或者想开窗时刷新的话,在<body>中调用以下语句即可。
<body onload="opener.location.reload()"> 开窗时刷新
<body onUnload="opener.location.reload()"> 关闭时刷新
<script language="javascript">
window.opener.document.location.reload()
</script>

Weitere verwandte Artikel zum Lösen des Problems des Sitzungsablaufs und zum Springen zur Anmeldeseite und zum Verlassen des Iframes in Jsp: Bitte achten Sie auf die chinesische PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn