HttpSession API

Ani*_*nil 0 java session servlets

我是servlets的新手,我在HttpSession中有疑问,

protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       // processRequest(request, response);

        String name = request.getParameter("Name");
        String phone = request.getParameter("Phone");
        String dummy = "some";

        HttpSession ses = request.getSession();
        ses.setAttribute("SesName", name);
        ses.setAttribute("SesPhone", phone);
        ses.setAttribute("SesName", dummy);

        RequestDispatcher rd = request.getRequestDispatcher("./SessionApiImp");
        rd.forward(request, response);

    } 
Run Code Online (Sandbox Code Playgroud)

现在在另一个servlet中,

protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       // processRequest(request, response);
        HttpSession sess = request.getSession();

        PrintWriter pw = response.getWriter();

        pw.println(sess.getAttribute("SesName"));
        pw.println(sess.getAttribute("SesPhone"));

    } 
Run Code Online (Sandbox Code Playgroud)

- 为此分配了哪些值?我试过,它返回值与虚拟关联.是什么原因?

谢谢,Anil.

JB *_*zet 5

原因是您为该属性设置的最后一个值SesNamedummy:

ses.setAttribute("SesName", name);
ses.setAttribute("SesPhone", phone);
ses.setAttribute("SesName", dummy); // HERE!
Run Code Online (Sandbox Code Playgroud)

来自javadoc:

如果已将同名对象绑定到会话,则替换该对象.