使用request.getContextPath()设置Cookie路径问题

今天做项目遇到一个问题:

某个项目需要自动登录,后台实现是将用户名和密码写入到cookie。本地测试通过,但是部署在服务器上的时候遇到一个问题,就是在IE下勾选上自动登录项,当再次登录的时候获取设置的cookie的值无法取到,经过研究发现本地和服务器的区别在于服务器访问没有项目名称也就是IP+端口访问,经过仔细研究找到的解决方案。

我们后台设置cookie的时候这这样设置的

    Cookie cookie = new Cookie(name, value);
        cookie.setMaxAge(cookieTimeOut);
        cookie.setPath(request.getContextPath());//c出错的原因主要在这里
        response.addCookie(cookie);

这样就导致如果没有项目名称

request.getContextPath()
或者的值为"",这样设置在IE下就出现了问题
找到问题原因解决起来就比较方便了,直接设置path为/即可解决问题

使用request.getContextPath()设置Cookie路径问题

时间: 2024-10-10 20:27:00

使用request.getContextPath()设置Cookie路径问题的相关文章

JSP之项目路径问题(${pageContext.request.contextPath},<%=request.getContextPath()%>以及绝对路径获取)

本随笔这是作为一个记录使用,以备后查.项目完成之后本地部署OK,本地Linux部署OK,都可以正常的访问,可是当我把它部署到服务器上面的时候,首页可以正常访问,可是当发出请求的时候却报错误了,说找不到定义的请求.我很纳闷,本地都OK为什么只有在服务器才能找不到请求.不过按照常理我还是一步一步的来开始排错. 第一步,查看项目部署成功,和部署路径无关,OK. 第二步,查看web.xml以及struts的请求配置,完全OK,没有问题. 第三步,既然部署没有问题,请求配置都OK,如果不是机器的原因那么只

jsp中【<%=request.getContextPath()%>】项目路径

1 2 "request.getContextPath()的值是        "<%=request.getContextPath()%><br/> "pageContext.request.contextPath的值是   "${pageContext.request.contextPath}<br/> 通过运行我们发现了<%=request.getContextPath()%>和${pageContext.req

request.getContextPath是为了解决相对路径的问题,可返回站点的根路径

假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果: 1. System.out.println(request.getContextPath()); 打印结果:/news   2.System.out.println(request.getServletPath()); 打印结果:/main/list.jsp3. System.out.print

request.getcontextPath() 详解

<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">也行,这两个文件是在同一个目录下的.比如你要生成一个文件放在服务器上得一个目录下,可以使用request.getContextPath()

jsp中的request.getContextPath()

jsp中的request.getContextPath() <%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径. 但不用也可以吧,比如<a href="<%=request.getContextPath()%>/catalog.jsp">我就直接用<a href="catalog.jsp">也行啊,这两个文件是在同一个目录下的 比如你要生成一个文件放在服务器上得一个目

关于启明星系统移除apppath配置,让系统自动获取路径来设置cookie的解决方法

启明星系统底层使用统一接口,特别是用户,用户登录后,都会建立一个 userinfo 的cookie.请看下面2个网址: http://120.24.86.232/book http://120.24.86.232/helpdesk 通常,如果不显式的设置cookie,cookie默认将把userinfo cookie存放在 / 主目录下. 这样,book系统和helpdesk系统可以共享这个系统.换句话说,用户登录了一个系统,另外一个也将自动系统. 不过,在我演示站点里,为了区分不同的系统,我并

关于request.getContextPath的路径问题

今天在写项目的时候,为了测试整体的流程,写了简单的界面,然后发现在首页的时候没有问题,但是在进行登录的时候,浏览器提示404,看了一下请求路径 http://localhost:8080/$%7Bpath%7D/user/toLogin 很明显中间有乱码的错误,我查看了代码,发现我controller那里的路径映射有问题,所以把乱码那部分删除了,结果是可以看到登录页面的,所以问题应该出现在这个路径上面 这里是原请求路径 <h3> <a href="${path}/user/to

C#读取设置Cookie

设置: HttpCookie cookie = new HttpCookie("cookieName"); cookie.Value = "name1" HttpContext.Current.Response.Cookies.Add(cookie); 读取: HttpContext.Current.Request.Cookies["cookieName"].Value 判断cookie是否存在: if(HttpContext.Current.R

request,response,URL编码,路径专题

一.Response 1.Resonse的继承结构: ServletResponse--HttpServletResponse 2.Response代表响应,于是响应消息中的 状态码.响应头.实体内容都可以由它进行操作,由此引伸出如下实验: 3.利用Response输出数据到客户端 response.getOutputStream().write("中文".getBytes())输出数据,这是一个字节流,是什么字节输出什么字节,而浏览器默认用平台字节码打开服务器发送的数据,如 果服务器