无论cookie有没有禁用,HttpSession都有效
  1. package com.test;
  2.  
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import java.io.IOException;
  9. import java.io.PrintWriter;
  10.  
  11. @WebServlet("/page1")
  12. public class Page1 extends HttpServlet {
  13. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  14. throws ServletException, IOException {
  15. request.setCharacterEncoding("UTF-8");
  16. response.setContentType("text/html;charset=UTF-8");
  17.  
  18. PrintWriter out = response.getWriter();
  19. out.println("<!DOCTYPE html>");
  20. out.println("<html>");
  21. out.println("<head>");
  22. out.println("<meta charset='UTF-8'>");
  23. out.println("<title>问卷调查</title>");
  24. out.println("</head>");
  25. out.println("<body>");
  26.  
  27. String url = response.encodeURL("page2");
  28. out.println("<form action=\"" + url + "\" method=\"get\">");
  29. out.println("問題一:<input type='text' name='p1q1'><br>");
  30. out.println("問題二:<input type='text' name='p1q2'><br>");
  31. out.println("<input type='submit' name='page' value='提交'>");
  32. out.println("</form>");
  33. out.println("</body>");
  34. out.println("</html>");
  35. out.close();
  36. }
  37.  
  38. @Override
  39. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  40. throws ServletException, IOException {
  41. processRequest(request, response);
  42. }
  43.  
  44. @Override
  45. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  46. throws ServletException, IOException {
  47. processRequest(request, response);
  48. }
  49. }
  1. package com.test;
  2.  
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.http.HttpSession;
  9. import java.io.IOException;
  10. import java.io.PrintWriter;
  11.  
  12. @WebServlet("/page2")
  13. public class Page2 extends HttpServlet {
  14. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  15. throws ServletException, IOException {
  16. request.setCharacterEncoding("UTF-8");
  17. response.setContentType("text/html;charset=UTF-8");
  18. HttpSession session = request.getSession();
  19.  
  20. PrintWriter out = response.getWriter();
  21. out.println("<!DOCTYPE html>");
  22. out.println("<html>");
  23. out.println("<head>");
  24. out.println("<meta charset='UTF-8'>");
  25. out.println("<title>问卷调查</title>");
  26. out.println("</head>");
  27. out.println("<body>");
  28.  
  29. String url = response.encodeURL("page3");
  30. out.println("<form action=\"" + url + "\" method=\"get\">");
  31. System.out.println("第一个sessionId: " + session.getId());
  32. session.setAttribute("p1q1", request.getParameter("p1q1"));
  33. session.setAttribute("p1q2", request.getParameter("p1q2"));
  34. out.println("問題三:<input type='text' name='p2q1'> <br>");
  35. out.println("<input type='submit' name='page' value='提交'>");
  36. out.println("</form>");
  37. out.println("</body>");
  38. out.println("</html>");
  39. out.close();
  40. }
  41.  
  42. @Override
  43. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  44. throws ServletException, IOException {
  45. processRequest(request, response);
  46. }
  47.  
  48. @Override
  49. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  50. throws ServletException, IOException {
  51. processRequest(request, response);
  52. }
  53. }
  1. package com.test;
  2.  
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import javax.servlet.http.HttpSession;
  9. import java.io.IOException;
  10. import java.io.PrintWriter;
  11.  
  12. @WebServlet("/page3")
  13. public class Page3 extends HttpServlet {
  14. protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  15. throws ServletException, IOException {
  16. request.setCharacterEncoding("UTF-8");
  17. response.setContentType("text/html;charset=UTF-8");
  18. HttpSession session = request.getSession();
  19.  
  20. PrintWriter out = response.getWriter();
  21. out.println("<!DOCTYPE html>");
  22. out.println("<html>");
  23. out.println("<head>");
  24. out.println("<meta charset='UTF-8'>");
  25. out.println("<title>问卷调查</title>");
  26. out.println("</head>");
  27. out.println("<body>");
  28.  
  29. System.out.println("第二个sessionId: " + session.getId());
  30. out.println(session.getAttribute("p1q1") + "<br>");
  31. out.println(session.getAttribute("p1q2") + "<br>");
  32. out.println(request.getParameter("p2q1") + "<br>");
  33.  
  34. out.println("</form>");
  35. out.println("</body>");
  36. out.println("</html>");
  37. out.close();
  38. }
  39.  
  40. @Override
  41. protected void doGet(HttpServletRequest request, HttpServletResponse response)
  42. throws ServletException, IOException {
  43. processRequest(request, response);
  44. }
  45.  
  46. @Override
  47. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  48. throws ServletException, IOException {
  49. processRequest(request, response);
  50. }
  51. }

