【问题标题】:JSP session not using servletsJSP 会话不使用 servlet
【发布时间】:2012-12-07 21:19:11
【问题描述】:

我的问题是:我想在我的 JSP 页面上使用会话,而不使用 servlet(例如 php)

问题是:怎么做?我读到 session 就像 jsp 中的 request 一样隐含,但我实际上并不知道如何使用它。

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

感谢您的帮助。

【问题讨论】:

    标签: java jsp session servlets


    【解决方案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。我希望这只是无知。仔细阅读我们的 servlets wiki 页面,了解如何轻松创建和使用它:https://stackoverflow.com/tags/servlets/info 这个答案可能有点启发性:How to avoid Java code in JSP files?

    【讨论】:

    • 感谢您的评论,但主要问题是我正在研究不是我创建的东西:这意味着我发现了这个“烂摊子”,我认为我没有有足够的时间用正确的代码更新它。正如我在这些链接上所读到的,您说得非常对,所以还是谢谢您。
    【解决方案2】:

    假设你有两个jsp

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

      &lt;%
      String empId = request.getParameter("id");
      session.setAttribute("empId", empId);
      response.sendRedirect("homePage.jsp");

      %&gt;

    2. 现在在 homePage.jsp = 编写代码以检索先前使用键 empId

      添加的值

      &lt;%

      String employeId = (String)session.getAttribute("empId");

      %&gt;

    【讨论】:

    • 感谢您的回答,但我只想在单个 JSP 页面上工作。
    【解决方案3】:

    你必须在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")
    

    【讨论】:

    • 问题是我没有重定向到其他 JSP,我处理我的 index.jsp 页面中的所有内容。我试过在'HttpSession sess = request.getSession();'之前使用但是当我提交一些东西并且页面重新加载时,我收到一个错误,因为有多个 sess 变量声明。
    • 请在创建之前检查会话对象,如果它已经存在,那么不要创建,否则简单地创建它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    相关资源
    最近更新 更多