我发现了 我系统里有给cookie赋值的地方
<% MyCookie mycookie = new MyCookie(request); String username = mycookie.GetCookieValue("username"); System.out.println("COOKIE中取出来的username值是"+username); System.out.println("session是是"+session.toString()); System.out.println("session中取出来的username值是"+session.getAttribute("userinfo").toString()); if ( username.equals("null") ) {username = "";}
System.out.println(session.getAttribute( "PASS_O" )); if (session.getAttribute( "PASS_O" )=="Y") { Cookie cookie = new Cookie("username", session.getAttribute("userinfo").toString() ); cookie.setMaxAge(606024*7); response.addCookie(cookie); %>
在登录 以后进入初始页面 初始页面有这段代码 ~~
还有就是我们公司有代理 开了代理肯定出错!不知道那代理怎么这么2~
不开代理当然也会出错= =!给cookie赋值了 那就不是你说的那个原因了- -!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
从你提供的代码片段来看,这段Java代码是在一个Web应用中设置Cookie的示例。它首先检查session中的"PASS_O"属性是否为"Y",如果是,则创建一个新的Cookie对象,名为"username",其值为session中"userinfo"属性转换成的字符串,并且设置了这个Cookie的有效期为7天(606024*7秒)。之后,通过response对象将这个Cookie添加到客户端。
关于你提到的代理服务器问题,如果在使用代理服务器时遇到错误,这可能与以下几个方面有关:
Cookie的路径和域:确保当通过代理服务器时,Cookie的路径和域被正确设置。某些代理服务器可能会对这些参数敏感,导致Cookie无法正确传递或存储。
安全协议:如果你的应用强制使用HTTPS,而代理服务器不支持或配置不当,可能会导致Cookie传输失败。因为根据HTTP规范,安全Cookie(标记为Secure
的Cookie)不能通过非HTTPS连接发送。
代理服务器配置:部分代理服务器会过滤、修改或删除Cookie,特别是那些有特定安全策略或实施额外过滤规则的代理。检查代理服务器的配置,看是否有针对Cookie处理的特殊规则。
编码问题:虽然不太常见,但Cookie的值如果包含特殊字符且未正确编码,也可能在通过代理时出现问题。
网络延迟或超时:Cookie设置操作需要响应成功返回给客户端,网络问题或代理服务器响应慢可能导致这一过程失败。
解决这类问题的一般步骤包括: - 确认代理服务器的日志,查看是否有与Cookie相关的错误信息。 - 检查应用日志,了解在启用代理时是否有异常记录。 - 测试不同的浏览器或禁用浏览器的安全增强功能(如隐私模式),以排除是客户端设置的问题。 - 调整代理服务器的配置,尝试关闭可能影响Cookie传递的功能或规则。 - 如果可能,尝试直接绕过代理访问你的应用,以验证问题是否由代理引起。
希望这些建议能帮助你定位并解决问题。如果有更具体的错误信息或进一步的技术细节,提供更多信息有助于更精确地诊断问题所在。