简体   繁体   English

Java:使用servlet刷新我的jsp

[英]Java: Refresh my jsp with the servlet

i'm working on my jsp page, and i have a link with 2 parameters: shop.jsp: 我正在我的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>

So i have 2 if in my servlet, to work on the two parameters: shop.java: 所以我有2个,如果在我的servlet中,要处理两个参数: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);
}

But i want to refresh my page after clicked on the lick with the 2 parameters because in my shop.jsp page i have a value: ${tokens}, which it doesn't refresh, because when i click on the link i still on th eurl with the 2 parameters. 但是我想用2个参数单击lick后刷新页面,因为在shop.jsp页面中,我有一个值:$ {tokens},它不会刷新,因为当我单击链接时,我仍然用2个参数发送。

So how i can refresh the page, after clicking on the link ? 那么,单击链接后如何刷新页面?

Thanks! 谢谢!

I did: 我做了:

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);

But i get an error: Cant use forward after response getted 但是我得到一个错误:响应得到后不能继续使用

I found an anoher question on stackoverflow, and i added a return;: 我在stackoverflow上发现了另一个问题,并添加了一个return ;:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM