URL-адрес ниже, первый содержание в выбранном ответе описывает скрытие JSP.
Скрытые возможности JSP / Servlet
Пока я понимаю, что могу помещать файлы jsp в каталог / WEB-INF. Таким образом, это предотвращает прямой доступ пользователя, например http://test.com/WEB-INF/register.jsp
(return 404)
Я думал, что понимаю, но не понимаю и хочу описать лучше, поэтому Я открываю вопрос здесь.
У меня есть, скажем, 2 файла jsp, как показано ниже.
webapps / ROOT / home.jsp
webapps / ROOT / WEB-INF / register.jsp
ПРИМЕЧАНИЕ: / go_register
сопоставляется с классом сервлета Register
в web.xml (DD)
home.jsp
Go to register.jsp
register.jsp
Итак ... с регистра .jsp находится в / WEB-INF /, доступ к нему имеет только RequestDispatcher. Это означает, что мне нужно создать сервлет для пересылки запроса.
public class Register extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String address = "/WEB-INF/register.jsp";
request.getRequestDispatcher(address).forward(request, response);
}
}
Но это выглядит неправильно. Если я хочу добавить страницу входа /WEB-INF/login.jsp в home.jsp , чтобы получить доступ к login.jsp, мне нужно создать еще один сервлет только для перехода на страницу входа в систему ???
public class Login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String address = "/WEB-INF/login.jsp";
request.getRequestDispatcher(address).forward(request, response);
}
}
Я думаю, что использую эту технику неправильно. Может ли кто-нибудь объяснить, как использовать это скрытие jsp?