概述
什么是cookie:
cookie是一种会话跟踪技术,就是在一次会话中跟踪记录一些状态,【会话就是从浏览器打开i网站到访问它的其它网页知道浏览器关闭的这个过程】。cookie就可以在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(例如:是否登录、购物车信息、是否已下载、是否 已点赞、视频播放进度等等)。cookie是服务器存储在客户端本地的一个文件. 它就好比服务器发给客户端的一个身份标识, 有了这个身份牌, 只要客户端随身携带这个身份牌. 服务器就能识别我们的身份了。
cookie的特点:
- cookie是服务器通知客户端保存键值对的一种技术。
- 客户端有了cookie以后每次请求都将发送给服务器。
- 每个cookie不能超过4KB。
- coikie只能存储文本。
- 每个浏览器大约可以存储50个cookie。
- 每个cookie都具有时效性【默认是浏览器关闭】
创建cookie的步骤:
第一步:创建cookie对象。
第二步:通知客户端保存cookie。
代码示例:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Cookie cookie = new Cookie("suername", "sdjisd");
resp.addCookie(cookie);
}
创建cookie的执行流程图:
服务器获取cookie:
通过request.getCookis()方法来进行获取cookie,返回的是cookie[]数组。如果想要获取指定的cookie需要通过遍历来进行获取。
代码示例:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
Cookie[] cookies = req.getCookies(); //内部存储的是cookie 通过对象流进行操作
for (Cookie o:cookies) {
//if语句是用来获取 指定的值是通过循环遍历来进行实现
if ("username".equals(o.getName())){
resp.getWriter().write(o.getName()+"="+o.getValue());
}
//获取cookie的名称及其属性值
}
cookie值的修改:
一共有两中方案共选择:
方案一:先创建一个同名的cookie对象。在构造器中同时赋予新的cookie的值,然后通知浏览器保存cookie对象。
方案二:先要查找需要修改的cookie对象,调用setvalue()方法赋予新的cookie值,通知客户端进行保存。
cookie的生控制:
cookie的生命控制是进行管理cookie的生命时常。
setMaxage()是进行设置cookie的最大生命时常。
参数是正数的话会在设置的时长(单位:秒)过后进行销毁,如果是复数的话表示永远也不会过期。如果是0的话会立刻进行删除。
代码示例:
在浏览器中怎样查看cookie的到期时间:
cookie的有效路径path属性的设置:
cookie的path属性可以有效过滤那些cookie可以发送给服务器,那些cookie不发送给服务器,Path属性是通过请求的地址来进行过滤。
示例:
代码示例:
//创建cookie 对象
Cookie cookie = new Cookie("username","123456");
//通知客户端保存cookie
resp.addCookie(cookie);
resp.getWriter().write("cookie创建成功");
Cookie cookie1 = new Cookie("path", "path1");
//获得当前的工程路径
String contextPath = req.getContextPath();
cookie1.setPath(contextPath+"/abc");
//将cookie发送到客户端
resp.addCookie(cookie1);
cookie登录账户名提示功能:
流程分析:
代码示例:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
if ("username".equals(username)&&"123456".equals(password)){
//登陆成功
Cookie cookie = new Cookie("username", "username1");
cookie.setMaxAge(60*60*24);
resp.addCookie(cookie);
System.out.println("登陆成功");
}else{
//登陆失败
System.out.println("登录 失败");
}
}
//jsp文件中的内容
<body>
<form action="http://localhost:8080/01web_war_exploded/servlet9" method="post">
账户:<input type="text" name="username" value="${cookie.username.value}">
密码:<input type="text" name="password">
<input type="submit" name="提交">
</form>
最后
以上就是害羞小蝴蝶为你收集整理的JavaWeb 中的cookie的全部内容,希望文章能够帮你解决JavaWeb 中的cookie所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复