сгенерированные ссылки Java Tomcat не работают - PullRequest
1 голос
/ 01 января 2012

Я просто делаю проект java tomcat, который выполняет какой-то запрос в базе данных, а затем возвращает путь к файлу некоторых веб-страниц.

Теперь я сопоставил свой единственный класс в web.xml, и webapp действительно возвращает список URL, которые соответствуют некоторым html-страницам на моем локальном диске. Я установил боковую рамку в веб-приложении, моя идея состоит в том, чтобы вывести результаты на странице вывода, например, «file: /// file_path_of_html_page», и при щелчке по этой ссылке на боковой рамке будет отображаться HTML-страница.

Но на самом деле я получил правильные ссылки, но когда я нажимаю на них, ничего не происходит, Chrome сообщает мне «Не разрешено загружать локальный ресурс». Даже если я установил target = "_ blank", ссылка не работает. Но "file: /// filepath" все в порядке, когда я набираю их в адресной строке. Я переместил все html-страницы в папку проекта eclipse, но это не помогло.

Есть предложения по выполнению этой простой задачи?

1 Ответ

4 голосов
/ 01 января 2012

Средний браузер отключается по соображениям безопасности, открывая ресурсы file://, когда родительский ресурс обслуживается более чем http://.Если вы сделаете их полноценными http:// ссылками, то они будут работать правильно.

Даже если браузер разрешил это, этот подход не сработает при публикации веб-приложения на другом сервере.Ресурс file:// относится к файловой системе локального диска, которую использует клиент (пользователь с веб-браузером).Это обычно на физически отличной машине.У клиента должна быть копия именно этих ресурсов в его собственной файловой системе на локальном диске, чтобы заставить работать file:// ссылки.

Просто поместите HTML-страницы в общедоступный корневой каталог вашего веб-проекта (там, где вы обычно помещаете свои файлы JSP и т. д.) и используете (относительные) http:// ссылки для ссылки на HTML-страницы.Например, следующая ссылка в http://localhost:8080/contextname/some.jsp

<a href="some.html">link to some html file</a>

откроет файл http://localhost:8080/contextname/some.html.

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