Если это действительно ваша проблема only
проблема в том, что я делаю, эти форварды не помещают меня в index.jsp, который находится вкорневая папка моего проекта, у меня все еще есть в моей адресной строке Projekt / Hai.
, тогда я должен вас разочаровать: это полностью по спецификации.Форвард в основном говорит серверу использовать данную JSP для представления результатов.Это не говорит клиенту, чтобы отправить новый HTTP-запрос на данный JSP.Если вы ожидаете изменения в адресной строке клиента, вы должны указать клиенту отправить новый HTTP-запрос.Вы можете сделать это, отправив перенаправление вместо форварда.
Итак, вместо
RequestDispatcher d=request.getRequestDispatcher("/index.jsp");
System.out.println("z");
d.forward(request, response);
do
response.sendRedirect(request.getContextPath() + "/index.jsp");
Альтернативой является избавление от/index.jsp
URL в целом и используйте /Hai
URL все время.Вы можете добиться этого, спрятав JSP в папке /WEB-INF
(чтобы конечный пользователь никогда не мог открыть ее напрямую, и вынужден использовать для этого URL-адрес сервлета), а также реализовать doGet()
сервлета для отображения JSP.:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
}
Таким образом, вы можете просто открыть http://localhost:8080/Project/Hai и увидеть выходные данные страницы JSP, и форма просто отправит на тот же URL, поэтому URL в адресной строке браузерав принципе не изменится.Я бы, возможно, только изменил /Hai
на что-то более разумное, например /login
.
См. Также: