Чтобы использовать doPost, оставайтесь на той же странице - PullRequest
0 голосов
/ 21 февраля 2011

Привет, я работаю над веб-приложением с JSP и сервлетами.У меня есть страница, на которой есть кнопка.Я написал некоторый JavaScript для всплывающего небольшого окна при нажатии кнопки, а также он вызывает метод doPost.Код выглядит примерно так -

]
"<form name='downloadFrm1' method='post' action='S2VServlet' 
..  ..
"<input name='submitBtn' type='submit'  value='Download Files With Warnings' onClick="+popup+">\n"+

"</form><BR></div><p><BR></p> \n";

Однако я вызываю метод doPost только для выполнения внутренней работы.Я не хочу, чтобы родительская страница была перенаправлена ​​куда-либо.Но происходит то, что когда я нажимаю на кнопку, появляется маленькое всплывающее окно, но родительская страница также перемещается на пустую страницу.Как сделать так, чтобы родительская страница оставалась без изменений и не перенаправлялась?Код для doPost выглядит примерно так:

    public void doPost(HttpServletRequest p_req, HttpServletResponse p_res) throws IOException, ServletException {
        try {
            String downloadKey = p_req.getParameter(DOWNLOAD_KEY_ELEMENT);
            ....
            if (//put my condition)) {
//just set some internal value and return
                ....
                return;
            }

Ответы [ 2 ]

1 голос
/ 21 февраля 2011

Вы не можете сделать это без ajax (javascript). Стандартный цикл запроса / ответа требует изменения страницы.

Взгляните на jQuery . Вы можете сделать $.post("S2VServlet", {param:param}), который будет выполняться в фоновом режиме.

0 голосов
/ 11 июня 2012

Я думаю, вы можете завершить свой метод doPost, выполнив doGet. Это «повторит» страницу, но пользователь думает, что он не двигался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...