日期:2014-05-17  浏览次数:20822 次

一个比较奇怪的问题。session cookie相关的。
详细情况如下所说:
我写了一段代码,内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>    
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>显示cookie</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();

%>

<c:forEach var="item" items="<%=cookies %>">
${item.name }&nbsp;&nbsp;&nbsp;
${item.value }
<br/>
</c:forEach>

</body>
</html>


奇怪的事情是如此:
情况1:
我采用IE浏览器打开该页面:内容为空。
再次刷新,内容为空。
继续刷新,内容依旧为空。

情况2:
我采用IE浏览器打开该页面,内容为空。随后我打开httpWacher
内容同上:

情况3:
我打开IE浏览器,打开的百度主页。
这个时候,我打开HTTP watch
紧接着,我通过在浏览器的地址栏输入该jsp的地址。
内容为空。
再次刷新,浏览器出现如下的内容:
JSESSIONID&nbsp;&nbsp;&nbsp;
9A8119AF8715EC8FF260963B819A10A1

奇怪的是,为什么打开HTTP watch就有这种区别?
这个默认产生的JSESSIONID究竟是做什么的呢,产生该Cookie有什么条件没呢。


------解决方案--------------------
你用的JSTL1.0?
------解决方案--------------------
有可能是el表达式未启用 
<%@ page isELIgnored="true"%> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁
 止.JSP2.0中默认的启用EL语言.