之前遇到session不知道为什么就是不能使用,每次刷新都会产生新的session,研究了整个晚上也没有结果,来这里发帖请教也没能得解,刚才一刹那终于发现了原因,原来是那么不值得一提现发个帖解释一下,也希望能帮到所有遇到问题的朋友。只是一个简单的测试session的servlet,代码如下:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
if(session.isNew()) {
out.print("new");
}else {
out.print("come back");
}
out.flush();
out.close();
}
测试URL: http://localhost:8080/JSP&Servlet/go //servlet配置为: /go到这里访问URL的时候,无论刷新或是怎样,始终输出是new,经测试sessionid每次都是新的,客户端也没有禁用cookie,抓包后发现response中包含set-cookie头,但每个request中始终没有cookie。百思不得其解,无意中就观察到response的set-cookie头里面,JSESSIONID后面有个path,记录了访问路径,它的值为:
/Path= ....JSP%26Servlet....
原来如此,由于我路径中有个"&",它被转成了%26,来标识cookie所指的路径,但是我每次访问时还是用的...JSP&Servlet... 浏览器当然认为没有&的cookie。
试了下把访问地址改为: http://localhost:8080/JSP%26Servlet/go 一切终于OK了。。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
if(session.isNew()) {
out.print("new");
}else {
out.print("come back");
}
out.flush();
out.close();
}
测试URL: http://localhost:8080/JSP&Servlet/go //servlet配置为: /go到这里访问URL的时候,无论刷新或是怎样,始终输出是new,经测试sessionid每次都是新的,客户端也没有禁用cookie,抓包后发现response中包含set-cookie头,但每个request中始终没有cookie。百思不得其解,无意中就观察到response的set-cookie头里面,JSESSIONID后面有个path,记录了访问路径,它的值为:
/Path= ....JSP%26Servlet....
原来如此,由于我路径中有个"&",它被转成了%26,来标识cookie所指的路径,但是我每次访问时还是用的...JSP&Servlet... 浏览器当然认为没有&的cookie。
试了下把访问地址改为: http://localhost:8080/JSP%26Servlet/go 一切终于OK了。。
解决方案 »
- 大家好,请教一个filter的问题
- 日期的增加问题
- 时间比较问题
- 请问用JSP怎么实现成绩打印(输入查询条件后,从数据库中检索记录,导入Excel或者Word实现打印)急!!!
- 各位有缘人,在下遇到困难,希望好心人帮忙
- bean有个int类型的属性test,在bean内部可以用一个不同名的变量存放属性值吗?
- 用jbuilder编写jsp是生成虚拟路径,为什么再tomcat中的server.xml中并没有出现?
- SmartUpload如何将上传到服务器的文件改名并存入指定的目录?
- [求助]有谁知道qq或是聊天室的原理吗?
- 一个提交请求,发送出两条HTTP请求?!如何实现?!高分等待
- 面试题哇(java)
- 这样写条件可以吗?就是这些项不能为空
unix里面大概不行吧?