【问题标题】:Jsp reloading page not workingJsp重新加载页面不起作用
【发布时间】:2014-05-02 09:18:02
【问题描述】:

当我第一次以表单操作提交数据时,我有注册页面,我将其发送到 servlet 在提交我的网址之前是 **Localhost:\Shop

**

<form action="signup" method="post">

在这个 servlet 中,我在提交它后有业务逻辑,我将它转发到我的索引页面

` request.getrequestdispatcher("index.jsp").forward(request,response);

现在我的网址是 本地主机:\Shop\SignUp 现在,当我刷新此页面时,它会给我警告

确认表解析

如何避免这个问题????

【问题讨论】:

  • 您是通过javascript提交表单吗?
  • 不,先生,我在 jsp 中提交
  • 你确定它给“确认表解析”或确认表重新提交?
  • 看我的回答,如果您需要任何解释,请更新问题

标签: java jsp servlets web web-development-server


【解决方案1】:

这是因为您向服务器发布了与使用 RequestDispatcher 方法相同的请求。

你需要了解RequestDispatcher.forward() vs HttpServletResponse.sendRedirect()之间的区别

所以你需要使用sendRedirect()方法来创建一个新的请求

response.sendRedirect("index.jsp");

希望这会有所帮助!

【讨论】:

  • 先生,但如果使用 Sendredirect,我将在请求中设置属性,我将无法设置属性
  • 确实可以设置属性。但是您需要将该值作为 query string 的值传递。 (即)但是一个坏主意。但是您会收到 forwarding 的警告窗口,但这不会影响您的结果
  • 实际上我有函数 Boolean add_customer() 如果记录成功插入,则返回 true 我通过在请求中设置属性将该真实值传递给 jsp 页面。如果记录,我将在主页上生成一个弹出窗口插入成功。
  • 因此您不希望每次重新加载后都显示弹出窗口,因此您可以像这样在查询字符串中设置值response.sendRedirect("index.jsp?booVal="+valueHere);
  • 好的,我该从 url 中获取那个值
猜你喜欢
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 2017-11-03
  • 2017-11-11
  • 2013-06-21
  • 2017-02-25
  • 1970-01-01
  • 2015-11-02
相关资源
最近更新 更多