不要转发到另一页

时间:2016-06-17 18:53:05

标签: java servlets

我对doPost方法有疑问。 我制作了doPost方法,在db上执行查询。

代码:

try{


         Statement st1 = con.createStatement();

        PreparedStatement ps1=con.prepareStatement("INSERT into nota (Id_utilizator,Nume_reteta,Nota) values ((SELECT Id_user from user where E_mail = '"+request.getSession().getAttribute("email")+"'),(SELECT Nume FROM reteta where Nume = '"+retetaidd+"'),('"+nota+"'))");
         ps1.executeUpdate();

        response.sendRedirect(request.getRequestURI());   

        st1.close();
        con.close();
        ps1.close();

    }
    catch (Exception e2)
    {
      e2.printStackTrace();
    } 

现在我希望在执行查询时页面不会重定向到另一个页面,我希望保持在同一页面上并执行查询。 我知道我应该替换

request.getRequestDispatcher("/health.jsp").forward(request, response);

但我不知道什么。有人可以帮助我吗?谢谢

3 个答案:

答案 0 :(得分:0)

您可以使用HttpServletrequest.getRequestURI重定向同一页

httpResp.sendRedirect(httpReq.getRequestURI());

UPDATE1:

然后在请求范围中设置必要的数据,并使用RequestDispatcher的forward()方法来控制所需的JSP。

request.setAttribute("results", results);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);

如需完整演示,请转至Servlet Wiki

归功于@ BalusC

答案 1 :(得分:0)

如果您想在没有页面重新加载的情况下执行查询,那么您可以使用AJAX。否则你可以像这样使用RequestDispatcher

request.setAttribute("AttributeName", "AttributeValue");
request.getRequestDispatcher("/health.jsp").forward(request, response);

此处health.jsp与请求来自的位置和请求的位置相同。

答案 2 :(得分:0)

您可以做的只是将代码放在下面替换response.sendRedirect(request.getRequestURI());

String previousURL = request.getHeader("referer");
response.sendRedirect(previousURL);

这可能会解决您的问题