web状态管理
web状态管理
1:http协议使用的是无状态连接
2:容器而言每个一个请求都是来自一个新的用户
实现状态追踪的方式
1:使用隐藏表单域,只能在动态传输,如果其中出现一个静态页面,就不能达到状态追踪
2:cookie方法 在服务器先产生一个cookie对象,对象都是keyvalue对象,第2步把cookie对象镶嵌入响应头 第3步将装好的响应数据 浏览器解析cookie数据以文件的信息保存 如果以后在发这一次请求,就向服务器返回cookie服务器端程序进行读取
获取请求的cookie数据
request,getCookie();
设置Cookie的生命周期
cookie.setMaxAge();
解决cookie数据不安全的技术
3:Session技术
在服务器产生一个session对象,同时产生一个session的id,将这个id以cookie的形式响应给浏览器,浏览器以cookie数据以文件格式保存在浏览器本地,下次在请求的时候发送cookie数据id,然后服务器解析找到对应的session,然后拿到数据
4:url重写技术
1:超链接
2:重写url路径
//得到session对象,此对象有可能是新的又能是旧的
HttpSession session=request.getSession();
所以我们需要进行判断
使用if (session.isNew()) {//如果此对象是新的,返回true
}else {//如果是旧的返回false}
session的生命周期
就是一次会话开始和结束
销毁session对象
1:设置会话超时 对象。setMaxInactiveInterval()方法
2:session对象上调用invalidate()方法
3:应用结束(崩溃或者取消部署)
4:销毁cookie文件
session仓库
比request大,比上下文小
保存一个session对象
对象.setAttribute();
获取一个session对象
对象.getAttribute()
session仓库线程安全嘛?
1:如果是人操作就绝对安全
2:使用脚本就不安全了
servlet的3大作用域
session,request,servletContext
常见的乱码
1:页面乱码 mate charset
2:请求参数乱码 request.setCharacterEncoding(arg0);
3:响应乱码 resp.setContentType("text/html;charset=utf-8");
4:sql乱码 characterEncoding=utf-8"

浙公网安备 33010602011771号