powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / web.xml: servlet в качестве welcome file
11 сообщений из 11, страница 1 из 1
web.xml: servlet в качестве welcome file
    #38223799
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю, что начиная с версии сервлетов 2.4 можно в welcome files указывать и сервлеты. А можно ли указать сервлет с параметром? Типа такого
Код: xml
1.
 <welcome-file>servlet?param=a</welcome-file> 
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38224425
J.Serge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerЗнаю, что начиная с версии сервлетов 2.4 можно в welcome files указывать и сервлеты. А можно ли указать сервлет с параметром? Типа такого
Код: xml
1.
 <welcome-file>servlet?param=a</welcome-file> 



Мoжет и так можно. Неохота проверять.
Точно можно в качестве welcome-file'а использовать JSP, в которой уже прописать вызов нужного сервлета с любыми параметрами.
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38224464
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне тоже кажется, что проще было просто попробовать и не касаться этой темы.
Также представление о назначении <welcome-file/> ошибочно: он служит не "указывать страницы или сервлеты", а только лишь указать URI начального перехода.
Согласно спецификации JSR-154 "Java Servlet 2.5 Specification", раздел 9, глава SRV.9.10 "Welcome Files":авторWeb Application developers can define an ordered list of partial URIs called welcome files in the Web application deployment descriptor. The
deployment descriptor syntax for the list is described in the Web application deployment descriptor schema.

The purpose of this mechanism is to allow the deployer to specify an ordered list of partial URIs for the container to use for appending to
URIs when there is a request for a URI that corresponds to a directory entry in the WAR not mapped to a Web component. This kind of
request is known as a valid partial request.То есть в <welcome-file/> действительно определяется URI. А так как URI (не лез в спецификации, взял банально вики):авторURI = [ схема ":" ] иер-часть [ "?" запрос ] [ "#" фрагмент ]то по идее, ничто не мешает указывать в <welcome-file/> параметры. Как на практике -х.з.
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38224697
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,
то по идее, ничто не мешает указывать в <welcome-file/> параметры. Как на практике -х.з.
я бы не создавал эту тему, если бы так сделать у меня получилось. К сожалению, не получается, и я пытаюсь понять почему. Вариант с jsp и форвардом мне известен, но хочется разобраться почему прокатывает сервлет, и не прокатывает сервлет с параметром. Провряю на 7-м томкате.
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38224709
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, непонятно. Хотя schema, address тоже не указываются, подставляется адрес рута. Возможно, для формирования конечного URI берется адрес местонахожения war-файла (проекта) и добавляется указанный path. Все другое отсекается.

Как вариант, можно использовать:
Код: xml
1.
2.
3.
4.
5.
<welcome-file>servlet</welcome-file>
<context-param>
    <param-name>param</param-name>
    <param-value>a</param-value>
</context-param>

И в сервлете:
Код: java
1.
String value = getServletContext().getInitParameter("param");

Хотя сложно себе представить, для чего это может понадобиться ... Тест?
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38224717
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck,
да, просто небольшой тест. Есть один сервлет, выполянющий роль контроллера, и несколько jsp. Параметром сервлет получает идентификатор нужной страницы, заботится о том, чтобы в запросе оказались нужные для конкретной jsp данные, и перенаправляет запрос к ней. Заглавная страница, которую должен увидеть пользователь, так же должна быть подготовлена. Мне показалось нормальным использовать для этой цели сервлет с параметром как велком файл. На этом моменте я и понял что это не работает, и просто стало интересно почему. Если в варианте, где все лишнее отсекается, вы под лишним подразумеваете параметры, то в таком случае запрос без параметров попал бы к сервлету. Но этого не происходит, томкат говорит что запрошенный ресурс не найден. Вообщем, не большая проблема это все конечно, просто любопытство осталось.
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38224744
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, как делается сопоставление сервлету, но если делать так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<welcome-file>servlet?param=a</welcome-file>

<servlet>
    <servlet-name>someServlet</servlet-name>
    <servlet-class>project.someServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>someServlet</servlet-name>
    <url-pattern>/servlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>someServlet</servlet-name>
    <url-pattern>/servlet?param=a</url-pattern>
</servlet-mapping>

то сервлет вызывается. Одно но: ни в doGet, ни в service в HttpServletRequest request этот параметр не появляется, request девственно чист. Можно предположить, что механизм назначения HttpRequest для методов сервлета происходит после сопоставления маппинга запроса выполняемому сервлету и от параметров, которые назначены в web.xml, не зависит.

Уверен, что сделать желаемое подобным образом невозможно.
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38225175
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вспомнить, что (первый попавшийся) welcome-файл вызывается запросами вида http://хост/ - многих не(дораз)умений можно избежать.
Если вспомнить что браузер автоматически заменит хост на http://хост/ - вопросов должно остаться ещё меньше.
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38225197
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
не понял
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38225201
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javapeckerне понялЕсли пришло обращение вида:
Код: sql
1.
GET ресурс/ HTTP/1.x

то сервлет-контейнер проверит, что ресурс является каталогом, построит актуальный список "приветственный файлов" и, если найдёт в каталоге подходящий, вернёт результат обработки этого файла. Если не найдёт - вернёт или список файлов каталога или "404 Not found".
Технически, в частности, это означает эквивалентность:
Код: sql
1.
GET / HTTP/1.x

и
Код: sql
1.
 GET /index.html HTTP/1.x

Сервлет/jsp обо всех этих деталях знать не будет - в его распоряжении строка исходного запроса (или "/" или "/index.html").
Параметры файлов-приветствий, как максимум, будут использованы при поиске файла (приведёт к "404 Not found"), а скорее всего - будут просто "отрезаны".
...
Рейтинг: 0 / 0
web.xml: servlet в качестве welcome file
    #38225212
javapecker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
теперь понятно
Сервлет/jsp обо всех этих деталях знать не будет - в его распоряжении строка исходного запроса (или "/" или "/index.html"). За это спасибо, мне казалось что это не так.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / web.xml: servlet в качестве welcome file
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]