我试图在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>
关于问题的任何想法?
答案 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所说,你应该改变你的设计。