目录

  • 一、资源之间的跳转
  • 二、资源之间数据的传递
  • 三、 Servlet中其他常用方法
  • 四、会话追踪
  • 五、cookie技术
  • 六、session技术 【重点】
  • 七、session的应用场景


一、资源之间的跳转

  1. Servlet与Servlet之间跳转
    1.1 请求转发: 请求转发连接的Servlet之间处于一次请求, 可以使用request作用域传递数据。
    1.2 请求重定向:请求重定向连接Servlet处于两次请求, 不能使用request作用域传递数据。
  2. Servlet与HTML之间的跳转
    2.1 Servlet跳转到一个HTML
    使用请求转发和请求重定向都能跳转, 但是HTML页面不能书写Java程序,也就是说不需要数据的传递处理,HTML本身也不能获取数据。
    所以 Servlet跳转HTML通常使用请求重定向。
    2.2 HTML请求一个Servlet
    ① 超链接请求
    ② 表单请求
  3. HTML与HTML之间的跳转
    ① 使用超链接 // 开发中没人用表单在HTML之间跳转,没有意义

二、资源之间数据的传递

  1. Servlet跳转到另一个Servlet
    1.1 请求转发 : 使用request作用域传递数据。
    1.2 请求重定向 : 也可以传递少量的数据,使用地址栏拼接的形式。
  2. Servlet跳转到HTML不需要传输数据。
  3. HTML请求Servlet: 使用表单提交数据, 可以使用超链接拼接的方式提交数据。

三、 Servlet中其他常用方法

  1. 获取表单中的多选框提交的数据
  2. java servlet跳转页面 servlet跳转html页面_HTML

  3. 获取下拉列表的数据
  4. java servlet跳转页面 servlet跳转html页面_服务器_02

  5. 动态获取项目名
  6. java servlet跳转页面 servlet跳转html页面_java servlet跳转页面_03

四、会话追踪

  1. 在JavaWeb开发中什么是会话? 什么是一次会话?
    1.1 会话是指客户端浏览器与web服务器之间进行的一到多次的请求,形成了一次会话。
    1.2 一次会话是指用户打开一个客户端浏览器开始, 向服务器发起的一到多次请求, 到关闭客户端浏览器一次会话结束。 一次会话强调的是同一个客户端浏览器,向同一个web服务器发起的一到多次请求。
  2. 会话追踪: 会话追踪是指在一次会话的多次请求中共享数据的技术。
  3. 解决会话追踪 , 本质就是让用户的一次会话中多个请求之间可以共享数据, 这里需要使用到:
    3.1 cookie技术
    3.2 session技术

五、cookie技术

  1. cookie是存储在客户端浏览器上的一小段字符串, 以key-value的形式存储。 一般是用于保存用户相关的信息。
  2. cookie的基本使用:
    2.1 创建cookie : Cookie cookie = new Cookie(String name,String value);
    2.2 设置到客户端浏览器: response.addCookie(cookie);
    2.3 获取客户端浏览器上的cookie: Cookie[] cookies = request.getCookies();
    2.4 获取cookie的name: cookie.getName();
    2.5 获取cookie的value: cookie.getValue();
    注意: 如果设置与客户端浏览器已经存在的cookie名字一样的新cookie, 那么新值会替换旧值。
    服务器只能获取到自己设置到客户端浏览器上的cookie。
    cookie不能存储中文。
  3. cookie的生命周期
    3.1 默认cookie是与浏览器的会话绑定的, 当关闭浏览器,cookie销毁。
    3.2 手动设置cookie存活时间:
    cookie.setMaxAge(正数/秒); 代表存活的时间,单位秒
    cookie.setMaxAge(0); 代表清除指定名字的cookie
    cookie.setMaxAge(负数); 代表与客户端浏览器会话绑定
  4. cookie的缺陷
    4.1 存储的数量小。
    4.2 不支持存储中文。
    4.3 cookie采用明文存储信息,不安全。 而且有一些黑客专门就窃取用户浏览器上的cookie, 所以现在大多数网站不会使用cookie存储用户隐私性的信息。
    4.4 cookie可以被禁用。

六、session技术 【重点】

  1. 一个session对象代表一个会话。 session是服务器端保存 用户相关信息的技术, 使用session多个请求可以共享一个会话中的数据。 session也称为session作用域。
  2. session作用域的基本使用
    2.1 获取session :
    request.getSession() 或 request.getSession(true) : 服务器如果有当前会话的session对象,则直接返回给用户使用。 如果没有,则创建一个新的返回。
    request.getSession(false) : 服务器如果有当前会话的session,则直接返回使用。 如果没有,则不会创建新的。
    2.2 使用session存取数据:
    ① 存: session.setAttribute(String name,Object value);
    ② 取: Object value = session.getAttribute(String name);
    2.3 session的其他常用方法:
    ① 获取session的唯一标识ID: session.getId();
    ② 移除session作用域指定的命名属性: session.removeAttribute(String name);
    销毁session: session.invalidate();
  3. session作用域生命周期:
    3.1 tomcat服务器 默认30分钟销毁session , 我们可以手动设置session的存活时间:
    ① 在tomcat/conf/web.xml中设置 : 这个位置是当前服务器中所有项目的session销毁时间设置。
  4. java servlet跳转页面 servlet跳转html页面_java servlet跳转页面_04

  5. ② 我们可以在自己的项目中web.xml单独配置当前项目的session的销毁时间: 只对当前项目的 session有效。
    注意: 计时策略 是从用户最后一次请求响应的结束开始。
    3.2 手动控制的情况
    ① 开始从调用 request.getSession(true)
    ② 到手动调用session.invalidate() 结束
  6. session的钝化与活化
    4.1 session钝化是指: 服务器关闭的时候会将没有失效的session对象,持久化到服务器中保存为一个文件。
    4.2 session的活化是指: 当服务器启动的时候, 将钝化保存的session文件中对应的session再恢复成活跃的。

七、session的应用场景

  1. 强制登录验证
  2. 安全退出 : 安全退出就是把session中用户的登录标记移除, 我们可以销毁session。