2014-12-16 2 views
0

Я отображенный сервлет как этотКак правильно отобразить сервлет

<?xml version="1.0" encoding="UTF-8"?> 
 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
 
    <servlet> 
 
     <servlet-name>s1</servlet-name> 
 
     <servlet-class>FirstServlet</servlet-class> 
 
    </servlet> 
 
    <servlet> 
 
     <servlet-name>s2</servlet-name> 
 
     <servlet-class>SecondServlet</servlet-class> 
 
    </servlet> 
 
    <servlet-mapping> 
 
     <servlet-name>s1</servlet-name> 
 
     <url-pattern>/servlet1/*</url-pattern> 
 
    </servlet-mapping> 
 
    <servlet-mapping> 
 
     <servlet-name>s2</servlet-name> 
 
     <url-pattern>/servlet2/*</url-pattern> 
 
    </servlet-mapping> 
 
    <session-config> 
 
     <session-timeout> 
 
      30 
 
     </session-timeout> 
 
    </session-config> 
 
    <welcome-file-list> 
 
     <welcome-file>index.jsp</welcome-file> 
 
    </welcome-file-list> 
 
</web-app>

Дело в том, когда я пишу в URL

case1: локальный: 2040/SampleError/servlet2/name

case2: loc alhost: 2040/SampleError/servlet2/имя/фамилия

он идет в том же сервлет я знаю, что я не сделал отображение URL-адрес правильно, пожалуйста, мне предложить модификации так и в случае 2 он должен показать 404 ресурсов ошибок не доступно

на самом деле мое имя приложение «SampleError» Это «имя» и «фамилия» в URL является динамическим я означает, что вы можете дать что-нибудь Там INSEAD от «имени» вы можете дать свое имя или что-нибудь

+0

Я не вижу, откуда взялась часть «SampleError» вашего URL. Вы пытались оставить это (в зависимости от конфигурации контейнера сервлета)? Кроме того, работает ли случай 1? – xea

+0

Ваши URL-адреса sevlet ('/ servlet1/*', '/ servlet2/*') будут отображаться на весь URL-адрес вашего приложения. –

+0

Вы выставили URL-адрес '/ name/surname'? –

ответ

0

Измените отображение web.xml следующим образом:

<servlet-mapping> 
     <servlet-name>s2</servlet-name> 
     <url-pattern>/servlet2/name</url-pattern> 
    </servlet-mapping> 

Шаблон /servlet2/* означает, что любой URL, содержащих servlet2 строку в его URI будет отображаться в вашем SecondServlet. Вот почему и /name, и /name/surname обрабатываются SecondServlet

+0

извините имя/фамилия пришло из приложения, то есть я не знаю после/сервлета/имени или/сервлета/AnythingElse извините за ваше недоразумение, это была моя ошибка –

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