2009-09-08 4 views
-1

Я пытался запустить сервлет с помощью ServletContextListener, я поместил коды из книги «Head-First» писатель «Kathy sierra», но это не работает. Он показывает 404 error.I поместили файлы классов в каталог C: \ Tomcat 5.5 \ webapps \ Listener_exe \ web-inf \ classes \ com \ example. и файл web.xml в каталоге web-inf. Поэтому, пожалуйста, покажите, где у меня сделано неправильно. Вот сервлета, Java-файлы и XML file.`Проблема в контексте прослушивателя

package com.example; 

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 

public class ListenerTester extends HttpServlet 
{ 
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException 
{ 
response.setContentType("text/html"); 
PrintWriter out = response.getWriter(); 
out.println("<html><body>test context attributes set by listener<br>"); 
Dog dog = (Dog) getServletContext().getAttribute("dog"); 
out.println("Dog's breed is: "+dog.getBreed()+</body></html>); 
} 
} 

package com.example; 

public class Dog 
{ 
private String breed; 
public Dog(String breed) 
{ 
this.breed=breed; 
} 
public String getBreed() 
{ 
return breed; 
} 
} 

package com.example; 

import javax.servlet.*; 
public class MyServletContextListener implements ServletContextListener 
{ 
public void contextInitialized(ServletContextEvent event) 
{ 
ServletContext sc = event.getServletContext(); 
String dogBreed = sc.getInitParameter("breed"); 
Dog d = new Dog(dogBreed); 
sc.setAttribute("dog",d); 
} 
public void contextDestroyed(ServletContextEvent event) 
{} 
} 

<web-app> 
<servlet> 
<servlet-name>ListenerTester</servlet-name> 
<servlet-class>com.example.ListenerTester</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>ListenerTester</servlet-name> 
<url-pattern>/ListenerTester</url-pattern> 
</servlet-mapping> 
<Context-param> 
<param-name>breed</param-name> 
<param-value>Great Dane</param-value> 
</Context-param> 
<listener> 
<listener-class> 
com.example.MyServletContextListener 
</listener-class> 
</listener> 
</web-app> 

ответ

0

ли вы использовать правильный URL для перехода на страницу? Ваш URL должен быть чем-то вроде:

http://localhost:8080/Listener_exe/ListenerTester 

Используйте любое имя хоста или номер порта, который вы установили для своего соединителя.