测试地址

  127.0.0.1:8080/page1

url override and HttpSession implements session for real的更多相关文章

  1. url override and HttpSession implements session for form

    url 重写结合HttpSession实现会话管理之 form 提交 package com.test; import javax.servlet.ServletException; import j ...

  2. url override and HttpSession implements session

    背景 HttpSession默认使用Cookie存储Session ID,如果在用户禁用浏览器Cookie的功能后,仍打算运用HttpSession来进行会话管理,那么可以搭配URL重写来实现. 实现 ...

  3. HttpSession implements session

    体验 使用HttpSession进行会话管理,完全可以忽略HTTP无状态的事实. HttpSession会话管理原理 使用HttpSession进行会话管理十分方便,让Web应用程序看似可以“记得”浏 ...

  4. url override implements session

    url 重写实现会话概述 URL重写是对GET请求参数的应用,当服务器响应浏览器上一次请求时,将某些相关信息以超链接方式响应给浏览器,超链接中包括请求参数信息. 特点:URL必须以GET方式发送请求. ...

  5. 隐藏表单域、URL重写、cookie、session

    隐藏表单域: 隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的.当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上. 代码格式:<input t ...

  6. Django学习笔记之URL与视图cookie和session

    cookie和session cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了 ...

  7. hidden field implements session

    隐藏域实现会话管理概述 如果你正在制作一个网络问卷,由于问卷内容很长,因此必须分几个页面,上一页面作答完后,必须请求服务器显示下一个页面. 但是在HTTP协议中,服务器并不会记得上一次请求的状态.既然 ...

  8. cookie implements session

    cookie实现会话 服务器调用response.addCookie()设置set-cookie响应头后,浏览器收到这个响应头与数值后,会将它以文件的形式存储于本地PC上.当浏览器再次访问同一Web服 ...

  9. session 机制和 httpsession 详解 (转载)

    https://www.cnblogs.com/bjanzhuo/archive/2013/02/27/3575884.html 一.术语session 在我的经验里,session这个词被滥用的程度 ...

随机推荐

  1. 让Sublime Text3支持Less

    1.安装Sublime 插件    (1)安装LESS插件:因为Sublime不支持Less语法高亮,所以,先安装这个插件,方法: ctrl+shift+p>install Package> ...

  2. 手把手教你整合最优雅SSM框架

    我们看招聘信息的时候,经常会看到这一点,需要具备 SSM 框架的技能, SpringMVC 可以完全替代 Struts,配合注解的方式,编程非常快捷,而且通过 restful 风格定义 url,让地址 ...

  3. #ifdef、#ifndef、#else、#endif执行条件编译

         我们开发的程序不只在pc端运行,也要在移动端运行.这时程序就要根据机器的环境来执行选择性的编译,如对PC端编译PC端的程序,对移动端编译移动端的程序,这里我们就可以用两组条件编译.     ...

  4. 全网最详细的zkfc启动以后,几秒钟以后自动关闭问题的解决办法(图文详解)

    不多说,直接上干货! 问题详情 情况描述如题所示,zkfc启动以后,几秒钟以后自动关闭. 解决办法: 1.检查下每台机器的时间是否同步: 2.检查下每台机器的防火墙是否关闭: 3.查看zkfc的日志路 ...

  5. 【Java初探实例篇01】——Java语言基础

    示例系列,将对每节知识辅以实际代码示例,通过代码实际编写,来深入学习和巩固学习的知识点. IDE:intellij IDEA: 语言:Java 本次示例:Java语言基础知识的应用. 创建包day_4 ...

  6. Linux中locate命令的实践总结

    locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案.其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了.在一般的 di ...

  7. [转]magento性能优化的教程(非常详细)

    本文转自:https://www.sypopo.com/post/kMQE8dERoV/ 前面优化 mod_deflate模块,将text. css 和 javascript 先进行压缩再发送到浏览器 ...

  8. 基于asp.net mvc的近乎产品开发培训课程(第二讲)

    演示产品源码下载地址:http://www.jinhusns.com/Products/Download 

  9. bind(port)与.localAddress(new InetSocketAddress(port))区别

    两者并没有什么区别,最后都会调用AbstractBootstrap这个抽象类的bind()方法.

  10. Java三大特性:封装,继承,多态

    java提高篇(一)-----理解java的三大特性之封装 概念: 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独 ...