JSP-- cookies
2015-09-04 11:56
549 查看
当客户端进行了一些操作,比如登录用户/买东西等,断开链接后,从另一个地方(也是这个webapp但是是其他页面),服务端如何识别你已经有购买的东西或者判断你已登录状态;使用cookies
Cookies是服务器向客户端写入一些临时的文本文件,再次访问,从cookies中读取你的上次浏览操作状态信息,有如下规则:
1.只能写入txt文件
2.当前webapp的只能读取自己的cookie文件,不能读取别的应用的cookie
3.每个浏览器有唯一的id来区分谁操作的哪些东西
4.Cookie有生命周期,服务端写入cookie时设置,如果不进行设置,默认cookie生命
5.键值对形式保存
6.周期为瞬时的,cookie存活在内存中,当ie页面打开时就存活,关闭时就消亡
7.同一个servlet/jsp下cookies能被同一个路径或子路径里面的servlet/jsp读取,不能被其他路径的读取(路径==url)
写入cookies:
Cookie cookie = new Cookie("Cookies_name_no_life_" + i,"Cookies Vaule " +i);
resp.addCookie(cookie);
读取cookies:
Cookie[] cookies = req.getCookies();
cookies[i].getName();
cookies[i].getValue();
注意:客户端也可以阻止服务器向客户端写入cookie,在ie中设置安全选项,提高安全等级即可
测试代码:
写cookies:
![](http://img.blog.csdn.net/20150904115525732?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Cookies是服务器向客户端写入一些临时的文本文件,再次访问,从cookies中读取你的上次浏览操作状态信息,有如下规则:
1.只能写入txt文件
2.当前webapp的只能读取自己的cookie文件,不能读取别的应用的cookie
3.每个浏览器有唯一的id来区分谁操作的哪些东西
4.Cookie有生命周期,服务端写入cookie时设置,如果不进行设置,默认cookie生命
5.键值对形式保存
6.周期为瞬时的,cookie存活在内存中,当ie页面打开时就存活,关闭时就消亡
7.同一个servlet/jsp下cookies能被同一个路径或子路径里面的servlet/jsp读取,不能被其他路径的读取(路径==url)
写入cookies:
Cookie cookie = new Cookie("Cookies_name_no_life_" + i,"Cookies Vaule " +i);
resp.addCookie(cookie);
读取cookies:
Cookie[] cookies = req.getCookies();
cookies[i].getName();
cookies[i].getValue();
注意:客户端也可以阻止服务器向客户端写入cookie,在ie中设置安全选项,提高安全等级即可
测试代码:
写cookies:
package com.jack.cookie; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class WriteCookies extends HttpServlet{ //写入cookie @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub for(int i =0;i<3;i++){ //无生命周期的cookie Cookie cookie = new Cookie("Cookies_name_no_life_" + i,"Cookies Vaule " +i); resp.addCookie(cookie); cookie = new Cookie("Cookies_name_" + i,"Cookies Vaule " +i); cookie.setMaxAge(60); //60秒的生命周期 resp.addCookie(cookie); } resp.setContentType("text/html;charset=utf-8"); PrintWriter writer = resp.getWriter(); writer.write("<HTML><HEAD>write a cookie to client</HEAD>\n"+ "<BODY BGCOLOR=\"#FDF5E6\">\n"+ "<H1 ALIGN=\"CENTER\">cookies</H1>\n"+ "<A HREF=\"ReadCookies\">\n" + "<CODE>ReadCookies</CODE>Servlet</A>"+ "</BODY></HTML>"); } }读取cookies:
package com.jack.cookie; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ReadCookies extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub resp.setContentType("text/html;charset=utf-8"); PrintWriter writer = resp.getWriter(); writer.write("<HTML><HEAD>Read a cookies</HEAD>" + "<BODY><H1 ALIGN=\"CENTER\">READ A COOKIES</H1>\n"+ "<TABLE BORDER=1 ALIGN=\"CENTER\">\n" + "<TR BGCOLOR=\"#FEF5E6\"><TH>Cookies name</TH><TH>Cookies Value</TH>\n"); Cookie[] cookies = req.getCookies(); for(int i = 0;i < cookies.length;i++){ writer.write("<TR><TD>"+cookies[i].getName() + "</TD><TD>"+cookies[i].getValue() + "</TD>\n"); } } }测试结果:
相关文章推荐
- JS右下角广告窗口代码(可收缩、展开及关闭)
- JS插件-日期
- Hello JSP!——<jsp:include>动作元素篇
- js将对象格式化成string
- 如何写js.erb
- JavaScript基本技巧
- 解析接口中的json数据
- Sublime Text 2 JS 格式化插件 JsFormat的配置使用
- js calendar橙色日期选择器代码
- json和jsonp
- JavaScript中的逻辑运算的返回值(逻辑与&&,逻辑或||,逻辑非!)
- Json 基本应用
- 【JavaScript】实现计算日期相差天数
- JSP获取绝对物理地址
- laydate JS日期插件
- 前端路上的各种问题-javascript—6
- 如何在JavaScript捕获鼠标事件
- js base64 加密
- BZOJ 题目1012: [JSOI2008]最大数maxnumber(线段树)
- 自定义的js函数库