Как настроить список приветственных файлов в web.xml

У меня это есть в моем документе web.xml. Я пытаюсь получить список приветствия, поэтому мне больше не нужно вводить путь для домашней страницы. Но каждый раз щелкнув приложение на моей странице tomcat, он отображает запрашиваемый ресурс недоступен.

 web.Init   index.jsp   index web.IndexServlet   index /index  

Мой сервлет для страницы jsp

 package web; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; public class IndexServlet extends HttpServlet { private Logger logger = Logger.getLogger(this.getClass()); private RequestDispatcher jsp; public void init(ServletConfig config) throws ServletException { ServletContext context = config.getServletContext(); jsp = context.getRequestDispatcher("/WEB-INF/jsp/index.jsp"); } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { logger.debug("doGet()"); jsp.forward(req, resp); } } 

Почему это все еще не работает? Мне все еще нужно набирать / index в моем url … Как это сделать правильно?

    Вам нужно поместить файл JSP в /index.jsp вместо /WEB-INF/jsp/index.jsp . Таким образом, весь сервлет, кстати, застенчив.

     WebContent |-- META-INF |-- WEB-INF | `-- web.xml `-- index.jsp 

    Если вы абсолютно уверены, что вам нужно вызвать сервлет таким странным способом, тогда вы должны сопоставить его по шаблону URL / /index.jsp вместо /index . Вам нужно только изменить его, чтобы получить диспетчера запросов из request а не из config и избавиться от всего метода init() .

    В случае, если вы на самом деле намерены иметь «servlets домашней страницы» (и, следовательно, не файл приветствия, который имеет совершенно другую цель, а именно файл по умолчанию, который может быть отправлен при запросе папки , что, таким образом, не является особым корнем ), то вам нужно сопоставить сервлет в шаблоне пустых строк.

      index   

    См. Также Разница между / и / * в шаблоне url для сопоставления сервлетов .

    Я предполагаю, что вы хотите, чтобы ваш индексный сервлет выполнял роль страницы приветствия, поэтому измените на:

      index  

    Таким образом, будет использоваться сервлет индекса. Обратите внимание: для этого вам понадобится контейнер сервлета 2.4.

    Обратите внимание, что @BalusC получает мой голос, потому что ваш сервлет-индекс сам по себе является излишним.

    Я видел хорошее решение в этой ссылке stackoverflow, которая может помочь читателям проблемы с обработкой сервлета defulat, используя шаблон пустой строки URL “”:

     @WebServlet("") 

    или

      yourHomeServlet    

    Он основан на том, из какого файла вы пытаетесь получить доступ к этим файлам.

    Если он находится в той же папке, где находится ваш рабочий файл проекта, вы можете использовать только имя файла. нет необходимости в пути.

    Если он находится в другой папке, которая находится под одной и той же родительской папкой вашего рабочего файла проекта, вы можете использовать местоположение, как в следующем /javascript/sample.js

    В вашем примере, если вы пытаетесь получить доступ к своему js-файлу из своего html-файла, вы можете использовать следующее местоположение

    ../javascript/sample.js

    префикс ../ перейдет в родительскую папку файла (перемещение папки вверх)

    Давайте будем гением компьютера.