在servlet上为多个用户存储不同的会话值

时间:2011-06-21 09:19:16

标签: java servlets

如果user1进入servlet以下,则会将当前时间(以毫秒为单位)添加到会话变量中。如果user2在user1之后的某个时间实例化该servlet,则会话变量将被设置为新的时间。当用户1& user2请求这个会话值每个都有自己唯一的值? user2会覆盖user1会话val吗?

    public void doGet(HttpServletRequest request, HttpServletResponse response) {

        request.getSession().setAttribute("time", System.currentTimeMillis());

        try {
            response.getWriter().print("Time is set");
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

4 个答案:

答案 0 :(得分:3)

每个用户都有自己的会话。用户将无法看到彼此的会话(如果可以,系统会出现严重错误)。

编辑(感谢Richard H):servlet容器将通过查看请求自动找到当前用户的会话;请求将包含带有会话ID的标头或cookie,以便容器知道哪个用户正在执行请求。

答案 1 :(得分:1)

不,user2不会覆盖user1的会话值,因为它有自己的会话实例。维基百科在web sessions上有一个非常好的部分。

答案 2 :(得分:0)

两者都有不同的值。 user1&将会有2个会话。用户2。 User2不会覆盖

答案 3 :(得分:0)

Servlet容器管理用户会话。每个用户都会收到一个JSESSIONID,这是一个会话ID,浏览器(或用户代理)将会话ID发送到servlet容器以检索特定用户。