http://localhost:8080/servlet/helloworld

解决方案 »

  1.   

    运行servlet时,tomcat服务器会先找到web.xml文件,通过里面的配置信息找到要运行的servlet!
    你上面的代码没有错误!
    怀疑是你具体操作的错误,或者是别的原因!
      

  2.   

    检查一下你的tomcat目录下的conf目录下的web.xml文件,把其中
     <servlet-mapping>
            <servlet-name>invoker</servlet-name>
            <url-pattern>/servlet/*</url-pattern>
        </servlet-mapping>
    关于invoker的已经被注释掉的地方的注释去掉,特别是上面的这一句的注释一定要注释
      

  3.   

    小妹,哥哥劝你装个ide,仔细学习一下它生成的文件。
      

  4.   

    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class> HelloWorld
    </servlet> 
    <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/servlet/helloworld</url-pattern> 
    </servlet-mapping> 你这里的配置有问题
    servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
    </servlet>   表示指定包含的servlet类。而以下的结构:<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
    </servlet-mapping>    表示指定HelloServlet应当映射到哪一种URL模式。访问的时候就要http://localhost:8080/servlet/helloworld 
      

  5.   

    需要package,书上的例子可能是基于Resin的,用Resin,Orion可以不用,Tomcat必须要package的
      

  6.   

    ----回复人: freezh(只提供思路) ( )你将invoker所在的注释去掉,因为这是TOMCAT默认调试器,这样不用配置MAPING等文件直接放到ROOT\WEB-INF\CLASSES下,访问采用http://localhost:8080/servlet/HelloWorld
    ----
    一定注意大小写问题,这样路径肯定没错,出错只可能是文件的事
      

  7.   

    同意楼上的几位关于加个package的说法。
      

  8.   

    你的web.xml里:
    <servlet-name>HelloWorld</servlet-name> 
    <servlet-class>HelloWorld</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>HelloWorld</servlet-name> 
    <url-pattern>/servlet/helloworld</url-pattern> 
    </servlet-mapping>   
    <url-pattern>里多加了个servlet,去掉同时注意字母大小写就可以了,如下:
    <servlet-name>HelloWorld</servlet-name> 
    <servlet-class>HelloWorld</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>HelloWorld</servlet-name> 
    <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping>  
      

  9.   

    希望下次有和我一样出现错误的人,看到了这样个例子,有点帮助吧。
    ***************************
    /*HelloWorld.java*/
    放到虚拟目录或别的目录下成这样的结构web-inf/classes/HelloWorld.java
    然后编译了成了这样的结构web-inf/classes/Hello/HelloWorld.classpackage Hello;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class HelloWorld extends HttpServlet
    {
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
    {response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html><head><title>");
    out.println("This is my first Servlet");
    out.println("</title></head><body>");
    out.println("<h1>Hello,World!</h1>");
    out.println("<h2>Hello,World!</h2>");
    out.println("<h3>Hello,World!</h3>");
    out.println("</body></html>");}
    }********************************
    /*web.xml*/修改后的web.xml,修改后记得重新启动Tomcat不然总是出错误的。说找不到。<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> 
    <display-name>My Web Application</display-name> 
    <description> 
    A application for test. 
    </description> 
    <servlet>
      <servlet-name>HelloWorld</servlet-name>
      <servlet-class>Hello.HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>HelloWorld</servlet-name>
      <url-pattern>/servlet/HelloWorld</url-pattern>
    </servlet-mapping>
    </web-app> 
    ****************************************把它用Jcreator编译了的HelloWorld.class把打包的以Hello/HelloWorld.class这样的结构一起
    copy到了web-inf里的classes底下。然后去把web-inf里的web.xml修改,加上以下几行:
    <servlet-name>HelloWorld</servlet-name> /*注册一个servlet的别名,一般就用类的名字*/
    <servlet-class>Hello.HelloWorld</servlet-class>/*指明它在web-inf的classes底下开始的位置*/ 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>HelloWorld</servlet-name> 
    <url-pattern>/servlet/HelloWorld</url-pattern>/*一般是用/servlet/*或用/servlet/servlet的名字*/
    就好了。

    <servlet-name>HelloWorld</servlet-name> 
    <servlet-class>Hello.HelloWorld</servlet-class> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>HelloWorld</servlet-name> 
    <url-pattern>/servlet/*</url-pattern> 
    我一直从网上看到的都是这几句要点。一个要点是注册了servlet;一个要点是为这个servlet指定一个位置。
    但是由于每次修改了web.xml后没有重新启动Tomcat。总是以为配置web.xml出错了。一直在修改一直在测试,却总是出来错误。就是在这个原因了。
    如果在ROOT里放的servlet的话,用http://localhost:8080/servlet/HelloWorld访问
    如果放到虚拟目录,比如我的是lanziman的话就用http://localhost:8080/servlet/HelloWorld访问。
      

  10.   

    如果放到虚拟目录,比如我的是lanziman的话就用http://localhost:8080/lanziman/servlet/HelloWorld访问。
    刚才写错了。不好意思。
      

  11.   

    谢谢你这么细心 lanziman(子曼)