请求转发-重定向-cookie-session-ServletContext的学习

1.请求转发介绍
(1)为什么需要请求转发?
一次请求的处理需要多个servlet的联动操作,第一个servlet需要用到其他servlet已经声明的逻辑处理代码,此时就需要用到请求转发
(2)请求转发的本质是什么?
实际上就是一个servlet需要调用其他的servlet
2.请求转发的特点和request作为数据载体进行数据流转
(1)请简要说明请求转发的特点
1、降低Servlet之间的代码冗余
2、一次请求转发内的Servlet共享此次请求的request和response对象
3、浏览器的地址栏信息不改变,一次请求
(2)使用request对象作为请求转发的数据的载体的方法是什么?(存储和获取)
先使用req.setAttribute(键,值)方法把要流转的数据存进request对象中,然后使用req.getAttribute(键)获取数据。
3.请求转发之request对象总结

(1)总结说明request作用域的特点
Request作用域:一次请求转发内的Servlet
作用:request对象可以作为数据流转的载体
(2)总结说明请求转发的特点
1、降低Servlet之间的代码冗余
2、一次请求转发内的Servlet共享此次请求的request和response对象
3、浏览器的地址栏信息不改变,一次请求

4.重定向的作用和特点
(1)总结说明重定向的特点
两次请求,地址栏信息改变
5.cookie的介绍和特点和作用
(1)简要说明为什么需要cookie
解决了不同请求之间请求数据共享的问题
(2)cookie的特点是什么
浏览器端的数据存储技术
哪些数据需要被存储是在服务器端进行声明,以响应的方式告诉浏览器进行存储
不适合大量数据的存储
如果不设置有效期则默认存储在浏览器的内存里,浏览器关闭即失效,如果设置了有效期,则存储到客户端的硬盘里,到期后自动销毁
如果不设置有效路径则任意项目路径的请求都会附带cookie信息,如果设置了有效路径则只有在该路径下的请求才会附带cookie信息

对应作业
6.cookie的代码实现
(1)怎么获取Cookie对象。
通过req.getCookies()获取一个Cookie数组,然后使用加强for循环遍历,找到键名为某个值的cookie对象。
String value = “”;
//获取cookie信息
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies) {
if(“b”.equals(cookie.getName())){
value = cookie.getValue();
break;
}
}

(2)书写代码获取请求中的键名为a的cookie信息的值
String value = “”;
//获取cookie信息
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies) {
if(“a”.equals(cookie.getName())){
value = cookie.getValue();
break;
}
}

7.cookie的有效期和有效路径设置
(1)声明一段代码,设置Cookie的有效期为三天
cookie对象.setMaxAge(3600243)
(2)创建一个Cookie信息并设置其访问路径为/虚拟项目名/a
cookie对象.setPath(“/虚拟项目名/a”)
8.session的介绍和基本使用流程
(1)根据视频,说出你对session对的理解及其作用
session解决了同一个用户不同请求 的数据共享问题。
(2)根据视频,如何保证不同请求获取到同一个session对象
给session对象创建一个id,把id存储在cookie对象中,用于不同请求之间请求数据共享,这样,下一次用户访问时,通过cookie取得id,获取session对象存储的数据,只要id相同就会获取同一个session对象
9.session机制代码实现
(1)请简述req.getSession()的作用
req.getSession():如果没有session对象则表示创建的一个session对象,如果有session对象表示获取这个session对象。
(2)获取session对象的id的方法是什么?
Session.getId()
10.session的特点和流程总结
(1)简述session使用流程
1、 浏览器发起请求到Aservlet,在AServlet中使用req.getSession()获取Session对象,如果此次请求中没有SessionID则创建一个新的Session对象,如果有SessionID则将其对应的Session对象返回(前提是该session对象没有到期),如果session对象到期销毁了,就算有sessionID也会重新创建一个Session。
2、 校验session是否失效,存储数据到session对象中或者获取session中的数据或者删除session中的数据
(2)简述session的特点
session解决了同一个用户不同请求 的数据共享问题。
(3)简述session的作用域
session的作用域:浏览器不关闭,session不失效,则同一用户的任意请求获取的都是同一个session,一次会话

11.session的有效期设置和强制销毁
(1)session的默认有效期?怎么设置session的有效期
session默认有效时间为30分钟
1、可以在tomcat下的web.xml中进行配置,注意:此种配置方式是所有的tomcat下的项目默认为30分钟
2、也可以在代码中使session.setMaxInactiveInterval(int seconds);//设置session的有效时间,参数为整数类型的秒
(2)怎么强制销毁session?
session.invalidate();//强制销毁session
12.session之优化登录案例
(1) 简述是如何优化的
当我们用户名或密码输入错误的时候会给用户一个提示,此时我们把提示信息以键值对的方式存储在session对象内,LoginServlet需要用到UserServlet的提示数据,获取session中的信息,但是session的生命周期是一次会话结束,我们需要删除session对象的信息以及强制销毁session对象才能保证下一次访问LoginServlet时才不会出现提示数据。
13.简述ServletContext对象的作用(application)
(1)简述ServletContext对象的作用
解决不同用户之间请求数据共享问题
(2)获取ServletContext对象的三种方式是?
//获取ServletContext对象
ServletContext sc1 = this.getServletContext();
ServletContext sc2 = this.getServletConfig().getServletContext();
ServletContext sc3 = req.getSession().getServletContext();

14.ServletContext对象存储和获取共享数据
15.ServletContext特点&获取web配置文件全局属性&获取资源流对象和绝对路径
(1)简述ServletContext对象的作用和特点。
作用:解决了不同用户的数据共享问题
特点:服务器创建,所有用户共享,一个项目只有一个对象。
(2)web.xml中的全局属性数据的配置方式是;

open false

16.ServletContext对象实现网页访问计数次数
(1)完成课上的代码
17.ServletConfig对象学习
(1)说说ServletConfig对象的作用
ServletConfig对象是Servlet的专属配置对象,每个Servlet都单独拥有一个ServletConfig对象,用来获取web.xml中的配置信息。

你可能感兴趣的:(请求转发,重定向,cookie,session,ServletContext)