import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Hi extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res)throws IOException,ServletException
{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
out.println("<Html>");
out.println("<Head><Title>Hi</Title></Head>");
out.println("<Body>");
out.println("<h1>Hi,there!</h1>");
out.println("</Body></Html>");
}
}
这是书上的一个例题
我把它编译成了.class文件放在Tomcat 5.5\webapps\ROOT\WEB-INF\classes下面。
然后URL:http://localhost:8080/webapps/ROOT/servlet/Hi
输出的不是Hi,there!
输出的是:
type Status reportmessage /webapps/ROOT/servlet/Hidescription The requested resource (/webapps/ROOT/servlet/Hi) is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.5.17
是文件放错了还是URL错了
初学很不懂。

解决方案 »

  1.   

    改成:http://localhost:8080/servlet/Hi如果你使用的是Tomcat5.0,并且没有配置url-mapping的话,还是没法正确显示的,还需要将web.xml中default servlet的外的注释去掉才行。如果用的是Tomcat 4.0的话,就直接可以用。
      

  2.   

    我用的TOMCAT是5.0版本的,如果是5.0的话,应该这样该,当你把你那.class文件放好了以后,还要修改web.xml,web.xml位于Tomcat安装路径\webapps\Root\WEB-INF\web.xml中,打开该文件(可以用记事本打开),在该文件的最后两行是<!--JSPC servlet mappings end-->  </web-app>,在这两行之前加入如下代码:
    <servlet>
    <servlet-name>Hi</servlet-name>
    <servlet-class>Hi</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Hi</servlet-name>
    <url-pattern>/Hi</url-pattern>
    </servlet-mapping>
    然后在启动IE,在地址栏输入:http://localhost:8080/Hi就可以看到预期的效果了。
      

  3.   

    对,设置你的web.xml
    进行servlet-name,servlet-class,ulr-pattern
    设置只有这样你才会得到一个正确的servlet类的地址