[英]JSP session not using servlets
我的問題是:我想在我的JSP頁面上使用會話,而不使用servlet(例如php)
問題是:該怎么做? 我讀到該會話是隱式的,就像jsp中的request一樣,但是我實際上並不知道如何使用它。
我有一個主頁,他在URL上傳遞了一些變量(例如index.jsp?id = 1)。
謝謝您的幫助。
您可以使用JSTL <c:set>
和<c:remove>
來管理會話屬性。
以下有效地執行了session.setAttribute("foo", "bar")
:
<c:set var="foo" value="bar" scope="session" />
並且以下有效地執行了session.removeAttribute("foo")
:
<c:remove var="foo" scope="session" />
當然,您可以使用通常的EL訪問屬性的方式,以下顯示session.getAttribute("foo")
。
${foo}
與具體問題無關 ,您應該對Servlet進行厭惡。 這不是一個好習慣。 JSTL並沒有提供使業務邏輯變得輕而易舉的所有功能,這將迫使您退回到傳統的scriptlet 。 我希望這只是無知。 仔細閱讀我們的servlet Wiki頁面,以了解如何輕松創建和使用它: https : //stackoverflow.com/tags/servlets/info這個答案也可能會有所啟發: 如何避免JSP文件中的Java代碼?
假設你有兩個jsp
index.jsp =獲取index.jsp中的參數並將其添加到會話(隱式對象)
<%
String empId = request.getParameter("id");
session.setAttribute("empId", empId);
response.sendRedirect("homePage.jsp");
%>
現在位於homePage.jsp =編寫代碼以檢索先前使用鍵empId添加的值
<%
String employeId = (String)session.getAttribute("empId");
%>
您必須在jsp代碼中使用它
<%
HttpSession sess = request.getSession();
if (sess==null)
{
RequestDispatcher dispatcher = request.getRequestDispatcher("/login.jsp");
dispatcher.forward(request, response);
}
%>
您可以獲取會話及其屬性
對於index.jsp?id = 1,您可以使用
request.getParameter("id")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.