>为了在Web应用程序中能够唯一的标识用户,必须使用会话跟踪技术。
>会话跟踪技术可以通过以下技术实现:
1)cookie技术:cookie是存储在客户端的一段文本信息,伴随着用户请求在客户端和服务器之间进行传递。
2)session技术:Web服务器为客户端开辟的一块存储空间,用来存放客户端状态信息。
>cookie和session都能实现会话跟踪,但是二者的区别如下:
1)cookie是在客户端保存信息,session是在服务器保存信息。
2)cookie中只能保存字符串,session中可以保存任何对象。
3)保存在sesson中的信息,当浏览器关闭后即失效,保存在cookie中的信息可以长期存在。
4)因为用户可以删除cookie,所以一般在cookie中保存一些不重要的信息,重要的信息保存在session中。
>在JSP中,对象有四种范围,分别是:page、request、session和application。
接下来把我今天的Exception展示出来:
Servlet:
//创建两个cookie
Cookie username = new Cookie("username","丁香花");
Cookie userpwd = new Cookie("userpwd","1");
//向客户端写入cookie
response.addCookie(username);
response.addCookie(userpwd);
if( 1 == 1){
//转到页面进行查看cookie信息
response.sendRedirect("cookie1_show.jsp");
}
JSP:
//读取所有的cookie,返回cookie数组
Cookie[] cookies = request.getCookies();
//遍历cookie数组
for(int i =0;i<cookies.length;i++){
Cookie cookie = cookies[i];
//根据cookie名称进行判断
if(cookie.getName().equals("username")){
out.println("用户名是:"+cookie.getValue());
}
if(cookie.getName().equals("userpwd")){
out.print("密码是:"+cookie.getValue());
}
}
然后报的错是:Control character in cookie value, consider BASE64 encoding your value
想了想,觉得自己写了没有错,然后就把“丁香花”改成了“admin”就好了。
哪位大神看了之后能跟我讲解一下吗?为什么就不行?