我是看尚学堂科技_张志宇学Servlet的,可是我的Servlet死活运行不了,下面说一下我的配置,大家帮我看看。
首先我是在tomcat的webapp下创建了一个目录myapp,然后在myapp下又写了一个index.html。并且建了一个WEB-INF里面有一个web.xml,文件内容如下。
<?xml version="1.0" encoding="utf8"?>
<web-app 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_3_0.xsd"
  version="3.0"
  metadata-complete="true">
    <servlet>
      <servlet-name>MyServlet</servlet-name>
      <servlet-class>HelloWorldServlet</servlet-class>
    </servlet>
<servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/MyServlet</url-pattern>
    </servlet-mapping>
  
</web-app>HelloWorldServlet是我写的Servlet,在WEB-INF的classes下,文件内容如下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 HelloWorldServlet extends HttpServlet{ /**
 * 
 */
private static final long serialVersionUID = -6917571878047982497L; /**
 * @param args
 */
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
PrintWriter out=resp.getWriter();
    out.println("<html><head><title>enter my web</title></head><body>Hello World!!!</body></html>");
    out.flush();
    out.close();
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
}}可是问题就来了,每次我输入http://localhost:8080/myapp/就可以看到我写的index.html的内容,但是我输入http://localhost:8080/myapp/MyServlet,就会出现这样的错误
HTTP Status 404 - /myapp/MyServlet
type Status reportmessage /myapp/MyServletdescription The requested resource is not available.那位好心人帮我看看我的这个配置有什么问题。
HelloWorldServlet.class 在WEB-INF/classes目录下,这个应该没问题。
servletwebapp

解决方案 »

  1.   

    <servlet-class>HelloWorldServlet</servlet-class>写类全名(加包名)
      

  2.   

    <servlet>
       <servlet-name>test</servlet-name>
       <servlet-class>cn.Test</servlet-class>
      </servlet>
      

  3.   

    可是我写的类本来就没有写包名啊,我是在eclipse里写的,在eclipse就用的是default啊.并且我也试了,再加一个包,还是不行啊。
      

  4.   

    <?xml version="1.0" encoding="utf8"?>
    是utf-8
      

  5.   

    servlet class,把全名带上试试。
    如果还不行,删除了,重新部署下。
    学习了
      

  6.   

    是不是我的CLASSPATH错了,
    CLASSPATH=%JAVA_HOME%\lib;%TOMCAT_HOME%\lib;%TOMCAT_HOME%\lib\servlet-api.jar;%TOMCAT_HOME%\lib\jsp-api.jar;
      

  7.   

    这个问题简单啊,因为无法确定你的请求是get还是post,会调用父类的init()方法
      

  8.   

    不对啊,我没有提交表单,而且我的web.xml里面已经写明了,只要输入MyServlet就会执行servlet,再说我的dopost虽然没有实现以也至于有404错误啊。
      

  9.   

    servlet不是在WEB—INF目录下写的,写在包里的类中,另外,配置的servlet也不对
    <url-pattern>/MyServlet/servlet名</url-pattern>
      

  10.   

    我有一篇博客:http://blog.csdn.net/xuexin8625/article/details/8121135 【初学servlet】helloworld学习  很详细的写了步骤,你可以对照一下
      

  11.   

    自己新建一个servlet让软件自动配置看下跟你写的有什么区别就知道了
      

  12.   

    我用Netbeans新建了一个项目可以跑,不过找不到他的web.xml。
      

  13.   

    把 super.doGet(req, resp); 去掉试一试
      

  14.   


    ...又是netbeans...不习惯这个.. 貌似它是一个context.xml吧..