.RequestDispatcher.forward()
Он работает на стороне сервера. При использовании функции front() механизм сервлетов передает HTTP-запрос от текущего сервлета или JSP другому сервлету, JSP или обычному HTML-файлу, то есть ваша форма отправляется в файл .jsp в виде файла. .jsp использует функцию перенаправления на b.jsp. В это время вся информация, отправленная формой, может быть получена в b.jsp, и параметры передаются автоматически.
Однако функцияward() не может перенаправить на файл jsp с рамкой. В то же время функцияward() не может быть передана с параметрами в конце, например servlet?name=frank. . Если это не сработает, вы можете передать ответ в программе .setAttribute("name",name) для перехода на следующую страницу.
URL-адрес в адресной строке браузера остается неизменным после перенаправления.
Пример: перенаправление в файле сервлета
КОД
public void doPost (запрос HttpServletRequest, ответ HttpServletResponse)
выдает ServletException,IOException
{
response.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = null;
rd = sc.getRequestDispatcher("/index.jsp");
rd.forward(запрос, ответ);
2.response.sendRedirect()
Он работает в браузере пользователя. sendRedirect() может передавать параметры, такие как servlet?name=frank, на следующую страницу. В то же время он может перенаправить на другой хост, и в адресной строке браузера появится дубликат. URL-адрес целевой страницы.
sendRedirect() может перенаправлять файлы jsp с фреймами.
Пример: перенаправление в файле сервлета
КОД
public void doPost (запрос HttpServletRequest, ответ HttpServletResponse)
выдает ServletException,IOException
{
response.setContentType("text/html; charset=gb2312");
response.sendRedirect("/index.jsp");
}