Обучение Java. Сервлеты

Получение объекта RequestDispatcher


Чтобы получить доступ к объекту RequestDispatcher, используйте метод

getRequestDispatcher класса ServletContext. Этот метод в качестве аргумента берет URL запрашиваемого ресурса. Формат этого аргумента последовательность имен директорий разбитых знаком слэш ("/"), и именем ресурса на конце. Вот следующие примеры возможных URL:

  • /servlet/myservlet
  • /servlet/tests/MyServlet.class
  • /myinfo.html
  • Например, когда сервлет 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);

    } ... } }



    Содержание раздела