Session和Cookie及服务器乱码问题

一.Cookie
Cookie技术将一小部分数据存储在浏览器中;默认情况下cookie是存在浏览器的内存中的,如果浏览器关闭(浏览器内存释放),cookie丢失,我们只需设定cookie的最大存活时间,就可以将cookie保存在浏览器所在机器的硬盘上。
1.获取cookie对象
Cookie cookie = new Cookie(“productId”, “123”);
2.设定cookie对象的最大存活时间
cookie.setMaxAge(60 * 60 * 24 * 7);//浏览器中存一周
3.(1)将cookie发送给浏览器
response.setHeader(“cookie”,“productId=123”);
(2)或者tomcat为我们提供一种更直接发送cookie的方式
response.addCookie(cookie);
4.在下次访问服务器的时候,携带cookie方法服务器,服务器获取cookie的方式:
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie reqcookie : cookies) {
System.out.println(reqcookie.getName() + “–>” + reqcookie.getValue());
}
}

二.session
session是将用户的信息保存在服务器端的技术。
session由服务器创建,sessionId由浏览器创建,存储在cookie中
session和cookie也是用来保存用户的信息的。
session称之为一次会话对象(会话:一次连接)
session 有两个属性:字符串类型的id,map类型user

1.session的创建(当session不存在的),获取当前的session
HttpSession session = request.getSession();
2.使用session存储一些用户信息
session.setAttribute(String key, Object value);
3.每个session都会有一个session id,用来标识不同的session
String id = session.getId(); // 32位的随机字符串
4.设置session的最大不活跃时间,session保存一段时间,在一段时间内没有访问服务器,则服务器销毁那个session。
session.setMaxInactiveInterval(30*60); //以秒为单位
5.立即销毁session对象
session.invalidate();
6.获得session存储的一些信息
session.getAttribute(“user”);

三.乱码问题解决:
1.浏览器发送到服务器的数据有乱码
① get请求有乱码
在tomcat/conf/server.xml中Connector标签添加一个属性: URIEncoding=“utf-8”
② post请求有乱码
在获取请求参数之前,设置:request.setCharacterEncoding(“utf-8”);可以保证获取请求实体中的数据没有乱码
request.setCharacterEncoding(“utf-8”);
String data = request.getParameter(“chin”);
System.out.println(data);

2.服务器返回给浏览器的数据有乱码
在打开流之前,设置:response.setContentType(“text/html; charset=utf-8”);可以保证返回给浏览器的数据没有乱码
response.setContentType(“text/html; charset=utf-8”);

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值