Java 不使用servlet的JSP会话

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页面上使用会话,而不使用servlet(比如php)

问题是:如何做到这一点?我了解到会话在jsp中是隐式的请求,但实际上我不知道如何使用它

我有一个主页,它在url上为自己传递一些变量(比如index.jsp?id=1)


谢谢您的帮助。

您必须在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

  • index.jsp=获取index.jsp中的参数并将值添加到会话(隐式对象)

  • 现在,在homePage.jsp=中,编写代码以检索以前使用keyempId添加的值


  • 假设您有两个jsp

  • index.jsp=获取index.jsp中的参数并将值添加到会话(隐式对象)

  • 现在,在homePage.jsp=中,编写代码以检索以前使用keyempId添加的值


  • 问题是我没有重定向到其他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}