【问题标题】:Create Session in Servlet and Use in JSP pages?在 Servlet 中创建会话并在 JSP 页面中使用?
【发布时间】:2012-08-02 19:04:06
【问题描述】:

我想在 CheckForLogin Servlet 中创建会话并在所有 JSP 页面中使用它(用于检查)。 应该在我的 JSP 页面中写什么而不是在 Sevlet 中写......。如何在 Servlet 中定义 Session?

public void service(ServletRequest request,
                    ServletResponse response) throws ServletException, IOException {

    String email = request.getParameter("email");
    String password = request.getParameter("password");
    if (email.equals("") || password.equals("") || email == null || password == null) {
        request.getRequestDispatcher("Error.jsp?err=enterdata").forward(request,response);
    } else {
        UserBl userBl = new UserBl();
        if (userBl.checkUser(email, password)) {
            ..........................
             request.getRequestDispatcher("Home.jsp").forward(request, response);
        } else {
            request.getRequestDispatcher("Error.jsp?err=nulluser").forward(request, response);
        }
    }
}

【问题讨论】:

    标签: java session servlets


    【解决方案1】:

    我应该在方法参数中编写 HttpServletRequest 而不是 ServletRequest 和 HttpServletResponse 而不是 ServletResponse 然后创建会话并访问会话

    【讨论】:

      【解决方案2】:

      session 是 jsp 隐式变量,您可以使用它在 JSP 页面中获取会话。

      示例:

       <%
            String temp=session.getAttribute( "tvName");
          %>
      

      或使用 EL

      <c:out value="${session.getAttribute("name")}"/>
      

      注意:在 JSP 页面中使用 scriptlet 不是好的做法。

      【讨论】:

      • Servlet中如何定义Session?
      【解决方案3】:

      其实你可以使用&lt;%= request.getSession() %&gt; 为例。

      【讨论】:

        【解决方案4】:

        在 JSP 代码中的表达式语言中使用 ${sessionScope.sessionAttributeName}

        【讨论】:

        • 我应该在方法参数中写HttpServletRequest而不是ServletRequest和HttpServletResponse而不是ServletResponse
        【解决方案5】:

        我建议你使用include 而不是forward

        【讨论】:

          【解决方案6】:

          你应该使用这条线

          Session httpsession = request.getSession();
          

          如果不存在,此行将为您创建一个新会话对象,否则它将返回与同一客户端关联的现有会话。

          【讨论】:

            【解决方案7】:

            获取现有会话使用

            HttpSession session=request.getSession(false);

            【讨论】:

              猜你喜欢
              • 2013-07-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-07-04
              • 2012-07-09
              • 2011-02-27
              • 2012-12-07
              • 1970-01-01
              相关资源
              最近更新 更多