| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > url mapping |
| Автор: SuperFly 30.11.2007, 01:47 | ||
| Всем привет! Хочется узнать, как можно установить сервлет, который запускается в Tomcat по умолчанию. У меня в данный момент все запросы обрабатываются единым сервлетом-диспетчером. Но вот я начал прикручивать картинки, и понял, что к примеру папку images необходимо из списка обрабатываемых этим сервлетом исключить.
Видимо как-то так нужно. |
| Автор: tux 30.11.2007, 02:29 |
| Именно так. Все, что ты исключишь из обработки своим сервлетом, будет обработано дефолтным. |
| Автор: SuperFly 30.11.2007, 10:02 |
| tux, я тут расплылся в улыбе... Как "именно так"? Оставить "????????" на своем месте? Что-то мне вместо них надо написать. Посмотрел в webjavenue, дык там какой-то "default", который IDEA подсвечивает как невалидный. |
| Автор: tux 30.11.2007, 10:50 | ||
А зачем тебе обрабатывать все? Обрабатывай конкретное расширение, например.
Это обычная практика. Все остальное будет обрабатываться дефолтным сервлетом. |
| Автор: SuperFly 30.11.2007, 13:07 | ||
| Хнык, так не интересно... хотя спасибо за 1 из вариантов. НО я хотел бы, чтоб у меня URL был такого вида:
и никаких суффиксов. |
| Автор: SuperFly 30.11.2007, 13:29 |
| в идеале конечно хотел сделать http://mysite/авто/добавить Но, так и не получилось настроить Tomcat, чтоб он требовал у FF отсылать URL или URI в UTF-8 кодировке. |
| Автор: tux 30.11.2007, 15:51 |
Ну тогда поставь default из webjavenue. Или тебя волнует что думает о нем IDEA? |
| Автор: SuperFly 30.11.2007, 16:04 |
| tux, Ж_Ж ну так-то да. Вы как-то не договариваете. Я в этом на самом деле еще плохо разбираюсь... "default из webjavenue" непонятно откуда вообще взялось, я пробовал отключить инспекцию, компилировалось, но не загружалось, т.е. исключение выбрасывает. |
| Автор: tux 30.11.2007, 17:12 |
| Странно. Что за исключение? default - Это дефолтный сервлет Томката. Чтобы его увидеть вживую, можно заглянуть в TOMCAT_HOME/conf/web.xml. |
| Автор: SuperFly 30.11.2007, 17:15 |
| И правда что!!! хм, надо еще тогда попробовать. |
| Автор: SuperFly 30.11.2007, 20:08 | ||
да с default всё вроде разрешилось, но вот беда, не хочет работать:
не получается. ресурс не найден в случае /images/* Если какой-то суффикс поставить для dispatcher, тоже не получается. ресурс не найден и в том и в другом случае. Дааа, для справки должен сказать, возможно это архиважно. у меня путь к приложению лежит localhost:8080/velo/* т.е. есть преффикс, возможно он что-то коверкает? |
| Автор: SuperFly 30.11.2007, 22:51 |
| Осталось последние 2 проблемы разрешить, и я буду полностью готов перейти на Java for Web!!! Поможите кто чем может. |
| Автор: Platon 1.12.2007, 10:56 |
| Бедный паренек, столько вопросов, еще раз убеждаюсь, что дело Java for Web гиблое, уж больно туго становление происходит... |
| Автор: SuperFly 1.12.2007, 11:18 |
| Ну, я честно сказать, тоже не ожидал таких штыков... Но, бесспорно, сама Java предоставляет намного больше возможностей, чем PHP, поэтому то и борюсь! |
| Автор: SuperFly 1.12.2007, 13:25 |
| Вернемся к нашим баранам. Нет, я не буду делать *.fly потому, что это не позволяет обработать папки, к примеру http://mysite.ru/cars/ а если делать с welcome file, я видел, какие танцы с бубном просиходят у спринговцев. Скажите просто: в url-pattern реальный reg-exp или упрощенный? Добавлено через 7 минут и 43 секунды Я вообще его логику понять не могу... <url-pattern>/*</url-pattern> должен идти обязательно с / иначе ошибка а <url-pattern>*.fly</url-pattern> дык без / в чем разница??? http://www.roguewave.com/support/docs/leif/leif/html/bobcatug/7-3.html Я не могу понять, почему шаблону <url-pattern>/status/*</url-pattern> подходит http://example.com/examples/status |
| Автор: ivg 1.12.2007, 18:53 | ||||
Нв самом деле в варианте с
дефолтный сервлет вызывается, а потому что путь для поиска ресурса, при указанном сервлет-маппинге, он берёт как то, что идет после /images (request.getPathInfo()), а ищет относительно корневой директории контекста. Баг? Попробуйте http://localhost:8080/velo/images/images/image.gif... Можно, конечно придумать workaround, но чем не устраивает вариант webjavenue:
ну или dispatcher замапить на несколько папок, а корень оставить дефолтному сервлету Если и это не подходит, то javax.servlet.RequestDispatcher вам в руки [off]А что такая сессия короткая на форуме, пока ответ наберёшь, уже вылетел :( [/off] |
| Автор: SuperFly 1.12.2007, 19:42 | ||
Да, реально работает
А потому, что хочется тупо публичную папку, в которой будут все данные, которые разрешено извлекать. |
| Автор: ivg 1.12.2007, 19:51 | ||||
так закройте диспетчером то что нельзя извлекать, корень и все остальные папки будут "публичными":
|
| Автор: SuperFly 2.12.2007, 00:58 |
| ivg, всё лишь бы не отвечать на вопрос ^_^ я хочу сделать 1 папку публичной и все осталные обрабатываемые диспетчером, а не наоборот. |
| Автор: SuperFly 2.12.2007, 01:38 | ||
Обидно.. досадно..
Нет, меня на самом деле удивило не это. На самом деле я говорил про то, что /status/* есть обратный слеш. и как бы я и не могу понять, почему тут examples/status без закрывающего слеша проходит? |
| Автор: SuperFly 2.12.2007, 08:49 |
| ivg, до меня только щас дошщел ваш пост!!! Спасибо!!! Бескрайне рад. Тогда, чтоб url был красивый, я сделаю <url-pattern>/public/*</url-pattern> Получится: http://mysite.ru/public/images/1.gif http://mysite.ru/public/html/page.html http://mysite.ru/public/html/filestorage/g.zip Просто бескрайне рад!!! Остался последний вопрос!!! |