2016-07-15 3 views
0

Я пытаюсь сделать HTML вне моего условного оператора на файл JSP и не может получить HTML, чтобы показать на предложении еще:Как показать HTML в условном операторе

<%@ page language="java" %> 

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


}else{ //display html 
%> 

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

<% } %> 

Я попытался удалить ELSE как это, но без отображения html. Обнаружение сеанса работает.

<%@ page language="java" %> 

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


} %> 

<html> .... </html> 

Любые идеи о том, что может быть проблемой?

ответ

0

На мой взгляд, это намного лучше, чтобы сделать это как

<%@ 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

Я не могу перенаправить его где-то в другом месте, потому что это должен быть тот индекс html или я рискую идти в цикле – user6535413

+0

звучит так, как будто вы должны использовать фильтр. –

+0

не могли бы вы объяснить, почему? Благодарю. – user6535413

0

JSP всегда создает сеанс, если один уже не существует или было предложено не создавать один в директиве страницы. Кроме того, сеанс является неявным JSP-скриптовым объектом. Поэтому вы не должны использовать

HttpSession session = request.getSession(false); 

Кроме того, метод

request.isRequestedSessionIdValid() 

всегда будет возвращать ложь, когда это новая сессия. Сессия является новой, когда клиент еще не присоединился к сеансу. Клиент может присоединиться к сеансу по второму запросу к вашему веб-приложению, отправив файл cookie сессии обратно на сервер. Если вы обновите свою страницу в браузере, тогда она должна отобразить HTML, который вы хотите показать клиенту. Как предложил страшный Wombat, вы должны изменить свой дизайн.

Смежные вопросы