Tomcat5.0+j2se1.5,第一个servlet难产,请高手帮忙!

HzieeNO_1 2005-11-01 05:16:04
Tomcat安装目录:F:\开发软件\Tomcat 5.0
jdk安装目录:C:\Program Files\Java\jdk1.5.0_04
Path:...;C:\Program Files\Java\jdk1.5.0_04\bin
classpath:.;C:\Program Files\Java\jdk1.5.0_04\lib\dt.jar;C:\Program Files\Java\jdk1.5.0_04\bin\tools.jar;F:\开发软件\Tomcat 5.0\common\lib\servlet-api.jar;
我第一个jsp,很快就搞定!
在F:\开发软件\Tomcat 5.0\webapps\ROOT\mytomcat目录下放了两个文件:*.html,*.jsp
结果http:\\localhost:8080\mytomcat\*.html结果成功。
然后,我做第一个servlet,java文件为:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

/** Simple servlet used to test server.
* <P>
* Taken from Core Servlets and JavaServer Pages 2nd Edition
* from Prentice Hall and Sun Microsystems Press,
* http://www.coreservlets.com/.
* © 2003 Marty Hall; may be freely used or adapted.
*/

public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String docType =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n";
out.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>Hello</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1>Hello</H1>\n" +
"</BODY></HTML>");
}
}


我将它编译后得到的Servlet.class放入了
F:\开发软件\Tomcat 5.0\webapps\ROOT\WEB-INF\classes目录中
在F:\开发软件\Tomcat 5.0\webapps\ROOT\WEB-INF中编写web.xml文件如下:
<web-app>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

</web-app>
然后启动Tomcat,输入http:\\localhost:8080\servlet\HelloServlet,结果显示:


HTTP Status 404 - /servlet/HelloServlet

--------------------------------------------------------------------------------

type Status report

message /servlet/HelloServlet

description The requested resource (/servlet/HelloServlet) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.0.28
!-我辛苦了2天查找答案了,还是没成功,希望高手帮忙,不胜感激啊~~~
...全文
206 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HzieeNO_1 2005-11-07
  • 打赏
  • 举报
回复
终于找到原因了,我在web.xml开头加上
<?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">
然后输入http://localhost:8080/HelloServlet就成功了!
我明白了Servlet的类和它的映射关系!
,谢谢上面朋友的帮助!
还有classpath中,;%CATALINA_HOME%\common\lib\servlet.jar这个设置不对,后面应该是:servlet-api.jar,那个是老版本的设置!
xiaokang520 2005-11-01
  • 打赏
  • 举报
回复
哎,同志,用JB吧,傻瓜型滴,编译成WAR包,放到WEBAPPS目录下就行了,还有那么多事,细节清楚了再慢慢摸索吧...
hmsxq 2005-11-01
  • 打赏
  • 举报
回复
http://localhost:8080/HelloServlet
plovej 2005-11-01
  • 打赏
  • 举报
回复
应该输入 http:\\localhost:8080\HelloServlet
觉得你的目录结构有点不好!
esprit0318 2005-11-01
  • 打赏
  • 举报
回复
干嘛要放到root下?
自己建个servlet目录放在webapps下多好
根据你的代码,基本不用修改什么就可以用http:\\localhost:8080\servlet\HelloServlet访问了
HzieeNO_1 2005-11-01
  • 打赏
  • 举报
回复
还是不成功,我要去好好检查一遍,看看到底哪里有问题!
deuso 2005-11-01
  • 打赏
  • 举报
回复
你输入http:\\localhost:8080\HelloServlet
deuso 2005-11-01
  • 打赏
  • 举报
回复
你也可以把网页里的action属性改为HelloServlet这样挺方便
返回也好做
zhoutang 2005-11-01
  • 打赏
  • 举报
回复
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/HelloServlet</url-pattern>
</servlet-mapping>

改成:

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servletn/HelloServlet</url-pattern>
</servlet-mapping>

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