2014-10-30 5 views
0

Это мой код для одного сервлета в моем файле web.xml:Как вы создаете 2 сервлета в одном файле web.xml?

 <context-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/applicationContext.xml</param-value> 
     </context-param> 
     <listener> 
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
     </listener> 

     <servlet> 
      <servlet-name>dispatcher</servlet-name> 
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
      <load-on-startup>2</load-on-startup> 
     </servlet> 

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

     <session-config> 
      <session-timeout> 
       30 
      </session-timeout> 
     </session-config> 

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

Могу ли я просто скопировать и вставить и изменить некоторые значения и использовать еще раз, что?

ВТОРОЙ ВОПРОС (который может помочь ответить на первый)

в настоящее время, когда я развернуть мое приложение в GlassFish с этим URL-адрес локального хоста/HelloSpring я получаю 404. Однако, когда я добавить/дом на конце, как так : localhost/HelloSpring/home он переходит на правильную страницу. Я также могу добавить/индексировать localhost/HelloSpring/index в конце, и это тоже работает. Итак, как я могу загрузить localhost/HelloSpring/home из запуска, а не вводить его вручную и, таким образом, избежать ошибки 404?

ПРИМЕЧАНИЕ: При изменении шаблона URL-адрес из/в/дома в отображении сервлет, фиксирует домашнюю проблему/но означает/индекс не будет работать

Таким образом, в целом, как я могу загрузить LOCALHOST/дом от развертывания, а затем введите индекс в url/index и отобразите правильную страницу?

p.s. stackoverflow не позволял мне вводить мои полные адресные ссылки, поэтому предположим, что я сказал localhost, что он содержит порт: 8080 непосредственно после

+0

Я думаю, что это ваш шаблон url, я использую что-то вроде этого * .html, чтобы иметь все запросы .html так что вам, вероятно, придется поиграть с этим. С головы до ног я не помню, является ли/* законным или нет. просто общая идея, хотя – vector

+0

это то, с чем я работал раньше, но я думал, что веб-приложения выглядят немного аккуратнее без расширений .html. Я надеялся сделать это без расширений. Это определенно возможно, поскольку большинство веб-сайтов это делают. я тоже подумал/*, но радости там не было. –

ответ

0

Ваш сервлет автоматически не распознает домашнюю страницу. Вы должны сказать ему, либо с помощью страницы редиректа (вы уже включить его в приветственном-файл-лист), или карту контроллера, который служит домашней страницы к корню, а также:

@RequestMapping(value = { "/", "/home" }, method = RequestMethod.GET) 
+0

К сожалению, это не понравилось. скопировал и вставил вашу строку кода в мой, а затем попробовал шаблон url с обоими/и/home. Это дало мне те же результаты, что и раньше. это URL-адрес, который загружается из развертывания http: // localhost: 8080/HelloSpring/может это иметь какое-то отношение к этому? –

+0

Можете ли вы разместить контроллер, который обрабатывает запрос/home? – grid

+0

обслуживание в пакетах; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class WebController { @RequestMapping (value = {"/", "/ home"}, method = RequestMethod.GET) public String home() { \t возвращение "home"; } @RequestMapping (value = "/ index", method = RequestMethod.GET) public String index() { \t return "index"; } } –

0

Для первого вопроса, вы можете, конечно, объявить столько сервлетов, сколько хотите в файле web.xml, но я действительно не могу представить пример использования для объявления более одного DispatcherServlet.

Ваш второй вопрос, похоже, связан с проблемой попадания корневого URL в приложение Spring MVC. Я пытался некоторое время назад публиковать в SO, что я нашел по проблеме: Match for root url and serving of static resources

+0

, так что я могу скопировать и вставить весь код для моего текущего сервлета, а затем просто переименовать все правильно? –

+0

Конечно, вы можете, но тогда вам придется беспокоиться о том, какой сервлет будет удачен по какому запросу, и соответственно настроить контроллеры –

Смежные вопросы