HTTP协议,会话跟踪,保存作用域,servlet类跳转
解决post的编码问题,防止中文乱码
request.setCharacterEncoding("utf-8");
HTTP协议:
(1)由Request(请求)和Response(响应)两部分组成
(2)请求包括了三部分:请求行、请求行、请求消息头、请求主体:
get方式请求--query string;
post方式请求--form data;
json格式--request payload;
(3)相应包括了三部分:相应行、相应消息头、相应主体
HttpSession
(1)HttpSession :表示 会话
(2)Http协议是无状态的(同一个连接允许传输多个HTTP请求的情况下,如果第一个请求出错了,后面的请求一般也能够继续处理)
(3)Session保存作用域 :一次会话范围都有效;void session.setAttribute(k,v),session.getAttribute(k)
(4)常用的API:session.getId():获取会话的id,session.isNew():创建新的会话,session.getCreationTime():设置会话的时间,session.invalidate():清空已定义的session 而不是清空session里的值
保存作用域
*保存作用域一共有四个:page(页面级别,现在几乎不会用);request(一次请求响应范围有效);
session(一次会话范围有效);application(一次应用程序范围有效(只要服务器不关就都有效));
(1)request(请求)保存作用域是对应着某一个请求响应,所以用客户端重定向是获取不到数据的
1.常用API:void request.setAttribute(k,v) :保存数据到作用域中
Object requestgatAttribute(k) :在作用域中读取数据出来
(2)session(会话)保存作用域是对应着某一个session(会话)
1.常用API:void session.setAttribute(k,v) :保存数据到会话作用域中
Object session gatAttribute(k) :在会话作用域中读取数据出来
void removeAttribute(k) :删除作用域中的数据
(2)application(会话)保存作用域是对应着某一个application(应用程序)
ServetContext application = request.getServetContext();//ServetContext 表示servet上下文(程序运行的刚开始到结束)
application .setAttribute(k,v) :保存数据到会话作用域中
ServetContext application = request.getServetContext();
session gatAttribute(k) :在会话作用域中读取数据出来
服务器端转发和客户端重定向
(1)服务器端转发:request.getRequestDispatcher("index.html").forward(response);
(2)客户端重定向:response.sendRedirect("index.html");
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术