【问题标题】:Java: Refresh my jsp with the servletJava:使用 servlet 刷新我的 jsp
【发布时间】: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语句。您不想同时刷新和转发?

标签: java jsp servlets


【解决方案1】:

我在stackoverflow上发现了另一个问题,我添加了一个return;:

if(httpServletRequest.getParameter("token") != null) {
inventoryDAO.changeToken(session.getAttribute("sessionPlayer"), Integer.parseInt(httpServletRequest.getParameter("token")));
httpServletResponse.sendRedirect("/galactium/boutique");
return;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    • 2016-12-09
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多