Java文件如下:package ch17.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class HelloServlet {
private ServletConfig config;
public void destroy(){}
public ServletConfig getServletConfig(){
return config;
}
public String getServletInfo(){
return "Info:HelloServlet";
}
public void init(ServletConfig config) throws ServletException{
this.config=config;
}
public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException{
PrintWriter out=res.getWriter();
out.println("Hello Servlet");
out.close();
}
}

编译后存放的目录为:
D:\Tomcat6\webapps\ch17\servlet\WEB-INF\classes\HelloServlet.class
----------------------------------------------------------------------------------
webxml文件如下
<?xml version="1.0"  encoding="UTF-8"?>
<web-app  version="2.5"
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_2_5.xsd><servlet>
   <servlet-name>HelloServlet</servlet-name>
   <servlet-class>ch17.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>HelloServlet</servelt-name>
   <url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>存放在
D:\Tomcat6\webapps\ch17\servlet\WEB-INF\web.xml
D:\Tomcat6\webapps\ch17\servlet\src\HelloServlet.java
-----------------------------------------------------------------
通过
http://localhost/ch17/servlet/Hello 怎么访问不了呢?(我用的80端口)
提示:HTTP Status 404 - /ch17/servlet/Hello
最近在学WEB,被这个问题一直迷糊的,搜了很多方法就是找不到为什么?

解决方案 »

  1.   

    <url-pattern>/Hello</url-pattern>
    直接写http://localhost/ch17/Hello
    访问路径跟url-parrern一致
      

  2.   

    package test;import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;
    public class HelloServlet extends HttpServlet{
    private static final long serialVersionUID = 1L;
    private ServletConfig config; public void destroy() {
    } public ServletConfig getServletConfig() {
    return config;
    } public String getServletInfo() {
    return "Info:HelloServlet";
    } public void init(ServletConfig config) throws ServletException {
    this.config = config;
    } public void service(ServletRequest req, ServletResponse res)
    throws ServletException, IOException {
    PrintWriter out = res.getWriter();
    out.println("Hello Servlet");
    out.close();
    }
    }
    web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    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_2_5.xsd">

      <servlet>
        <description>DepthPoiService 2010-06-11 world cup</description>
        <display-name>CsdnWeb</display-name>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>test.HelloServlet</servlet-class>
      </servlet>  <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/HelloServlet</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
      

  3.   

    恩……---
    并且由于你映射了访问路径为<url-pattern>/Hello</url-pattern>
    所以要写http://localhost /ch17/Hello
    //访问路径跟url-parrern一致