Отображение неверного URL-адреса в строке поиска в браузере из-за сервлета при навигации по входу, выходу из системы, странице индекса - PullRequest
0 голосов
/ 03 апреля 2019

Что я хочу узнать, так это исправить проблему с URL путем навигации по страницам.

Когда я захожу на страницу входа (http://localhost:1112/BookStoreWebsiteProject/backend/login.jsp), он открывает index.jsp, но его URL-адрес отображается как http://localhost:1112/BookStoreWebsiteProject/backend/login.

Когда я вхожу в индекс jsp, URL-адрес которого определен как http://localhost:1112/BookStoreWebsiteProject/backend/login, он открывает форум входа, URL-адрес которого http://localhost:1112/BookStoreWebsiteProject/backend/logout

Сервлет входа

@WebServlet("/backend/login")
public class AdminLoginServlet extends HttpServlet {
...
String page = "/backend/";
             RequestDispatcher requestDispatcher = request.getRequestDispatcher(page);
             requestDispatcher.forward(request, response);

Сервлет выхода из системы

@WebServlet("/backend/logout")
public class AdminLogoutServlet extends HttpServlet {
...
String page = "login.jsp";
        RequestDispatcher requestDispatcher = request.getRequestDispatcher(page);
        requestDispatcher.forward(request, response);

Домашний сервлет

@WebServlet("/backend/")
public class AdminHomeServlet extends HttpServlet {
...

String page = "index.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(page);
        dispatcher.forward(request, response);

Как это исправить?

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Мой ответ

String page = request.getContextPath() + "/backend/login.jsp";
response.sendRedirect(page);

String page = request.getContextPath() + "/backend/logout.jsp";
response.sendRedirect(page);

String page = request.getContextPath() + "/backend/index.jsp";
response.sendRedirect(page);
1 голос
/ 03 апреля 2019

Чтобы ответить на ваш вопрос о разработке части URL. Обычно это делается с использованием Java-фильтров. В вашем случае вы можете сделать что-то подобное с response.sendRedirect:

Логин сервлет

/ backend / login -> backend / index.jsp

@WebServlet("/backend/login")
public class AdminLoginServlet extends HttpServlet {
...
String page = "/index.jsp";
response.sendRedirect(page);

Сервлет выхода из системы

/ backend / logout -> backend / logout.jsp

@WebServlet("/backend/logout")
public class AdminLogoutServlet extends HttpServlet {
...
String page = "logout.jsp";
response.sendRedirect(page); 

Домашний сервлет

Обратите внимание, что вы должны сделать эту часть в вашем web.xml

 <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

Дайте мне знать, если это помогло.

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