7.3.6 cookie内置对象

优质
小牛编辑
130浏览
2023-12-01

EL表达式中的cookie对象表示所有Cookie信息的集合。实际上,cookie对象返回的Map对象的value是Cookie类型。使用cookie对象的好处是可以直接通过Cookie名来获得Cookie值。而如果通过HTTPServletRequest.getCookies方法获得指定的Cookie,必须得扫描该方法返回的Cookie对象数组才能获得指定的Cookie对象。如果多个Cookie共用一个名称,Cookie对象数组中第一个与其对应的Cookie对象。

<!--  cookie.jsp  -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    Cookie cookie = new Cookie("product", "bike");
    response.addCookie(cookie);
%>

${cookie.product}<hr>
${cookie.product.name} = ${cookie.product.value}

由于cookie对象是从HTTP请求消息头的cookie字段中提取Cookie信息的。而在第一次执行上面的JSP代码后,由于HTTP请求消息头中并没有cookie字段,因此,第一次执行上面的JSP代码并不会输出Cookie名和Cookie值,当再次执行上面的JSP代码后,就会输出如图7.6所示的信息。

06

图7.6 使用cookie对象输出Cookie名和Cookie值