2016-07-15 11 views
0

ich html außerhalb meiner bedingten Anweisung auf einer jsp-Datei zu machen versuchen, und kann nicht die HTML-Datei auf der else-Klausel zu zeigen, erhalten:Wie html in einer bedingten Anweisung zeigen

<%@ page language="java" %> 

<% 
HttpSession session = request.getSession(false); 
if (!request.isRequestedSessionIdValid()){ 
// not logged in 
    response.sendRedirect("login.jsp"); 


}else{ //display html 
%> 

<html> 
..... 
</html> 

<% } %> 

Ich habe versucht, die sonst zu entfernen Klausel wie diese, aber ohne HTML-Anzeige. Sitzungserkennung funktioniert.

<%@ page language="java" %> 

<% 
HttpSession session = request.getSession(false); 
if (!request.isRequestedSessionIdValid()){ 
// not logged in 
    response.sendRedirect("login.jsp"); 


} %> 

<html> .... </html> 

Irgendwelche Ideen, was das Problem sein könnte?

Antwort

0

Meiner Meinung nach ist es viel schöner diese wie

zu tun schafft
<%@ page language="java" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>index.jsp</title> 
</head> 

<body> 

<c:if test="${sessionScope.LOGGEDINUSER == null}"> 
<c:redirect url="login.jsp" /> 
</c:if> 

<c:if test="${sessionScope.LOGGEDINUSER != null}"> 
<c:redirect url="somewhere.jsp" /> 
</c:if> 

</body> 
</html> 
+0

ich kann es nicht woanders so umleiten, weil es sein muss, dass index html oder ich gehe in eine Schleife – user6535413

+0

klingt wie Sie sollten einen Filter dann verwenden. –

+0

können Sie bitte erklären warum? Vielen Dank. – user6535413

0

Eine JSP immer eine Sitzung, es sei denn man ist bereits vorhanden oder es wurde gebeten, nicht eine in der Seite Richtlinie zu erstellen. Darüber hinaus ist die Sitzung ein implizites JSP-Skriptobjekt. Daher müssen Sie nicht

HttpSession session = request.getSession(false); 

auch verwenden, wobei das Verfahren

request.isRequestedSessionIdValid() 

wird immer false zurück, wenn die Sitzung neu. Eine Sitzung ist neu, wenn der Client der Sitzung noch nicht beigetreten ist. Der Client kann der Sitzung bei der zweiten Anfrage beitreten, indem er das Sitzungscookie an den Server zurücksendet. Wenn Sie Ihre Seite im Browser aktualisieren, sollte sie den HTML-Code anzeigen, den Sie dem Client zeigen möchten. Wie Scary Wombat vorgeschlagen hat, solltest du dein Design ändern.

Verwandte Themen