【发布时间】:2015-05-21 13:07:10
【问题描述】:
我正在处理我的 jsp 页面,并且我有一个包含 2 个参数的链接: shop.jsp:
<a href="<c:url value="/boutique?achat=${module.id}&token=${module.token}" />" class=" modal-action modal-close waves-effect waves-green btn-flat">Oui</a>
所以我的 servlet 中有 2 个 if 来处理两个参数: shop.java:
public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException
{
httpServletRequest.setAttribute("page", "boutique");
HttpSession session = httpServletRequest.getSession(true);
int tokens = moduleDAO.getTokens(session.getAttribute("sessionPlayer"));
List<Module> modules = moduleDAO.select();
httpServletRequest.setAttribute("modules", modules);
httpServletRequest.setAttribute("tokens", tokens);
if(httpServletRequest.getParameter("achat") != null)
{
inventoryDAO.addInventory(session.getAttribute("sessionPlayer"), Integer.parseInt(httpServletRequest.getParameter("achat")));
}
if(httpServletRequest.getParameter("token") != null)
{
inventoryDAO.changeToken(session.getAttribute("sessionPlayer"), Integer.parseInt(httpServletRequest.getParameter("token")));
}
getServletContext().getRequestDispatcher("/WEB-INF/shop.jsp").forward(httpServletRequest, httpServletResponse);
}
但是我想在点击带有 2 个参数的 lick 后刷新我的页面,因为在我的 shop.jsp 页面中我有一个值:${tokens},它不会刷新,因为当我点击链接时我仍然使用 2 个参数。
那么我如何在点击链接后刷新页面?
谢谢!
我做到了:
if(httpServletRequest.getParameter("token") != null)
{
inventoryDAO.changeToken(session.getAttribute("sessionPlayer"), Integer.parseInt(httpServletRequest.getParameter("token")));
String referer = httpServletResponse.getHeader("/WEB-INF/boutique.jsp");
httpServletResponse.sendRedirect(referer);
}
getServletContext().getRequestDispatcher("/WEB-INF/shop.jsp").forward(httpServletRequest, httpServletResponse);
但我得到一个错误:得到响应后无法使用转发
【问题讨论】:
-
@Nivedita 我想在 if 之后刷新
-
我认为你可以使用使用Referer:
String referer = request.getHeader("Referer"); response.sendRedirect(referer); -
@Nivedita 我做了: if(httpServletRequest.getParameter("token") != null) { inventoryDAO.changeToken(session.getAttribute("sessionPlayer"), Integer.parseInt(httpServletRequest.getParameter("令牌"))); String referer = httpServletResponse.getHeader("/WEB-INF/boutique.jsp"); httpServletResponse.sendRedirect(referer); } getServletContext().getRequestDispatcher("/WEB-INF/shop.jsp").forward(httpServletRequest, httpServletResponse);错误:收到响应后无法使用转发
-
你能在问题中更新这个吗?评论中不清楚。
-
也许你可以在else部分写forward语句。您不想同时刷新和转发?