【问题标题】:Session attribute returns null in JspJsp中的Session属性返回null
【发布时间】:2014-03-05 19:51:23
【问题描述】:

我正在处理 JSP 并在会话中获取 null 值,这是我的代码

LoginServlet.java
        String userId = request.getParameter("userId");
        String password = request.getParameter("pwd");
        if(userId.equals("test") && password.equals("test"))
        {
            HttpSession session = request.getSession();
            session.setAttribute("user", userId); //session is set
            try 
            {
                response.sendRedirect("LoginSuccess.jsp");
            } 
            catch (IOException e) 
            {
                e.printStackTrace();
            }
        }

LoginSuccess.jsp 中,我正在重温它

Logged in user  = <% session.getAttribute("user");%>

但它返回null,没有得到原因?

【问题讨论】:

  • 也许,检查你的 jsp 文件是否包含 .

标签: jsp session jakarta-ee servlets


【解决方案1】:

您不需要在 JSP 中创建会话实例。 JSP 为您提供了所有的内置对象:- session 、 out 、 request 、 response..etc

String user=(String)session.getAttribute("user");

它会给你用户价值, 并确保在会话session.setAttribute("user", userId); //session is set 中设置用户值时它不为空。 只需 sysout 那个值。

【讨论】:

  • session.setAttribute("user", userId); userId 不为空,我只使用来自 jsp 的会话。
  • 你能尝试在同一个java文件中检索那个值吗,它是否正在获取......?
  • 对于空指针异常,你可以试试这个。 String folglobal=request.getParameter("FolderValue")!=null?request.getParameter("FolderValue").toString():"";
  • 可能有选角问题。然后尝试放置一些静态字符串。在 jsp 页面上打印出来。
【解决方案2】:

我可能错了;但是,在您的 LoginSuccess.jsp 文件中,尝试更改 request.getParamater("UserId");使用小写的 u 到“userId”。在您的 servlet 中,您使用小写字母定义了它。确保名称匹配

【讨论】:

  • 那么session.getAttribute("user");呢?
  • 我已经从请求中删除了它。我只想从会话中获得它。
【解决方案3】:

字符串用户 =

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多