Java 从JSP-one到servlet-one获取值并将其发送到另一个JSP和servlet

Java 从JSP-one到servlet-one获取值并将其发送到另一个JSP和servlet,java,jsp,servlets,Java,Jsp,Servlets,我有一个jsp,比如index.jsp,它有一个表单,用户在其中输入详细信息。我使用one.servlet检索输入的详细信息,并验证输入的详细信息 接下来,我必须将这些值传递给另一个jsp,比如results.jsp,它将在网页中显示结果并请求确认 jsp将把这些详细信息发送到另一个名为two.servlet的servlet,并将这些值存储在数据库中 所以我想知道使用session是否能帮助我完成任务我可以理解您的问题,但我认为您不需要两个单独的servletsone进行验证,另一个用于保存,而

我有一个jsp,比如index.jsp,它有一个表单,用户在其中输入详细信息。我使用one.servlet检索输入的详细信息,并验证输入的详细信息

接下来,我必须将这些值传递给另一个jsp,比如results.jsp,它将在网页中显示结果并请求确认

jsp将把这些详细信息发送到另一个名为two.servlet的servlet,并将这些值存储在数据库中


所以我想知道使用session是否能帮助我完成任务

我可以理解您的问题,但我认为您不需要两个单独的servletsone进行验证,另一个用于保存,而是在执行验证后,您可以将其保存在db上,然后通过session或查询字符串在result.jsp中显示结果

最常见的模式如下:

[servlet最终为包含表单的JSP准备数据] JSP将显示该表单 servlet从表单中获取元素并处理它们并验证输入 如果输入不可接受,则转发回第一个JSP 如果输入可以接受,则保存到数据库并将*重定向到另一页

如果你想添加一个确认阶段,你应该把它放在中间:

首先显示表单 ValidationServlet验证输入,如果确定,则转发给确认JSP 确认JSP显示数据和一个非常简单的表单Ok/Cancel 最后一个servlet接收第二个表单的结果,将数据保存在数据库中,并像简单的情况一样重定向。 第二种模式中的难点在于必须将输入数据传递给最终的servlet。会话是一个选项,但如果用户执行任何其他操作,例如直接从url栏或其收藏夹将url传递到应用程序的另一部分,则必须始终从会话中删除过时数据。即使它使用更多的带宽,我更喜欢在隐藏字段中传递所有相关数据

由于它更复杂,而且用户必须首先单击submit按钮,因此确认阶段通常被忽略。如果你真的需要,你可以看看专门的框架,比如SpringWebFlow

但我必须承认这一切正是我喜欢的方式


*此POST redirect GET模式避免了当用户按下返回箭头时,浏览器询问用户是否希望再次发送数据

为什么不采用HTML方式发布值或通过GET参数传递值?当JSP字段可用于请求对象时,为什么要进行会话?只需使用request.setAttribute将值从servlet传递给JSP即可。除非您有其他标准,否则请尽量避免在此处进行会话!但我希望用户确认他输入的详细信息,以便您可以在视图部分(我指的是html部分)中执行