• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java中Cookie被禁用后Session追踪问题

java中Cookie被禁用后Session追踪问题

作者:wearetheworld1 字体:[增加 减小] 来源:互联网 时间:2017-05-28

wearetheworld1 通过本文主要向大家介绍了java session cookie,cookie session,cookie session区别,php cookie session,session.cookie path等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

一.服务器端获取Session对象依赖于客户端携带的Cookie中的JSESSIONID数据。如果用户把浏览器的隐私级别调到最高,这时浏览器是不会接受Cookie、这样导致永远在服务器端都拿不到的JSESSIONID信息。这样就导致服务器端的Session使用不了。

Java针对Cookie禁用,给出了解决方案,依然可以保证JSESSIONID的传输。

Java中给出了再所有的路径的后面拼接JSESSIONID信息。

在 Session1Servlet中,使用response.encodeURL(url) 对超链接路径拼接 session的唯一标识

 // 当点击 的时候跳转到 session2
    response.setContentType("text/html;charset=utf-8");
    //此方法会在路径后面自动拼接sessionId
    String path = response.encodeURL("/day11/session2");
    System.out.println(path);
    //页面输出
    response.getWriter().println("ip地址保存成功,想看 请<a href='" + path + "'>点击</a>");
</div>

二.在response对象中的提供的encodeURL方法它只能对页面上的超链接或者是form表单中的action中的路径进行重写(拼接JSESSIONID)。

如果我们使用的重定向技术,这时必须使用下面方法完成:其实就是在路径后面拼接了 Session的唯一标识 JSESSIONID。

 // 重定向到session2
    String path = response.encodeRedirectURL("/day11/session2");
    System.out.println("重定向编码后的路径:" + path);
    response.sendRedirect(path);
session2代码,获得session1传过来的ID
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 需求:从session容器中取出ip
    // 获得session对象
    HttpSession session = request.getSession();
    // 获取ip地址
    String ip = (String) session.getAttribute("ip");
    // 将ip打印到浏览器中
    response.setContentType("text/html;charset=utf-8");
    response.getWriter().println("IP:" + ip);
  }
session1代码
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 需求:将ip保存到session中
    // 获取session
    HttpSession session = request.getSession();
    // 获得ip
    String ip = request.getRemoteAddr();
    // 将ip保存到session中
    session.setAttribute("ip", ip);
    // 需求2:手动的将 session对应的cookie持久化,关闭浏览器再次访问session中的数据依然存在
    // 创建cookie
    Cookie cookie = new Cookie("JSESSIONID", session.getId());
    // 设置cookie的最大生存时间
    cookie.setMaxAge(60 * 30);
    // 设置有效路径
    cookie.setPath("/");
    // 发送cookie
    response.addCookie(cookie);
    // 当点击 的时候跳转到 session2
    // response.setContentType("text/html;charset=utf-8");
    // String path = response.encodeURL("/day11/session2");
    // System.out.println(path);
    // response.getWriter().println("ip地址保存成功,想看 请<a href='" + path + "'>点击</a>");
    // 重定向到session2
    String path = response.encodeRedirectURL("/day11/session2");
    System.out.println("重定向编码后的路径:" + path);
    response.sendRedirect(path);
  }
</div>

以上所述是小编给大家介绍的java中Cookie被禁用后Session追踪问题,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java中Cookie被禁用后Session追踪问题

相关文章

  • 2017-05-28Spring Boot实现邮件注册功能示例代码
  • 2017-05-28JAVA SFTP文件上传、下载及批量下载实例
  • 2017-05-28详解SpringBoot AOP 拦截器(Aspect注解方式)
  • 2017-05-28java 汉诺塔详解及实现代码
  • 2017-05-28关于javaWeb中405错误的解决方法
  • 2017-05-28javaweb中mysql数据库连接步骤方法及其实例
  • 2017-05-28Java生成随机数的方法
  • 2017-05-28Java方法重写_动力节点Java学院整理
  • 2017-05-28Java集合ArrayDeque类实例分析
  • 2017-05-28JAVA 多线程爬虫实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • springmvc实现简单的拦截器
    • 详解Spring中bean实例化的三种方式
    • 支付宝开发平台之第三方授权登录与获取用户信息
    • 详谈java线程与线程、进程与进程间通信
    • SpringBoot配置devtools实现热部署的方法
    • java连接mysql数据库的方法
    • 详解Spring中bean实例化的三种方式
    • java面试笔试需准备内容
    • javaWeb自定义标签用法实例详解
    • Spring Session实现分布式session的简单示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有