Получение объекта RequestDispatcher
Чтобы получить доступ к объекту RequestDispatcher, используйте метод
getRequestDispatcher класса ServletContext. Этот метод в качестве аргумента берет URL запрашиваемого ресурса. Формат этого аргумента последовательность имен директорий разбитых знаком слэш ("/"), и именем ресурса на конце. Вот следующие примеры возможных URL:
Например, когда сервлет BookStoreServlet получает объект RequestDispatcher для главной страницы магазина Duke's Bookstore:
public class BookStoreServlet extends HttpServlet {
public void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Получаем dispatcher; он получает главную страницу для пользователя
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher( "/examples/applications/bookstore/bookstore.html");
... } }
URL ресурса должен быть доступным на сервере, на котором запущен сервлет в момент обращения. Если ресурс недоступен, или у сервера не реализован объект RequestDispatcher для ресурса данного типа, этот метод вернет значение null. Сервлет должен быть готов к таким ситуациям. Сервлет BookStoreServlet делает это вот таким простым путем:
public class BookStoreServlet extends HttpServlet {
public void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Получаем dispatcher; он получает главную страницу для пользователя
RequestDispatcher dispatcher = ...;
if (dispatcher == null) { // No dispatcher means the html file can not be delivered response.sendError(response.SC_NO_CONTENT);
} ... } }