Java教程

会话技术Session_细节和特点

本文主要是介绍会话技术Session_细节和特点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

细节:

1.当客户端关闭后,服务器不关闭,两次获取Session是否为同一个?

   1.默认情况下不是

把浏览器关闭后在访问 session的地址值不一样了

 

 

 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存

@WebServlet("/sessionD3")
public class SessionD3 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //使用Session获取数据
        //获取Session
        HttpSession session = request.getSession();
        System.out.println(session);
        //期望客户端关闭后,session也能相同
        Cookie c = new Cookie("JSESSIONID", session.getId());
        c.setMaxAge(60*60);
        response.addCookie(c);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

2.客户端不关闭,服务器关闭后,两次获取的session是同一个吗?

  1.不是同一个,要确保数据不丢失

 

 

 

  >session的钝化:

    在服务器正常关闭之前,将session对象序列化到硬盘上

  >session的活化:

    在服务器启动后,将session文件转化为内存中的session对象即可。

##(tomcat服务器已经帮我们把钝化和活化的事情完成了,我们不需要考虑

idea中完成不了,它可以钝化,但是活化不了)——操作(20_会话技术_Session_细节2)

【本地硬盘操作】

 

3.session的失效时间(什么时候被销毁)。

  1.服务器关闭

  2.session对象调用invalidate()。

  3.session默认失效时间 30分钟

在D:\apache-tomcat-9.0.22\conf\web.xml下

  配置修改

     <session-config>

    <session-timeout>30</session-timeout>

    </session-config>

session的特点

①session用于存储一次会话的多次请求的数据,存在服务器端

②session可以存储任意类型,任意大小的数据

session与cookie的区别:

  1.session存储数据在服务器端,Cookie在客户端

  2.session没有数据大小限制,Cookie有

  3.session数据安全,Cookie相对于不安全

 

搜索

复制

 

这篇关于会话技术Session_细节和特点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!