请大家帮忙看下好吗,我是做delphi的,因为兴趣原因,现在想学习java web开发。
最近买了本head first servlet&jsp,按照书中讲解上下文监听器的例子做了一遍,怎么都调试不正确,每次都报HTTP Status 404 - Servlet ListenerTester is not available。
例子程序共三个类,如下
Dog.java
-----------------------------------------------------------------
public class Dog
{
private String breed;
public Dog(String breed)
{
this.breed = breed;
} public String getBreed()
{
return breed;
}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ListenerTester.java
--------------------------------------------------------------
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ListenerTester extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{ response.setContentType("text/html");
PrintWriter out = response.getWriter();
Dog dog = (Dog) getServletContext().getAttribute("dog");
out.println("test listener" + dog.getBreed());
out.flush();
out.close();
}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MyServletContextListener.java
-------------------------------------------------------------------
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListener implements ServletContextListener
{
/* (非 Javadoc)
* @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent event)
{
// TODO 自动生成方法存根 } /* (非 Javadoc)
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent event)
{
// TODO 自动生成方法存根
ServletContext sc = event.getServletContext();
String dogBreed = sc.getInitParameter("breed");
Dog d = new Dog(dogBreed);
sc.setAttribute("dog", d);
}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
目录结构
三个类都放在E:\tomcat\webapps\ROOT\WEB-INF\classes目录下
web.xml放在E:\tomcat\webapps\ROOT\WEB-INF目录下
web.xml
----------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>ListenerTester</servlet-name>
<serlet-class>example.ListenerTester</serlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ListenerTester</servlet-name>
<url-pattern>/ListenTest.do</url-pattern>
</servlet-mapping>
<context-param>
<param-name>breed</param-name>
<param-value>Great Dane</param-value>
</context-param>
<listener>
<listener-class>example.MyServletContextListener</listener-class>
</listener>
</web-app>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^访问路径是http://localhost:8080/ListenTest.do
最近买了本head first servlet&jsp,按照书中讲解上下文监听器的例子做了一遍,怎么都调试不正确,每次都报HTTP Status 404 - Servlet ListenerTester is not available。
例子程序共三个类,如下
Dog.java
-----------------------------------------------------------------
public class Dog
{
private String breed;
public Dog(String breed)
{
this.breed = breed;
} public String getBreed()
{
return breed;
}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ListenerTester.java
--------------------------------------------------------------
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class ListenerTester extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{ response.setContentType("text/html");
PrintWriter out = response.getWriter();
Dog dog = (Dog) getServletContext().getAttribute("dog");
out.println("test listener" + dog.getBreed());
out.flush();
out.close();
}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
MyServletContextListener.java
-------------------------------------------------------------------
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServletContextListener implements ServletContextListener
{
/* (非 Javadoc)
* @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent event)
{
// TODO 自动生成方法存根 } /* (非 Javadoc)
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent event)
{
// TODO 自动生成方法存根
ServletContext sc = event.getServletContext();
String dogBreed = sc.getInitParameter("breed");
Dog d = new Dog(dogBreed);
sc.setAttribute("dog", d);
}}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
目录结构
三个类都放在E:\tomcat\webapps\ROOT\WEB-INF\classes目录下
web.xml放在E:\tomcat\webapps\ROOT\WEB-INF目录下
web.xml
----------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<servlet>
<servlet-name>ListenerTester</servlet-name>
<serlet-class>example.ListenerTester</serlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ListenerTester</servlet-name>
<url-pattern>/ListenTest.do</url-pattern>
</servlet-mapping>
<context-param>
<param-name>breed</param-name>
<param-value>Great Dane</param-value>
</context-param>
<listener>
<listener-class>example.MyServletContextListener</listener-class>
</listener>
</web-app>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^访问路径是http://localhost:8080/ListenTest.do
解决方案 »
- 紧急求助:如何解决response.getoutputstream和 response.getwriter的冲突
- 问下这个spring的配置有什么区别?
- 初始化密码的问题
- 淘宝的模板有法改吗?
- 如何把某个页面的内容作为邮件正文?
- 请问大家我怎么样才能取得服务器的ip等一系列信息呢,也就是想取的环境变量,谢谢大家
- 有两个单选按钮,怎样判断选中了哪一个?
- 如何用jsp实现在网上下载软件和资料
- jive 中Thread是什么意思啊,到底怎样翻译啊,JiveThread表又是拿来干什么的呢,
- jsp 无法连上 oracle 提示为The Network Adapter could not establish the connection
- 怎么样用<object>连续播放音乐 并有上一首 下一首功能
- 关于servlet的路径问题(如何配置web.xml)
E:\tomcat\webapps\ROOT這個不就是tomcat默認的目錄嗎
配置welcome頁面?意思是說讓我把默認首頁設定成這個servlet?servlet不是不能直接做為默認歡迎也面的嗎?而且我直接使用了web.xml中設定的地址去訪問的servlet應該是可以的阿。請詳談
应该时<servlet-class>example.ListenerTester</servlet-class>
呵呵,是我太馬虎,百思不得其解的問題竟然是拼寫錯誤。解決了
結分