Cookie使用及应用-记住密码
转发 forward
它是属于服务端跳转,地址栏不会发生改变。
Response
重定向 redirector
客户端跳转,地址栏发生了改变。
代码:
web.xml中添加
区别主要是带值问题:如果我们用Request传值,只能用forward;
什么场合下用:不带值。登陆:成功可以用forward,失败可以用重定向。重定向还可以是项目以外的资源。转发只能是当前项目。转发效率要高一些。
实际原理是什么:
重定向三次握手。
买房问题:
未婚证明:
银行贷款:带着身份证到银行贷款。银行说要未婚证明,你只能回去到民政局办理,办好没办好你是清楚的。再到银行办理。
如果是转发呢:银行帮你办理了未婚证明,你不用去民政局了,你不知道银行办没有办好。
三次握手: 客户端–发送带有SYN标志的数据包–一次握手–服务端 服务端–发送带有SYN/ACK标志的数据包–二次握手–客户端 客户端–发送带有带有ACK标志的数据包–三次握手–服务端 四次挥手: 客户端-发送一个FIN,用来关闭客户端到服务器的数据传送 服务器-收到这个FIN,它发回一个ACK,确认序号为收到的序号加1 。和SYN一样,一个FIN将占用一个序号 服务器-关闭与客户端的连接,发送一个FIN给客户端 客户端-发回ACK报文确认,并将确认序号设置为收到序号加1 |
一、Cookie(客户端技术)
1.chrom浏览器如何查看Cookie
2.firefox浏览器如何查看Cookie
3.IE浏览器如何查看Cookie
一个浏览器能保存多少个Cookie 300
一个网站能保存多少个Cookie 20
Cookie是什么?有什么用?
Cookie保存的时间
1.客户端技术
是服务器将信息保存在客户端
客户端第一次请求是没有Cookie
请求后,服务器有可能放Cookie
如果放了,那么客户端下次请求就携带它
2.作用
追踪特定对象(浏览过的商品)
统计网页浏览次数
简化登陆:记住用户名
3.缺点
可以看得到(怎么看)
容易信息泄露(不安全)
4.chrome浏览器查看
chrome://settings/
拉到最下面“高级”
打开出现“隐私设置和安全性”
内容设置
Cookie
所有 Cookie 和网站数据
清除Cookie
5.如何用Java实现
5.1创建一个web项目
5.2创建一个Servlet
5.3在配置文件中配置web.xml
5.4创建一个Cookie
5.5存到客户端
response.addCookie(cookie);
代码:CookieServlet
web.xml中添加
前台index.jsp中添加
启动猫,访问:http://localhost:9999/web-6/index.jsp,点击超链接。查看浏览器的cookie。
问题:关了浏览器,cookie就被删除了
解决:保存到电脑的磁盘上,设置setMaxAge
再次请求,查看,关掉浏览器,发现cookie不会消失了。
5.6服务端取 request.getCookies()返回数组
getName
getValue
接下来我们如何获取Cookie。先写一个GetCookieServlet获取
web.xml中添加
index.jsp添加
观察控制台
5.7删除 setMaxAge(0) 案例中使用
课堂案例:1.记住用户名,记住勾选
1. 先登陆,登陆成功,保存用户名到cookie。并
2.登陆页面如果是jsp,不会拿cookie
Servlet中会拿,登陆页先跳Servlet再转登陆页。
Servlet进login.jsp,所以是获不到任何jsp页面的值。
login.jsp
LoginServlet的逻辑,如果勾了就将勾了标识与用户名存入Cookie中,如果没有勾,就清除掉。
web.xml中添加
问题:如果我们从login.jsp登陆就无法用Request获得已经保存的Cookie,于是我们可以弄一个ToLoginServletl转到login.jsp,将Cookie中的值传过去。
login.jsp进行回显设置
导标签库
启动猫,进行测试:
输入数据
接下来打开另一个浏览器
地址栏上输入
当我们去掉勾,输入正确的密码,提交,再次进入,又取消了回显。
问题:如果想从index.jsp直接跳到tologin怎么办?
在index.jsp加上