Мое сопоставление URL-адресов отклоняет мои страницы CSS

Я работаю над динамическим веб-приложением с простыми Java, Eclipse и Tomcat 7.

Пока я не внес указанные ниже изменения, все работало отлично.

Недавно я добавил домашнюю страницу Servlet Home.java и домашнюю страницу jsp Home.jsp и сопоставил сервлет с URL-адресом / в файле web.xml, например

 <servlet>
        <display-name>Home</display-name>
        <servlet-name>Home</servlet-name>
        <servlet-class>my_proj.servlets.Home</servlet-class>
    </servlet>

 <servlet-mapping>
        <servlet-name>Home</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

Сервлет Home.java выглядит так:

public class Home extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("Servlet \"Home\" doGet working");
        System.out.println("PathInfo: " + request.getRequestURL());
        //If logged in, go to home page
        request.getRequestDispatcher("/resources/jsp/home.jsp").forward(request, response);
        //If not, go to login/register page
        // TODO
    }

}

И Home.jsp довольно длинный, но все работает, кроме ресурсов, таких как CSS, изображения и т. Д. Они не загружаются страницей. Я ссылаюсь на них с

<link href="/my_proj/resources/css/custom.css" rel="stylesheet">

Причина

Из-за кода, который я добавил в метод doGet выше, я вижу, что запросы на поиск страницы CSS на самом деле заканчиваются на сервлете Home. Например, это часть того, что я вижу в консоли

Servlet "Home" doGet working
PathInfo: http://localhost:8080/my_proj/resources/css/custom.css

Итак, мой вопрос: как мне правильно отобразить мои страницы, чтобы не вызвать эту путаницу? Или как мне отделить свой CSS от использования этой системы сопоставления? Я не хочу, чтобы web.xml обрабатывал сопоставление с этими файлами.


person CodyBugstein    schedule 07.09.2014    source источник
comment
Дайте структуру каталогов. кажется, проблема с путем, когда вы вызвали css.   -  person Sunny    schedule 08.09.2014


Ответы (1)


Пожалуйста, укажите свою структуру каталогов, например, если ваша структура каталогов выглядит так:

Имя проекта\WebContent\css, затем просто добавьте следующую строку, чтобы включить css на свою страницу:

<link href="css/fileName.css" rel="stylesheet">

Вот и все, не нужно указывать полный путь: например, Project Name\WebContent\css\fileName.css

person vipul chauhan    schedule 08.09.2014