java如何在将表单提交到servlet后将原始JSP保存在URL中?
我有一份数据。带有表单和servlet(/myservlet)的jsp,该servlet处理该表单并将结果返回给数据。jsp
Servlet包含以下部分:
String redir = "/data.jsp";
ServletContext sc = getServletContext();
RequestDispatcher rd = sc.getRequestDispatcher(redir);
rd.forward(request,response);
return;
有没有办法在URL中保留JSP而不是servelt? 比如说,
http://example.com/data.jsp 表单提交后,加载JSP内容时URL更改为: http://example.com/myservlet
是否可以保存数据。jsp一直在URL中,这样myservlet就不会出现在URL中了
# 1 楼答案
正如您所提到的,最好使用ajax。在表单提交时进行AJAX调用。将数据提交到上述servlet并返回所需的数据。在页面上处理此响应
对于浏览器。提交时冻结所有表单字段,并显示模式等待gif。删除ajax响应事件上的gif并显示响应数据
# 2 楼答案
您可以执行重定向而不是转发:
如果需要使用绝对路径,请记住,使用此方法时,以
/
开头的路径相对于服务器根,而不是webapp根,因此需要在上下文路径前加前缀,例如:编辑:如果您希望在提交表单之前和之后保持相同的URL,而不丢失提交的值,那么以另一种方式进行操作会更容易,并且总是首先在URL中调用servlet,然后转发到JSP
要确定您是处于“提交”模式还是仅处于“显示”模式(空白表格),您可以检查是否存在提交按钮作为参数,例如:
这实际上是model-view-controller pattern的基础,servlet充当控制器,JSP充当视图。控制器总是首先被调用,并将请求转发到适当的视图或JSP