如何在提交表单后将一个 jsp 页面的值获取到两个不同的 jsp 页面?

How to get values from one jsp page into two different jsp pages after submitting the form?

我有 5 jsp 页,每页都有表格。当我单击每个页面上的提交按钮时,表单将提交给 servlet(Reg),并且值存储在 class(bean)中。我使用 requestdispatcher 从 step2 中的 step1 获取文本字段,同样在 step3 中获取 step2 值,依此类推。

现在我想要 step4.jsp 中的文本字段 dob 和 regDate(在我的 step1.jsp 中)的值。我怎么做?下面是我编写的代码示例。

step1.jsp

<div>
<form name="step1">
<input type="text" name="dob" id="dob">
<input type="text" name="regDate" id="regDate">
<input type="submit" name="step1nxt" value="submit">
</form>
</div>

Step4.jsp

<div>
<form name="step4">
<input type="text" name="dod" id="dod">
<input type="submit" name="step4nxt" value="submit">
</form>
</div>

Reg.java(小服务程序)

if(step1nxt!=null){
        //call function to set values in bean
        request.getRequestDispatcher("step2.jsp").forward(request,response);
    }
    if(step2next!=null){
    //call function to set values
        request.getRequestDispatcher("step3.jsp").forward(request,response);
    }
    //similar 'if' statement for other pages
    if(step4.nxt!=null){
    //call function to set values
        request.getRequestDispatcher("step5.jsp").forward(request,response);
    }

bean.java

String dob;
    String regDate;
    //getters and setters
    //function to setvalues of dob and regDate
    //function to print the values

您可以使用每个表单中的隐藏字段将值传递给下一个 jsp,而不是将其存储在会话范围内。所以第 2 步看起来像这样

<div>
<form name="step2">
    <input type="hidden" value='<%=request.getParameter("dob")%>' name="dob" id="dob"/>
    <input type="hidden" value='<%=request.getParameter("regDate")%>' name="regDate" id="regDate"/>
    <input type="submit" name="step1nxt" value="submit">
</form>
</div>

请注意,在 jsp 中使用 scriptlet 已被弃用,因此您应该考虑使用 MVC 框架,例如 Struts2 或 Spring MVC

另一种方法是将值存储在所有主要浏览器都支持的 localStorage 中,您可以存储至少 5 Mb。

或者您也可以使用 cookies