JavaWeb系列之八(Cookie&Session)
1.jsp的入门
jsp就是一个servlet,终于会被编译成servlet,jsp:java server pages,java服务器端页面,包括html+java+jsp的指令
使用servlet向页面输出内容,须要使用字节流或者字符流向页面输出
jsp:java server pages。java服务器端的页面
运行过程:放到tomcat work文件夹,在訪问的时候,会编译成servlet。
嵌入java代码的三种方式
第一种: <%!
int num=10 %>:表示的一个是成员变量(非常少用)
另外一种:<%= %>:页面输出内容,它会给我们生成到service里面,向页面输出内容;不能加分号
第三种:<% %>:也是在service里面载入
样例:五行五列
<table border="1" bordercolor="blue">
<%
for (int i = 1; i <= 5; i++) {
%>
<tr>
<%
for (int j = 1; j <= 5; j++) {
%>
<td>aaa</td>
<%
}
%>
</tr>
<%
}
%>
</table>
2.el的入门
el的表达式:获取域对象的值
假设多个域对象名称是同样的。使用el表达式获取范围小的,
${requestScope.msg} :得到request域的对象
${application.masg}:得到ServletContext的值
假设没有这个值得到的是null
3.会话管理
打开浏览器。到关闭浏览器
购物信息的存储。
requset域对象的特点:范围一次请求
sevletContext域
用会话来存储购物的技术
cookie技术:client技术
使用cookie
首先第一次买东西A。到server得到A,A通过Cookie返回到浏览器内存中,
第二次买B,携带内存中的A一起发送,到server端,得到A。B,通过Cookie返回到浏览器的内存中
结算的时候,把内存中的两个值一起发送给server,然后进行结算
session技术:server端的技术
4。案例一:实现用户上一次的訪问时间
方法:
得到cookie
Cookie[] getCookies()
//得到全部cookie
Cookie[] cookies = request.getCookies();
通过cookie把值返回到浏览器的内存中(回写)
addCookie(Cookie cookie)
使用Cookie的构造
Cookie(java.lang.String name, java.lang.String value)
name:cookie的名称
value:cookie值
5.cookie的api的使用
getName():得到cookie名称
getValue():得到cookie的值
setMaxAge(int expiry):设置cookie的有效时长
有两种会话方式:
第一种会话级别:特点是浏览器关闭了,cookie销毁。在默认的情况下会话级别
另外一种持久性cookie:在一定范围内容cookie会一直有效
设置有效时长:使用setMaxAge方法设置 setMaxAge(int expiry)參数:秒
设置有效路径:使用setPath(java.lang.String uri)
技巧 setPath("/");
setPath(uri)
销毁持久的cookie,到时间销毁,setMaxAge(0);
setDomain("www.sina.com");
和这个域名同样会携带域名信息
技巧:setDomian(".sina.com");
6.cookie的细节问题
一个Cookie仅仅能标识一种信息,它至少含有一个标识该信息的名称(NAME)和设置值(VALUE)。
一个WEB网站能够给一个WEB浏览器发送多个Cookie,一个WEB浏览器也能够存储多个WEB网站提供的Cookie。
浏览器一般仅仅同意存放300个Cookie,每一个网站最多存放20个Cookie,每一个Cookie的限制大小为4KB。
假设创建了一个cookie。默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中)。
用户退出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则须要使用maxAge和有效路径,
并给出一个以秒为单位的时间。
删除持久cookie。能够将cookie最大时效设为0,注意。删除cookie时。path必须一致,否则不会删除
8.session的简单介绍
session是server端技术
session也是一个域对象
范围:会话里面
存值:setAttribute
取值:getAttribute
一个浏览器独占一个session对象
10、session创建和销毁
session创建,运行request方法getSession创建
session销毁有三种方式
第一种方式:非正常关闭server
另外一种方式:session有一个默认的过期时间 30分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
第三种:调用session经行销毁
清空购物车的功能
代码
//得到session
HttpSession session = request.getSession();
//销毁session
session.invalidate();
12、禁用cookie之后session的使用
session技术也是基于cookie,
回写浏览器一把钥匙 jsessionid=qwwe233445
禁用cookie之后使用session
在地址后面;jsessionid=sessionid的值
response. encodeRedirectURL(java.lang.String url)
用于对sendRedirect方法后的url地址进行重写。
response. encodeURL(java.lang.String url)
用于对表单action和超链接的url地址进行重写
* 在一般站点中。假设禁用了cookie,直接不让登录
JavaWeb系列之八(Cookie&Session)的更多相关文章
- Django-website 程序案例系列-10 cookie 和 session的应用
cookie: 现在所有网站基本都要开启cookie 客户端浏览器上的一个文件 例如: {‘key’: 'sefwefqefwefw'} 是一个键值对 简单实现cookie认证: user_in ...
- Django学习系列之Cookie、Session
Cookie和Session介绍 cookie 保存在客户端 session 保存在服务端 session依赖于cookie,比如服务端想往客户端写东西的时候就把cookie写到客户端浏览器 djan ...
- JavaWeb -- 会话, Cookie 和 Session
1. 会话 •Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器.当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去.这样,web资源处理的就是 ...
- JavaWeb(二)cookie与session的应用
前言 前面讲了一堆虚的东西,所以这篇我们来介绍一下cookie和session的应用. 一.使用cookie记住用户名 1.1.思路介绍 1.2.实现代码 1)LoginServlet package ...
- 为什么你学不会递归?告别递归,谈谈我的一些经验 关于集合中一些常考的知识点总结 .net辗转java系列(一)视野 彻底理解cookie,session,token
为什么你学不会递归?告别递归,谈谈我的一些经验 可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了! ...
- JavaWeb学习之转发和重定向、会话技术:cookie、session、验证码实例、URLConnection使用(下载网页)(4)
1.转发和重定向 HttpServletResponse response 转发: RequestDispatcher dispatcher = request.getRequestDispatche ...
- JavaWeb之Cookie和Session的区别
Cookie和Session的区别 一.cookie机制和session机制的区别 ********************************************************** ...
- JavaWeb(二)会话管理之细说cookie与session
前言 前面花了几篇博客介绍了Servlet,讲的非常的详细.这一篇给大家介绍一下cookie和session. 一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接, ...
- java基础学习:JavaWeb之Cookie和Session
一.会话概述 1.1.什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话其中不管浏览器发送多少请求,都视为一次会话,直到 ...
随机推荐
- LeetCode-Valid Number - 有限状态机
判断合法数字,之前好像在哪里看到过这题, 记得当时还写了好久,反正各种改, 今天看到了大神的解法(https://github.com/fuwutu/LeetCode/blob/master/Vali ...
- Python 入门基础11 --函数基础4 迭代器、生成器、枚举类型
今日目录: 1.迭代器 2.可迭代对象 3.迭代器对象 4.for循环迭代器 5.生成器 6.枚举对象 一.迭代器: 循环反馈的容器(集合类型) 每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的 ...
- Linux那些事儿之我是Hub(大结局)挂起自动化【转】
转自:http://blog.csdn.net/fudan_abc/article/details/1805471 目睹了当今大学校园的素质流氓化,kiss公开化,消费白领化,上课梦游化,逃课普遍化, ...
- 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)【转】
mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是 ...
- 解决chrome运行报错unknown error: cannot get automation extension
今天把默认浏览器改成chrome,结果一运行脚本就报错,具体错误信息如下. FAILED CONFIGURATION: @BeforeClass beforeClassorg.openqa.selen ...
- windows安装 Microsoft Visual c++
第一种方法: 第二种方法: 参考链接 直接给一个2015版本的下载地址 https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/un ...
- 【前端vue开发】vue开发输入姓名,电话,公司表单提交组件
<template> <div id="parti-info"> <div> <span>您的姓名:</span> &l ...
- python小记
最近有匹骚猪用微信骚扰我,我很是气愤, 自学一波脚本: 学习目的:用脚本回击回去,通过py写一个脚本,一次性给别人发n条消息: mac上自学python: brew install python3(自 ...
- docker 的简单操作
一直说更博,但是一直在delay.... 最近一直用到docker,所以就总结一下吧! docker的介绍 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. ...
- Hitcon 2016 Pwn赛题学习
PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...