Request:客户端请求
Response:服务器响应
Cookie:客户端会话技术
Session: 服务器端会话技术
1. Request与Response
基本概念
1)Request和Reponse对象是由服务器创建的,我们来使用
2)Request对象是来获取请求消息;Reponse对象是来设置响应消息Request知识点
Reponse知识点
2.Cookie与Session
会话技术
Cookie与Session都属于会话技术。利用该技术可以做免登陆等功能。
如下图是cookie的原理示例图:
如下图是Session的原理示例图(Session依赖于Cookie,将Session对象的id存入在Cookie
):CookIe知识点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16//2.1设置cookie
@WebServlet("/CookieDemo04")
public class CookieDemo04 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.创建Cookie对象
Cookie c1 = new Cookie("msg","setMaxAge");
//2.设置Cookie的存活时间
c1.setMaxAge(30); //将cookie持久化到硬盘,30秒后会自动删除cookie文件
//3.发送Cookie
response.addCookie(c1);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}1
2
3
4
5
6
7
8
9
10
11
12//2.2获取cookie
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//3.获取Cookie
Cookie[] cs = request.getCookies();
if(cs != null){
for(Cookie c:cs){
String name = c.getName();
String value = c.getValue();
System.out.println(name + "; " + value);
}
}
}Session知识点
1)Session用于存储一次会话的多次请求的数据,数据存储在服务器端;
2)可以存储任意类型,任意大小的数据;1
2
3
4
5
6
7//3.1Session存储数据
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取session
HttpSession session = request.getSession();
//2.存储数据
session.setAttribute("msg","hello session");
}1
2
3
4
5
6
7
8//3.2Session获取数据
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取session
HttpSession session = request.getSession();
//2.获取数据
Object msg = session.getAttribute("msg");
System.out.println(msg);
}Session与Cookie区别
1)session存储数据在服务器端,Cookie在客户端
2)Session没有数据大小限制,Cookie有
3)Session数据安全,Cookie相对不安全