4.9
ServletContext
servlet上下文
一个项目一个ServletContext 代表当前web应用
作用:1.共享数据
2.获取初始化参数
3.请求转发
4.读取资源文件(文件流+context)
HttpServletResopnse
应用:
- 向浏览器输出消息
- 下载文件
- 解决中文乱码
UrlEncoder.encode(); - 验证码功能
- 实现重定向
resp.SendRedirect方法,相当于封装了需要跳转的地址setHeader和状态码setStatus
HttpServletRequest
用处:
- 获得前端传递的参数
getParameter和getParameterVaules后者可以得到多个参数,可以用在复选框的数据传递上 - 请求转发
req.getRequsetDispatcher().forward(req,resp);
参数是需要跳转的指定地址
Cookie小饼干:客户端技术
会话:打开浏览器访问一个地址,到关闭浏览器的过程是一个会话
实现过程:浏览器访问到服务器,服务器判断浏览器之前是否登录过(客户端有没有携带cookie发出请求),如果有,表示之前登录过,如果没有,就给客户端发送一个cookie,可以保存登录状态
- 一个cookie只能保存一个信息
- 一个web站点最多给浏览器发送20个cookie
- 浏览器有300个cookie的存储上限
- 一个cookie最大只能为4kb
- cookie的键不同,所以new键相同的cookie时,会将之前的value替换掉
具体原理:
Object[] errArgs = new Object[1];
errArgs[0] = name;
newcookie的时候在构造方法里有这行代码
删除cookie的方式:
- 关闭浏览器cookie自动删除
- 设置cookie有效期 0为立即失效
编码解码问题:防止中文乱码
- URLEncoder.encode 编码
- URLDecoder.decode 解码
Session:服务器技术
一个用户(浏览器)一个session对象
当有用户访问的时候,Web服务器自动创建一个Session对象,不用我们自己创建
使用场景:
- 保存登录信息
- 实现购物车功能
- 整个网站中经常使用的数据
Session实际是用Cooike实现的,返回浏览器一个Cooike,键叫做jSeiionCooike,值是SessionId,这样服务器可以根据SessionId判断到底是哪个对象登录了
在Web.xml文件中可设置会话过期时间