JSP中的Cookie对象

Posted nuist__NJUPT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP中的Cookie对象相关的知识,希望对你有一定的参考价值。

JSP中的Cookie对象

Cookie对象是一种会话跟踪机制,Cookie对象虽然不是JSP内置对象,使用时候需要显示创建该对象,JSP设计时候经常使用Cookie技术来实现一些特殊的功能。

Cookie对象是web服务器通过浏览器在客户机的硬盘上存储的一小段文本,用来记录用户登录的用户名,密码,登录时间等信息,当用户下次再次登录此网站时候,浏览器根据用户输入的网址,在本地寻找是否存在与该网址匹配的Cookie,如果有,则将该Cookie和请求参数一起发送给处理器做处理,实现各种个性化服务。

下面案例实现保存和读取Cookie。
在cookiesave,jsp中保存,在cookieread.jsp中读取Cookie

<%@ page import="java.net.*" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.Date" %><%--
  Created by IntelliJ IDEA.
  User: nuist__NJUPT
  Date: 2021/10/6
  Time: 9:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Cookie-save</title>
</head>
<body>
<%
    Cookie cookie = new Cookie(URLEncoder.encode("姓名","utf-8"), URLEncoder.encode("杰克","utf-8")) ;
    cookie.setMaxAge(60*60) ;//设置Cookie在用户机器硬盘上的存活周期是1小时
    response.addCookie(cookie) ; //将信息加入到Cookie文件中
    String userIp = request.getRemoteAddr() ;
    cookie = new Cookie("userIp", userIp) ;
    cookie.setMaxAge(10*60) ;
    response.addCookie(cookie) ;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日h:m:s") ;
    Date date = new Date() ;
    String loginTime = sdf.format(date) ;
    cookie = new Cookie("longTime",URLEncoder.encode("loginTime", "utf-8")) ;
    cookie.setMaxAge(20*60) ;
    response.addCookie(cookie) ;
%><br>
<a href = "cookieread.jsp">去读取</a>

</body>
</html>

<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %><%--
  Created by IntelliJ IDEA.
  User: nuist__NJUPT
  Date: 2021/10/6
  Time: 9:27
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Cookie-Read</title>
</head>
<body>
使用foreach循环读取cookie数组,并输出其中的Cookie:<br>
<%
    if(request.getCookies() != null){
        for(Cookie cookie : request.getCookies()){
            String name = URLDecoder.decode(cookie.getName(), "utf-8") ;
            String value = URLDecoder.decode(cookie.getValue(), "utf-8") ;
            out.println("cookie属性:" + name + " = "+ value + "<br>") ;
        }
    }
%>
使用for循环查找某个Cookie<br>
<%
    Cookie myCookie [] = request.getCookies() ;
    Cookie cookie = null ;
    for(int i=0; i<myCookie.length; i++){
        cookie = myCookie[i] ;
        if(cookie.getName().equals("userIp")){
%>
您好,您上次登录的IP地址为:<%= cookie.getValue()%>
<%
    }}
%>
</body>

以上是关于JSP中的Cookie对象的主要内容,如果未能解决你的问题,请参考以下文章

jsp中页面间对象传递的方法有哪几种?

在 JSP 中的 <% %> 代码片段中添加链接

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

JSP中的Cookie

JSP基础知识?Cookie和Session

jsp内置对象之Cookie对象