Java servlet创建cookie然后从JSP读取为null

时间:2015-12-01 15:46:35

标签: java jsp servlets

我有一个servlet:

public class TestServlet extends HttpServlet {

        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.getSession().setAttribute("user", "Test cookie");
            req.getRequestDispatcher("test.jsp").forward(req, resp);
        }
}

我有一个JSP:

    <% String name = request.getParameter("user"); %>
    <%= name%>

但是如果我运行代码,输出为空,为什么?

你能告诉我为什么吗?获取“用户”cookie的简便方法是什么。

3 个答案:

答案 0 :(得分:3)

您应该使用getAttribute(...)而不是getParameter(...)这样:

 <% String name = session.getAttribute("user"); %>

<% String name = request.getParameter("user"); %> 
  • getParameter()以String形式返回请求参数的值,如果参数不存在则返回null。
  • getAttribute()以Object形式返回named属性的值,如果不存在给定名称的属性,则返回null。
  • 属性,可用于会话的生命周期。
  • 参数,仅在请求的生命周期内可用

答案 1 :(得分:1)

  

“但如果我运行代码,输出为空,为什么”?

如果您在会话上设置了该属性,则该请求中不存在该属性,因此从

返回null
 request.getParameter("user");

你需要从会话中获取它,如下所示:

session.getAttribute("user");

答案 2 :(得分:0)

使用隐式会话对象

session.getAttribute( "user" );

Beginners book -jsp implicit-object-session

相关问题