你的代码有问题。如果你把代码贴出来就更好了。我会逐一回答你的问题。
1.是的ServletB可以再次将请求转发回servletA我是
在下面发布示例代码
ServletA GET方法
urlpatter=“sa”
RequestDispatcher view=request.getRequestDispatcher("form.jsp");
view.forward(request, response);
表单.jsp
<body>
<form action="./sb">
<input type="text" name="fn" />
<input type="submit" value="Submit" />
</form>
<%= "fn : "+(String)session.getAttribute("fn") %>
</body>
ServletB GET方法
urlpatter=“sb”
String fn = request.getParameter("fn");
request.getSession().setAttribute("fn",fn);
RequestDispatcher view=request.getRequestDispatcher("sa");
view.forward(request, response);
2.如何在没有框架的情况下使用MVC处理表单
-这里V代表视图。它是jsp或html页面。你在里面展示了一切。此处不应进行任何处理。
-C代表控制器。它是您的servlet。表单中提交的所有数据都由servlet收集。这里也没有处理,只是收集所有数据。然后创建一个对象,一个纯Java类,它实际上是您的M,即模型类,它将处理数据并返回结果。在您的案例中,您应该将数据库部分作为一个Model类来处理,特别是使用DAO设计模式
-servlet将获取结果并将其传递到JSP或HTML页面以显示它。
你应该做什么
正如我从你的方法中理解的那样,这是错误的。您应该使用Ajax或使用Servlet 3.0的异步请求处理。我的意思是,在处理完成后,您不应该将请求转发回ServletA,即jsp。相反,您应该向ServletB生成一个异步请求以提交数据。现在,当生成结果时,ServletB将响应作为JSON字符串发送,该字符串由javascript显示在form.jsp页面上