Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > mapping (Spring)


Автор: alder 10.5.2006, 12:45
решил сделать чтобы стартовая страница загружалась не указывая ее в браузере т.е. вместо http://127.0.0.1:8080/test/start.html так http://127.0.0.1:8080/test/ для этого в web.xml написал:
Код

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

(со звездочками (*) у меня не получилось, хотя читал что можно было просто написать <url-pattern>*</url-pattern>) и в spring.xml
Код

<bean id="urlMappingScm3" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
         <props>
            <prop key="/">start</prop>
         </props>
    </property>
</bean>

таким образом у меня все страницы грузятся, но перестают цепляться css и картинки, хотя если в web.xml вернуть привязку *.html, то все цепляется.

пожалусто скажите почему у меня не получилось со *-ми? и почему перестали цепляться css и картинки? 

Автор: alder 10.5.2006, 14:31
как вариант сделал вот так: http://127.0.0.1:8080/test/start
а в web.xml
Код

<servlet-mapping>
    <servlet-name>mySpring</servlet-name>
    <url-pattern>/start</url-pattern>
</servlet-mapping>


и в spring.xml
Код

<bean id="urlMappingScm3" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
         <props>
            <prop key="/start">start</prop>
         </props>
    </property>
</bean>


в итого получил почти то что хотел (можно не писать html), но как же всетки сделать что бы http://127.0.0.1:8080/test загружалась стартовая страница? 

Автор: batigoal 10.5.2006, 14:40
Цитата(alder @  10.5.2006,  15:31 Найти цитируемый пост)
в итого получил почти то что хотел (можно не писать html), но как же всетки сделать что бы http://127.0.0.1:8080/test загружалась стартовая страница?  

Прописать в web.xml секцию welcome-file-list:
Код

<welcome-file-list>
    <welcome-file>index.htm<welcome-file>
  </welcome-file-list> 

Полагаю, адрес вида
Код

    <welcome-file>/start<welcome-file>

он тоже должен скушать. 

Автор: McLaren 11.5.2006, 04:29
Цитата(alder @ 10.5.2006,  12:45)
и почему перестали цепляться css и картинки?

В первом случае твой диспетчер-сервлет отмаппирован на все, и встречая, на странице обращение к css или картинке, он также начинает выполняться. Скорее всего эти запросы к сервлету никак не обрабатываются, и поэтому картинки и сss не цепляются. 
При указании *.html в маппинге сервлета сервлет при обнаружении обращения к css и картинкам не вызывается, и поэтому они грузились нормально.
  

Автор: IDVsbruck 5.2.2007, 21:04
Не хочу плодить темы, поэтому повторю вопрос, заданный выше: а все-таки, можно ли сделать так, чтобы в маппинге было указано только "/", но при этом внешние ресурсы грузились?

Автор: Stampede 6.2.2007, 23:39
Цитата(IDVsbruck @  5.2.2007,  11:04 Найти цитируемый пост)
можно ли сделать так, чтобы в маппинге было указано только "/", но при этом внешние ресурсы грузились?


В лоб - нет, нельзя. Согласно спецификации сервлетов маппинг "/" означает не шаблон корня, а дефолтный сервлет - то есть указывает что делать, если ни один из прочих мапингов не подошел:

Цитата

A string containing only the ’/’ character indicates the "default" servlet of the application.

Source: Java Servlet Specification v. 2.5, 11.2 Specification of Mappings


Но можно сделать финт ушами, на что пытался указать batigoal. Надо в корень положить файл с именем index.jsp, и прописать его в web.xml:

Код

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list> 


А внутрь файла положить такой текст:

Код

<jsp:forward page="/home.jsp" />


И тогда можно будет ходит на твой сайт по адресу www.vasya.ru/, то есть прямо в корень. Разумеется, страница, на которую ты делаешь форвард, должна реально присутствовать. Впрочем, можно делать перенаправление и на сервлет - неважно. Главное, чтобы по этому адресу что-то откликалось.

В версиях Томката до 5 получалось немного коряво: ты набирал www.vasya.ru/, а в адресной строке в результате показывалось www.vasya.ru/index.jsp. Но сейчас, слава Богу, уже все в порядке.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)