2013-05-07 62 views
0

logout.jsp重定向在JSP

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 

<% 
session.invalidate(); 
response.setStatus(response.SC_MOVED_TEMPORARILY); 
response.setHeader("Location","login.jsp"); 
%> 

checklogin.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 

<% 
if (session.getAttribute("UserName") != null && session.getAttribute("IPAddr") != null) { 

    } else{ 
     response.setStatus(response.SC_MOVED_TEMPORARILY); 
     response.setHeader("Location","login.jsp"); 
    } 
%> 

HTML 的index.php

<body> 
    <jsp:include page="checklogin.jsp" /> 
    <div class="Maindiv"> 
     <div id="Header"> 
      <jsp:include page="Header.jsp" /> 
       </div> 
     </div> 
</body> 

header.jsp中

<table> 
        <tr> 
         <td align="left" valign="top" style="padding-right: 5px;"> 
          <span class="lblDarkGray10">Welcome, <strong><%=(String)session.getAttribute("UserName") %></strong></span> 
         </td> 
         <td align="right" valign="top" style="padding-left:5px; border-left:solid 1px lightgray;"> 
          <a href="logout.jsp" class="lnkDarkGray10">Logout</a> 
         </td> 
        </tr> 
        <tr>      
        <td colspan="2" align="right" valign="top"> 
         <span class="lblDarkGray10"><%=(String)session.getAttribute("IPAddr")%></span> 
         </td>      
        </tr> 
       </table> 

重定向頁面 logout.jsp工作的 checklogin.jsp,不工作

,如果用戶直接訪問的index.jsp,那麼它應該被重定向到的login.jsp

+0

,剛剛從指數重定向... – NINCOMPOOP 2013-05-07 11:14:16

+0

' <%@ taglib uri =「http://java.sun.com/jsp/jstl/core」prefix =「c」%> ' – NINCOMPOOP 2013-05-07 11:15:20

回答

0

我會建議使用Servlet過濾器的做登錄檢查。這樣,您可以避免在每個不希望用戶訪問的文件中寫入登錄檢查代碼,而無需登錄。

以下是用於servlet過濾器的tutorial

Servlet過濾器不僅用於登錄檢查,但對於像認證的幾個問題,訪客統計,轉化爲什麼你想`include`請求等