Java教程

JAVAWed第五章COOkie

本文主要是介绍JAVAWed第五章COOkie,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.cookie作用:
务器可以利用Cookies包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态。Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
在这里插入图片描述
比如打开登录界面,请求验证码的时候,我们就在请求验证码response那里设置cookie的afc_session_id的值,然后也在redis里保存认证码的值,key是afc_session_id的值,values是验证码的值。当你登录时会请求登录接口也会附上cookie的(浏览器请求时都会附上cookie),我们会从cookie里拿到afc_session_id的值,然后根据该值去拿验证码。这样做可以准确得拿到该验证码了。
然后还有就是,当我们登录之后,我们会在cookie里会设置afc_session_key的值,该值是识别用户的,可以是跟userid有关联的,反正可以根据该值找到对应的user。然后每次请求,会根据cookie来判断是哪个用户了
1.1JavaWeb 使用Cookie实现——显示用户上次访问时间
创建Servlet
在eclipse中创建web-chapter05的项目,并在项目下创建一个cn.itcast.chapter05.cookie.example的包,并在包中编写一个LastAccessServlet的Servlet类,该类主要是获取Cookie信息并将当前时间作为Cookie值发送给客户端,具体代码如下:
package cn.itcast.chapter05.cookie.example;
import java.io.IOException;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/LastAccessServlet")
public class LastAccessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//指定服务器输出内容编码方式为UTF-8
response.setContentType(“text/html;charset=utf-8”);
String LastAccessTime = null;
在这里插入图片描述

2.Session对象
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。
服务器来处理该session id。session在服务器中是以一个HashMap的形式来保存的。request接收到session后会执行doGetSession()方法,该方法会返回一个session,将接收到的session和服务器端的session进行对比,判断该session是否有效,若session失效,将重新创建一个session返回(若是jsp第一次访问该服务器没有session,也通过该方法创建一个session),若session有效,则返回该session。其中在执行doGetSession()的时候会通过
在这里插入图片描述
方法来得到请求id的session。但是该方法在得到session后并不会检查session是否有效,这样就可能导致一些问题,例如当能得到session(不为null)但是该session又过期的时候。这是因为该方法会执行access()方法重置最后连接时间,因此会导致以后检查session失效的时候都是按照这个重置后的时间来计算的。

在这里插入图片描述

这篇关于JAVAWed第五章COOkie的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!