100分求助:关于Apache Tomcat/4.0.6 - HTTP Status 404 - /………的问题

panweihu 2004-11-02 02:16:10
在JBuilder9中开发servlet程序,需用到jdbc连接sqlserver2000数据库,先在property中设置jdbc驱动。分别做以下两个程序:
1。照着书上写了一个程序,其中工程名,web application名,servlet类名均为JDBCServlet,其他的设置都采用默认,其他的代码也完全和书上的一致。产生html文件。程序正确运行,点击" submit"时,显示数据库中的数据。
2。仍然是做书上这个程序,不同的是我把几个名字改了一下:
工程名为:JDBCServlet(同上).
Web application名为:WebApp.
servlet名为:Servlet1.
别名为:another.
Runtime Configure名为:Run_servlet.
接着我把1中的html文件的代码考过来,将<form action="/JDBCServlet/jdbcservlet" method="post">
修改为<form action="/WebApp/another" method="post">.
然后我再把1中的JDBCServlet.java代码考到Servlet1.java中,将类名JDBCServlet改为Servlet1.
最后运行程序,点击" submit"时,出现:
Apache Tomcat/4.0.6 - HTTP Status 404 - /another
type Status report
message /another
description The requested resource (/another) is not available.
请问,这是为什么?我已经折腾了好几天了,在网上也没找到相关资料,只好求助大家了。
...全文
246 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
panweihu 2004-11-03
  • 打赏
  • 举报
回复
菜鸟问一下楼上的:如何判断当前页面是不是在应用根目录下?
panweihu 2004-11-03
  • 打赏
  • 举报
回复
经过我反复的实验,我彻底弄明白了form中的action路径问题。form 总的action应该为URL pattern里所设置的值,通过
<servlet-mapping>
<servlet-name>another</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>来找到another,然后再根据
<servlet>
<servlet-name>another</servlet-name>
<servlet-class>jdbcservlet.Servlet1</servlet-class>
</servlet>找到处理请求的servlet类。
花三天才明白过来是这个原因,大家是不是太大了?呵呵
大家明白了吗?
panweihu 2004-11-03
  • 打赏
  • 举报
回复
我是这样来设置servlet的别名的,不知道对不对:
在用jbuilder9来构建servlet的过程中有一步是:
Servlet Wizard--step 4 of 5
Enter webapp details
Optionally specify a name and mappings for the servlet.
Name:
URL pattern:
本来Name和URL pattern都是默认的,比如Name默认为servlet1,而URL pattern默认为:/servlet1
然后我把Name改为another,
lenoli 2004-11-03
  • 打赏
  • 举报
回复
servlet的映射
panweihu 2004-11-03
  • 打赏
  • 举报
回复
我发现WebApp目录下和WEB-INF目录并列的有一个名为servlet1.html的文件,于是就把form的内容改为:
<form action="/WebApp/servlet1" method="post">就可以了,但我发现web.xml文件中根本没有关于servlet1的配置,而是
<servlet>
<servlet-name>another</servlet-name>
<servlet-class>jdbcservlet.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>another</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
another作为一个别名,它的作用到底是什么呢?如果把上面的代码删掉,程序就不能运行,连网页都显示不出来,那么another的作用是什么呢?
stonecsdn 2004-11-02
  • 打赏
  • 举报
回复
<form action="/WebApp/another" method="post">改为
当前页面在应用根目录下:则改为;<form action="another" method="post">.
不在在应用根目录下:则改为;<form action="/another" method="post">.
panweihu 2004-11-02
  • 打赏
  • 举报
回复
顺便我想还问一下:
1.servlet的别名是不是只能采用默认的呢?好象我每次改了别名后,同时也保证了在web.xml中别名和servlet程序代码的映射,但程序还是不能运行.所以我想麻烦哪位大虾介绍一下别名的使用方法.
2.在project properties 中,要用到servlet资源,依次选择Path-->Required Libraries,点击Add,选择
User Home目录下的servlet,但它呈现红色,表示不可用,那如何设置它的属性和资源使其能被使用?而有些程序中看到,除了User Home目录下有servlet资源外,Project目录中也有servlet,那它又是从何而来?
panweihu 2004-11-02
  • 打赏
  • 举报
回复
首先 ,我是用jbuilder9开发工具,自然servlet是放在包中的;其次,楼上写的代码其实是在jbuilder9中设置servlet时自动产生的,不需要再人为地加进去;我只需检验下web.xml中的别名是不是form中引用的那个就行,事实上它们是一致的.所以,现在还是找不到问题的所在.欢迎各位大虾前来帮忙解答.谢了.
shaopin 2004-11-02
  • 打赏
  • 举报
回复
初学servlet常见问题,还是给你写一下
web.xml中加入:
<servlet>
<servlet-name>Servlet1</servlet-name>
<servlet-class>包名.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet1</servlet-name>
<url-pattern>/Servlet1</url-pattern>
</servlet-mapping>

最好给servlet放到包里,要不然麻烦多多
调用<form action="./Servlet1" method="post">
shaopin 2004-11-02
  • 打赏
  • 举报
回复
有关servlet的映射没有做好,用web.xml配置servlet,同类问题在csdn上贴了好几次了
ymm 2004-11-02
  • 打赏
  • 举报
回复
没找到你所指定的SERVLETL,应当是你程序里面还有地方可能还是JDBCServlet/jdbcservlet
xinsheng212 2004-11-02
  • 打赏
  • 举报
回复
帮你顶下。

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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