在doPost()之后保留相同的URL参数

时间:2018-01-13 02:36:40

标签: jsp servlets

我有一个jsp页面,根据url列出信息。 例如,url可以是: “http://localhost:8080/group?ID=27” 并且jsp将列出这个特定“组”的所有“人”。

在这个Jsp页面(/WEB-INF/views/group.jsp)中,我有一个表单来添加一个新的“人”。 我只想要,在提交表单并在数据库中添加用户之后,我回到第一个网址:“http://localhost:8080/group?ID=27”,再次使用新用户查看列表。

在我的doPost()方法中,我有这个:

public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {

    InfoUser infoUser = new InfoUser();
    infoUser.setName(request.getParameter("name"));
    infoUser.setGroup_id(Integer.parseInt(request.getParameter("group_id")));
    infoUser.setDescription(request.getParameter("description"));
    infoUserDao.add(infoUser);

    this.getServletContext().getRequestDispatcher("/WEB-INF/views/group.jsp").forward(request,response);

}

但是当然,在doPost()方法之后,我回到group.jsp,它有这个url:“http://localhost:8080/group

有没有在发布后回到“http://localhost:8080/group?ID=27”? 谢谢你的帮助

2 个答案:

答案 0 :(得分:1)

您可以将用户重定向到正确的地址(这需要另外请求):

response.sendRedirect("/group?ID=27");

或者,您可以在页面加载后使用JavaScript更新浏览器中的URL:

window.history.pushState("object or string", "Title", "/group?ID=27");

答案 1 :(得分:0)

为了您的信息,这是我用来解决问题的代码:

public void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException {
    InfoPoint infoPoint = new InfoPoint();
    infoPoint.setName(request.getParameter("name"));
    infoPoint.setLength_id(Integer.parseInt(request.getParameter("length_id")));

    infoPoint.setDescription(request.getParameter("description"));
    infoPointDao.ajouter(infoPoint);

    int ID = infoPoint.getLength_id();
    request.setAttribute("infoPoints", infoPointDao.lister(ID));

    response.sendRedirect("/points?ID="+ID);
}

希望有一天能帮助别人;)