Java 不使用servlet的JSP会话
我的问题是:我想在JSP页面上使用会话,而不使用servlet(比如php) 问题是:如何做到这一点?我了解到会话在jsp中是隐式的请求,但实际上我不知道如何使用它 我有一个主页,它在url上为自己传递一些变量(比如index.jsp?id=1)Java 不使用servlet的JSP会话,java,jsp,session,servlets,Java,Jsp,Session,Servlets,我的问题是:我想在JSP页面上使用会话,而不使用servlet(比如php) 问题是:如何做到这一点?我了解到会话在jsp中是隐式的请求,但实际上我不知道如何使用它 我有一个主页,它在url上为自己传递一些变量(比如index.jsp?id=1) 谢谢您的帮助。您必须在jsp代码中使用此选项 <% HttpSession sess = request.getSession(); if (sess==null) { Reque
谢谢您的帮助。您必须在jsp代码中使用此选项
<%
HttpSession sess = request.getSession();
if (sess==null)
{
RequestDispatcher dispatcher = request.getRequestDispatcher("/login.jsp");
dispatcher.forward(request, response);
}
%>
您必须在jsp代码中使用它
<%
HttpSession sess = request.getSession();
if (sess==null)
{
RequestDispatcher dispatcher = request.getRequestDispatcher("/login.jsp");
dispatcher.forward(request, response);
}
%>
您可以使用
和
来管理会话属性
以下内容有效地执行了会话.setAttribute(“foo”,“bar”):
当然,您可以使用通常的EL方式访问属性,如下打印session.getAttribute(“foo”)
与具体问题无关你应该努力消除对servlet的厌恶。这不是一个好的做法。JSTL并没有提供使业务逻辑变得轻而易举的一切,这将迫使您退回到遗留的Scriptlet。我希望这只是无知。仔细阅读我们的servlets wiki页面,了解如何轻松创建和使用它:这个答案也可能有点启发性:您可以使用
和
来管理会话属性
以下内容有效地执行了会话.setAttribute(“foo”,“bar”):
当然,您可以使用通常的EL方式访问属性,如下打印session.getAttribute(“foo”)
与具体问题无关你应该努力消除对servlet的厌恶。这不是一个好的做法。JSTL并没有提供使业务逻辑变得轻而易举的一切,这将迫使您退回到遗留的Scriptlet。我希望这只是无知。仔细阅读我们的servlets wiki页面,了解如何轻松地创建和使用它:同样,这个答案可能有点启发性:假设您有两个jsp
假设您有两个jsp
问题是我没有重定向到其他JSP,而是处理index.JSP页面中的所有内容。我尝试使用“HttpSession sess=request.getSession();”之前的代码但是当我提交一些东西,页面重新加载时,我得到一个错误,因为sess变量有多个声明。请在创建之前检查会话对象,如果它已经存在,那么不要创建,否则创建它。问题是我没有重定向到其他JSP,我处理index.JSP页面中的所有内容。我尝试使用“HttpSession sess=request.getSession();”之前的代码但是当我提交一些东西,页面重新加载时,我得到一个错误,因为sess变量有多个声明。请在创建之前检查会话对象,如果它已经存在,则不要创建,否则创建它。我感谢您的评论,但主要的问题是,我正在做一些不是我自己创造的东西:这意味着我发现了这个“烂摊子”,我认为我没有足够的时间用正确的代码更新它。正如我在这些链接上读到的,你是对的,所以无论如何谢谢你。我感谢你的评论,但主要问题是我正在做一些不是我自己创造的东西:这意味着我发现了这个“烂摊子”,我认为我没有足够的时间用正确的代码更新它。正如我在这些链接上所读到的,你是对的,所以无论如何谢谢你。谢谢你的回答,但我只想在一个JSP页面上工作。谢谢你的回答,但我只想在一个JSP页面上工作。
<c:set var="foo" value="bar" scope="session" />
<c:remove var="foo" scope="session" />
${foo}