美文网首页
Servlet会话管理

Servlet会话管理

作者: Vsion8980 | 来源:发表于2018-10-12 12:01 被阅读0次

模拟会话

首先通过一个例子模拟一下会话,此时有一个问答网页,分为两页作答,然后提交给服务器。

在目前所学的知识中,你能采取的方法只有:

  1. 将第一页的数据上传到服务器,然后再将第二页的数据上传给服务器。
  2. 将第一页要发送到服务器的数据转发至第二页,然后和第二页数据一并上传至服务器。

1.方法要两次与服务器沟通,且服务器是无法判断第一次的数据与第二次的联系。所以只能使用方法2.

方法2.的执行:

1.第一页的数据使用submit提交至第二页
1.第二页请求获取变量,使用类型为hiddeninput标签跟第二页数据存储在一块
1.一并提交给服务器

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "Servlet",urlPatterns = "/questionServlet")
public class questionServlet extends HttpServlet {
    protected void res(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String page = request.getParameter("page"); //使用page变量区分页数
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<form action='questionServlet' method='post'>");
        

        //第一页
        if(page==null){

            out.println("一:<input type='text' name='p1q1'>");
            out.println("<input type='submit' name='page' value='下一页'>");


        }
        //第二页
        else if (page.equals("下一页")){
            String p1q1 = request.getParameter("p1q1");
            out.println("二:<input type='text' name='p2q1'>");
            out.println("<input type='hidden' value='"+p1q1+"'name='p1q1'>");//使用hidden类型input标签保存数据
            out.println("<input type='submit' name='page' value='提交'>");//一并提交
        }

        else if (page.equals("提交")){
            out.println(request.getParameter("p1q1")+"<br>"+request.getParameter("p2q1"));
        }
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        res(request,response);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

结果截图:


第一页界面
模拟上传服务器

思考:
即便是使用hidden,只要是前端语言,总会在浏览器中留下痕迹,例如,在源代码中查看到数据:

第二页HTML源代码

所以此方法存在安全隐患,但可以用于一些对隐私要求不高的场景中

相关文章

  • Servlet会话管理

    模拟会话 首先通过一个例子模拟一下会话,此时有一个问答网页,分为两页作答,然后提交给服务器。 在目前所学的知识中,...

  • Servlet 会话

    在网络的七层模型中,会话层位于传输层之上,它定义如何开始、控制和结束一个会话。七层模式目前仅仅处于理论阶段,但是W...

  • java笔记2-servlet-会话管理

    cookie增删改查 增 查 改(除了value,MaxAge其它都应该保持不变,负责浏览器会认为不是同一个coo...

  • Session(会话):用来维持“长连接”

    在 Java Servlet 中可以通过多种途径来实现会话: like: CookiesHttpSession A...

  • day12_编码实战&Jsp基础

    1课程回顾 会话管理 1)会话管理:管理浏览器和服务器之间的会话过程中产生的会话数据 2)Cookie技术:会话数...

  • 会话管理

    会话? 使用Cookie实现会话管理 HttpSession HttpSession原理

  • 会话管理

    会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会...

  • 会话管理

    一、会话的必要性:客户跟踪 Http协议是无状态协议,Web服务器没有短期记忆。在有些应用场景(例如:购物车)下,...

  • 会话管理

    1.加载web应用资源文件 这两句在Servlet中是等价的。 在servlet中,只要是路径就要写/。 思考:目...

  • 会话管理

    1、什么是会话管理? 我们都知道HTTP协议是无状态协议。啥意思呢?就是请求完成连接就断开了,下次再请求的时...

网友评论

      本文标题:Servlet会话管理

      本文链接:https://www.haomeiwen.com/subject/jswwaftx.html