如果你把你自己的servlet和jsp放在tomcat的指定目录webapps下,一般不用修改web.xml文件或servlet.xml文件,你可以再webapps下新建一个目录,名称为myweb,然后在这个目录下建立WEB-INF/classes这样的目录结构,将编译完以后的servlet的class文件放到这个目录,注意,如果servlet文件中还有package结构的,必须按照package的层次建立相应的目录,jsp可以直接放在myweb目录下,重启tomcat就能访问到你的servlet了,默认的路径名应该是http://localhost:8080/myweb/Servlet/servlet1

解决方案 »

  1.   

    yuanjiewu,谢谢,可是按照你说的将原来tomcat自带的例子HelloWorldExample.class拷到C:\tomcat-4.0-b1\webapps\myweb\WEB-INF\classes下面,不修改web.xml和servlet.xml,然后启动Tomcat,在地址栏里输入http://localhost:8080/myweb/Servlet/HelloWorldExample,就提示HTTP 404,后来我把输入的url里面的Servlet换成小写的servlet,就会提示错误(如下),这是怎么回事?A Servlet Exception Has Occurred
    Exception Report:
    javax.servlet.ServletException: Servlet execution threw an exception
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:251)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2041)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:414)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:818)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:897)
    at java.lang.Thread.run(Thread.java:536)Root Cause:
    java.util.MissingResourceException: Can't find bundle for base name LocalStrings, locale zh_CN
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:804)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:694)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:538)
    at HelloWorldExample.doGet(HelloWorldExample.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:251)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2041)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:414)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:818)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:897)
    at java.lang.Thread.run(Thread.java:536)
      

  2.   

    在myweb/WEB-INF下面增加一个web.xml文件,修改其中的servlet-class内容:例如yourdic.your_classname<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
        "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"><web-app>
    <servlet>
    <servlet-name>manager</servlet-name>
    <servlet-class>justnorth.manager.web.JnServlet</servlet-class>
    <init-param>
    <param-name>sree.home</param-name>
    <param-value>D:\tomcat\webapps\businesscompass\WEB-INF\classes</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
       <servlet-name>manager</servlet-name>
       <url-pattern>/manager</url-pattern>
    </servlet-mapping>
    </web-app>
      

  3.   

    请问如果在C:\tomcat-4.0-b1\webapps\myweb\WEB-INF\classes下有一个HelloWorldExample.class文件,该如何在web.xml中修改呢?Tomcat在C:\tomcat-4.0-b1因为我按照你说的在C:\tomcat-4.0-b1\webapps\myweb\WEB-INF下增加了一个web.xml,内容是
    <?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
        "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"><web-app>
    <servlet>
    <servlet-name>HelloWorldExample</servlet-name>
    <servlet-class>C:\tomcat-4.0-b1\webapps\myweb\WEB-INF\classes\HelloWorldExample</servlet-class>
    <init-param>
    <param-name>sree.home</param-name>
    <param-value>C:\tomcat-4.0-b1\webapps\businesscompass\WEB-INF\classes</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
       <servlet-name>manager</servlet-name>
       <url-pattern>/manager</url-pattern>
    </servlet-mapping>
    </web-app>
    可是在地址栏里输入:http://localhost:8080/myweb/Servlet/HelloWorldExample就出现
    HTTP Status 503 - This application is not currently available
    The requested service (This application is not currently available) is not currently available. 
    请问哪里错了?
      

  4.   

    同意signboy(横),另外注意一下大小写的问题,在java和xml中都是大小写敏感的