逆水行舟之servlet学习第四天(下)

本文深入探讨了服务器端会话技术Session的概念、原理及其实现方式,包括与Cookie的区别、数据存储特点和安全性。同时,文章还介绍了JSP的基础知识,如其定义、原理以及如何在JSP中定义Java代码和使用内置对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Session

1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。
2. 常用方法:

  1. 获取HttpSession对象:
    HttpSession session = request.getSession();
  2. 使用HttpSession对象:
    Object getAttribute(String name)
    void setAttribute(String name, Object value)
    void removeAttribute(String name)

3. 原理: Session的实现是依赖于Cookie的。
4. session的特点:

  1. session用于存储一次会话的多次请求的数据,存在服务器端
  2. session可以存储任意类型,任意大小的数据

5. session与Cookie的区别:

  1. session存储数据在服务器端,Cookie在客户端
  2. session没有数据大小限制,Cookie有
  3. session数据安全,Cookie相对于不安全

6. session的销毁时间:

  1. 服务器关闭
  2. session对象调用invalidate() 。
  3. session默认失效时间 30分钟(可修改tomcat下的web.xml文件中的session-config)
    <session-config> <session-timeout>30</session-timeout> </session-config>

7. session与cookie的区别:

  1. session存储数据在服务器端,Cookie在客户端
  2. session没有数据大小限制,Cookie有
  3. session数据安全,Cookie相对于不安全

8. 其它

  1. 当客户端关闭,服务器不关闭,两次获取session在默认情况下不是同一个,但可以通过创建cookie,设置存活时间进行存储
    Cookie c = new Cookie("JSESSIONID",session.getId()); c.setMaxAge(60*60); response.addCookie(c);
  2. 当客户端不关闭,服务器关闭,两次获取session也不是用一个,但是为确保数据不丢失,tomcat自动完成以下工作:
    session的钝化:在服务器正常关闭之前,将session对象系列化到硬盘上
    session的活化:在服务器启动后,将session文件转化为内存中的session对象即可。

二、Session案例

1. 需求:将session持久化存储
2. 代码实现:

编写SessionServlet:
在这里插入图片描述
编写SessionServlet2:

在这里插入图片描述
3. 结果
在这里插入图片描述
续:
在这里插入图片描述

三、JSP入门

1. 概念:Java Server Pages -> java服务器端页面,既可以指定定义html标签,又可以定义java代码。
2. 原理:JSP本质上就是一个Servlet
3. JSP的脚本:JSP定义Java代码的方式

  1. <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
  2. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。
  3. <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。

4. JSP的内置对象(九个):在jsp页面中不需要获取和创建,可以直接使用的对象

1.PageContext javax.servlet.jsp.PageContext JSP的页面容 器
2.request javax.servlet.http.HttpServletrequest 获取用户的请求信息
3.response javax.servlet.http.HttpServletResponse 服务器向客户端的回应信息
4.session javax.servlet.http.HttpSession 用来保存每一个用户的信息
5.application javax.servlet.ServletContext 表示所有用户的共享信息
6.config javax.servlet.ServletConfig 服务器配置信息,可以取得初始化参数
7.out javax.servlet.jsp.jspWriter 页面输出
8.page java.lang.object)
9.exception java.lang.Throwable

四、案例

  1. 编写JSPServlet:
    在这里插入图片描述
    续:
    在这里插入图片描述
  2. 编写JSPShopping.jsp
    在这里插入图片描述
    续:
    在这里插入图片描述
  3. 结果
    在这里插入图片描述

补充:

response.getWriter()和out.write()的区别:

  • 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
  • response.getWriter()数据输出永远在out.write()之前

not learn to live:

难过的不是你不知道,是知道了却什么也做不了。这是生活给予你的无力感,更是自己对生活的一种纵容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值