HTTP-статус 404 Запрашиваемый ресурс недоступен при открытии HTML-страницы - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в этом деле и использую платформу Eclipse Oxygen для запуска своего приложения и сервера Apache Tomcat 8.0.36.

Во-первых, я создал простую HTML-страницу first.html в папке WEB-INF внутри моего проекта.

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>First Page</h1>
<a href="MiniPro/WebContent/WEB-INF/NewFile.html" >Press Here</a>
</body>
</html>

Когда я запускаю этот код, он указывает на эту ссылку http://localhost:8081/MiniPro/WEB-INF/first.html и показывает ошибку статуса HTTP 404. Даже когда я попробовал это http://localhost:8081/MiniPro/WebContent/WEB-INF/first.html это показывает ту же ошибку.

Когда я изменил расположение страницы first.html в папку WebContent и запустил ее, отображается результат.

Может кто-нибудь сказать, почему он не работал, когда он помещен в папку WEB-INF.

Ответы [ 3 ]

0 голосов
/ 07 сентября 2018

Вы можете попробовать ~/<path here >/<file>

~ это поможет вам указать домашний путь от вас localhost

Вы используете путь как

MiniPro/WebContent/WEB-INF/NewFile.html выше этого пути был расположен как

http://localhost:8081/MiniPro/WebContent/WEB-INF/first.html

, чтобы вы могли использовать вместо http://localhost:8081 используйте ~

~/MiniPro/WebContent/WEB-INF/NewFile.html
0 голосов
/ 07 сентября 2018

каталог WEB-INF является особенным в веб-проекте. Он спроектирован так, что не допускает прямого посещения снаружи, но вы можете посетить его с помощью своего сервлета или кода JSP.

0 голосов
/ 07 сентября 2018

В иерархии приложения существует специальный каталог с именем WEB-INF. Этот каталог содержит все вещи, связанные с приложением которые не находятся в корне документа приложения. Узел WEB-INF не является частью публичного дерева документов приложения. Нет файла содержащиеся в каталоге WEB-INF могут быть переданы непосредственно клиенту контейнером . Тем не менее, содержимое каталога WEB-INF видимый для кода сервлета с использованием getResource и getResourceAsStream вызов метода на ServletContext и может быть выставлен с использованием RequestDispatcher звонки.

Если вы хотите сохранить свой файл в WEB-INF - вам нужен сервлет для управления им.

Просто общий пример того, как получить HTML-файл с сервлетом:

RequestDispatcher view = request.getRequestDispatcher("mypage.html");
view.forward(request, response);

В противном случае переместите файл за пределы WEB-INF и попробуйте получить его с помощью http://localhost:8081/MiniPro/first.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...