如何在条件语句中显示html

时间:2016-07-15 00:55:09

标签: java html jsp

我试图在jsp文件的条件语句之外渲染html,并且无法在else子句上显示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>

关于问题的任何想法?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

JSP总是会创建一个会话,除非已经存在或者已经要求它不在页面指令中创建会话。此外,session是一个隐式JSP脚本对象。因此,您不必使用

def swap(collection, index1, index2):
    temp = collection[index1]
    collection[index1] = collection[index2]
    collection[index2] = temp

def partition(collection, idx1, idx2):
    left = idx1
    right = idx2
    pivot = len(collection)//2

    while(left < right):

        while(collection[left] < collection[pivot]):
            left += 1

        while(collection[right] > collection[pivot]):
            right -= 1       

        if left < right:
            swap(collection, left, right)
            left +=1
            right -=1

    return left


def quickSort(collection, start, end):    
    #Check for base case        
    if len(collection) > 1:        
        index = partition(collection, start, end)        
        newIdx = index - 1        
        if start < newIdx:                        
            quickSort(collection, start, newIdx)

        if index < right: 
            quickSort(collection, index, end)


    return collection


array = [7,5, 10, 12, 3,2,9]

quickSort(array, 0, len(array) - 1)
print(array)

此外,方法

HttpSession session = request.getSession(false);  
当会话是新的时,

将始终返回false。当客户尚未加入会话时,会话是新的。通过将会话cookie发送回服务器,客户端能够通过第二个请求将会话加入您的Web应用程序。如果您在浏览器中刷新页面,则它应显示您要显示客户端的HTML。 正如Scary Wombat所说,你应该改变你的设计。