下面关于cookie的实验是正确的吗
下面的实验可以用简短的几句话概括一下原理吗?目前只知道好像事实就是下面这样的
服务器:Tomcat
项目的根目录的路径:localhost:8080/project
项目中某个Servlet的路径:localhost:8080/project/MyCookie
其中路径localhost:8080/project/MyCookie访问到的是下面的Servlet:
public class MyCookie extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
Cookie[] cookies = request.getCookies();
for(int i = 0; cookies != null && i < cookies.length;i++){
//如果在浏览器没有显示虾面的语句,说明没有获取到cookie
response.getWriter().println("可以获取到cookie cookies[i].getName():"+cookies[i].getName()+cookies[i].getValue());
}
}
}
下面的描述是否是正确的:
1).当第一次直接访问项目的根目录的时候,Tomcat服务器会向浏览器发送Cookie,可以在响应头
中看到类似的消息头:
Set-Cookie:JSESSIONID=544F9C73731E416ECC15CF5A204C2023; Path=/project; HttpOnly;
2).当在一定的时间内第二次访问项目的根目录的时候,此时Tomcat服务器不会再向浏览器
发送Cookie,但是,浏览器会向服务器发送cookie,可以在请求头中看到:
Cookie:JSESSIONID=544F9C73731E416ECC15CF5A204C2023
3)移除掉浏览器所有的Cookie;
4).当直接访问项目的具体的Servlet时(也就是直接访问localhost:8080/project/MyCookie ),
此时,无论访问此Servlet多少次,都不会获取到Cookie
5)如果你先访问项目的根目录,然后再访问(4)中的Servlet,
此时这个Servlet就可以获取到cookie了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
4 的意思是说获取到sessionid之后再删除 然后再访问 得不到sessionid吗?
tomcat应该是判断请求中如果有sessionid就继续会话 , 没有的话就new 一个新的session 返回sessionid吧
在浏览器把包含sessionid的cookie删了 , 服务器应该会认为是一个新的会话 返回新的sessionid 和路径没有关系