1
我想弄清楚如何使用JSTL會話,所以我開始試圖在Jsp中設置會話屬性並將該屬性傳遞給同一應用程序中的另一個Jsp並檢索它那裏。通過轉發和重定向傳遞會話屬性
我設置了屬性,並使用調度程序到另一個servlet,在另一個嘗試中,我使用sendRedirect將請求轉發到另一個servlet。
這裏是第一個JSP(其中,i設置屬性):
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:set var="session" scope="session" value="test"></c:set>
<%
response.sendRedirect("session.jsp"); // I know I could use the JSTL tag forward
%>
</body>
</html>
在其他JSP( 「session.jsp」):
<%
HttpSession s = request.getSession();
if(s.isNew())
out.print("new session ");
out.print(s.getAttribute("session"));
%>
當我使用的sendRedirect結果是"test"
,這意味着會話不是新創建的。 但是,當我使用forward(調度程序)時,結果是"new session test"
。
我不知道這種行爲的原因,但如果結果相反,這樣做會有意義。
我無法相信我錯過了這一點! 謝謝你。 –