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资源,然后关闭浏览器,整个过程称之为一个会话其中不管浏览器发送多少请求,都视为一次会话,直到 ...
随机推荐
- 【Pyhon】利用BurpSuite到SQLMap批量测试SQL注入
前言 通过Python脚本把Burp的HTTP请求提取出来交给SQLMap批量测试,提升找大门户网站SQL注入点的效率. 导出Burp的请求包 配置到Burp的代理后浏览门户站点,Burp会将URL纪 ...
- JavaEE 学习框架
JavaSE JavaWeb基础 ssh+hibernate+spring ssm+spring+mybatis 项目1 电商项目(项目二)
- Java中类与类的关系
在java中类和类的关系大致分三种:泛化.关联.依赖. 1. 泛化(Generalization) "XX是一个XX"关系(is a),通常使用的关键词为 extends.impl ...
- 如何让Ubuntu 12.04 LTS更炫更具吸引力
Ubuntu 12.04 LTS震撼发布 适逢七周岁生日之际,Ubuntu正式推出了第四个LTS长期支持版本,开发代号Precise Pangolin的Ubuntu 12.04在2012年4月26 ...
- FileOutputSteam入门
FileOutputSteam 字节输入流 从控制台将字节保存到本地硬盘 package com.isoftstone.io; import java.io.FileOutputStream; imp ...
- Java编程的逻辑 (65) - 线程的基本概念
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- mavean导入本地仓库
当你刚开始用mavean的时候可能还没有发现mavean导入本地仓库方法的重要性,但是随着经常使用mavean项目就会发现,有些jar包mavean从网上的mavean仓库中无法导入,例如oracle ...
- 原 nc在centos7上的安装和简单使用
https://blog.csdn.net/qq_16414307/article/details/50291341 https://www.cnblogs.com/rocky-AGE-24/p/69 ...
- 【LOJ】#2535. 「CQOI2018」九连环
题解 简单分析一下,有\(k\)个环肯定是,我拆掉了\(k - 2\)个,留最左两个,1步拆掉最左的,这个时候我还要把这\(k - 2\)个环拼回去,拆一次\(k - 1\) 所以方案数就是\(f[k ...
- Python PyCharm编译器
PyCharm编译器有很强大的代码提示功能,业界都说很好用,所以我尝试着安装并使用,以下是过程. 下载地址:http://www.jetbrains.com/pycharm/download/#sec ...