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资源,然后关闭浏览器,整个过程称之为一个会话其中不管浏览器发送多少请求,都视为一次会话,直到 ...
随机推荐
- Zookeeper笔记之基于zk的分布式配置中心
一.场景 & 需求 集群上有很多个节点运行同一个任务,这个任务会有一些可能经常改变的配置参数,要求是当配置参数改变之后能够很快地同步到每个节点上,如果将这些配置参数放在本地文件中则每次都要修改 ...
- 以后的博客将更新到自己的域名pythonsite.com,欢迎访问
以后的博客将更新到自己的域名pythonsite.com,欢迎访问
- poj1521
霍夫曼编码,建树 #include <cstdio> #include <cstring> #include <queue> using namespace std ...
- stylus项目知识点
1.在项目中,引入.sty文件的时候,用来下面方式 @import "~common/stylus/variable.styl" ~ 是stylus的写法,参考https://gi ...
- 文件时间戳修改touch和查看stat和ls --time
查看文件时间戳命令:stat awk.txtFile: `awk.txt'Size: 20 Blocks: 8 IO Block: 4096 regular fileDevice: 801h/2 ...
- 2011TG初赛
一.单项选择题(共20题,每题1.5分,共计30分,每题有且仅有一个正确选项.) 1. 在二进制下,1011001+( )=1100110. A.1011 B.1101 C.1010 D.1111 B ...
- IntelIJ IDEA配置Tomcat遇到问题Error during artifact deployment. See server log for details
IntelIJ IDEA在配置tomcat的时候会遇到Error during artifact deployment. See server log for details.这样的问题,我的系统是W ...
- C语言:指针实现交换两个变量的值
用指针交换两个变量的值(10分) 题目内容: 用指针交换两个变量的值 主函数参考: int main( ) { int a,b; scanf("%d%d",&a,& ...
- flume修改配置文件
flume修改配置文件后,flume进程会自动将配置文件更新至服务中,同时会初始化日志,重新对于metrics进行记录的. 所以拿api做监控的同学要注意这点啦
- MATLAB遍历文件夹下所有文件
先给出函数 function [ files ] = scanDir( root_dir ) files={}; if root_dir(end)~='/' root_dir=[root_dir,'/ ...