Topic: 请教Servlet的问题

  Print this page

1.请教Servlet的问题 Copy to clipboard
Posted by: 鸡肋男
Posted on: 2003-09-04 08:55

我写了一个test.Test的servlet,放在Tomcat中webapp\test\WEB-INF\classes\test目录下,按书中说,启动Tomcat,在IE中输入:http://localhost:8080/test/servlet/test.Test就可以访问,但是提示没有找到资源,只有在web.xml中注册该servlet,并做好映射,才可以访问,如:http://localhost:8080/test/Test,把test.Test映射成Test。
这是为何?不是按servlet规范,使用webappname/servlet/完整类名,即可访问servlet了吗?
我用Tomcat 4.1.24
望大侠解答我的困惑。感激!

2.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: bbbaby
Posted on: 2003-09-04 11:10

关注中,对web.xml的配置我不太懂,借机会学习~~^_^

3.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: hitaco
Posted on: 2003-09-04 13:27

mapping the url pattern and servlet name in web.xml deployment descripor is the standard way.

I wonder whether /servlet/.... is compliant to servlet specification.

4.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: fjzuser
Posted on: 2003-09-04 14:43

<?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">
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>

<servlet>
<servlet-name>Test</servlet-name>
<display-name>Test</display-name>
<description>A test Servlet</description>
<servlet-class>test.Test</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/Test</url-pattern>
</servlet-mapping>
</web-app>
看看添加中间这段.

5.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: lasfox
Posted on: 2003-09-04 16:27

我在Eclipse中调试,用 webappname/servlet/完整类名 可以访问。
以前直接启动Tomcat调试好象也不行,不知为何?

6.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: 鸡肋男
Posted on: 2003-09-05 09:25

是啊,只有按照fjzuser所说的在web.xml中设置servlet的映射才可用webappname/url-pattern名才可访问,而使用webappname/servlet/完整类名却提示没有该资源,奇怪,难道Tomcat不支持这种方法吗?

7.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: why
Posted on: 2003-09-05 15:53

鸡肋男 wrote:
是啊,只有按照fjzuser所说的在web.xml中设置servlet的映射才可用webappname/url-pattern名才可访问,而使用webappname/servlet/完整类名却提示没有该资源,奇怪,难道Tomcat不支持这种方法吗?

这种方法 has no longer been 支持 since version 4.0.5/4.1.12 for security reason.
http://www.cjsdn.com/post/view?bid=6&id=1813&sty=3
http://www.mail-archive.com/tomcat-dev@jakarta.apache.org/msg33723.html

you may uncomment (or add) the following section in web.xml if you really want the functionality back (not recommended):
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

8.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: lasfox
Posted on: 2003-09-08 09:53

谢谢版主,终于知道是怎么回事了!

9.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: beafox
Posted on: 2003-09-09 10:03

有关TOMCAT的WEB。XML的配置要如何配SERLET?

10.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: 鸡肋男
Posted on: 2003-09-11 14:05

原来在Tomcat的web.xml中有一段:
<!--
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
只要把注解去掉,所有的web应用程序都可以用webapp-name/servlet/完整servlet类名来访问了,正如why所说,这种访问方式将被淘汰。

beafox:很多书都有介绍的,去看看吧,挺简单的。

11.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: beafox
Posted on: 2003-09-11 15:13

谢谢你!

12.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: yekai
Posted on: 2003-09-12 22:48

鸡肋男 wrote:
我写了一个test.Test的servlet,放在Tomcat中webapp\test\WEB-INF\classes\test目录下,按书中说,启动Tomcat,在IE中输入:http://localhost:8080/test/servlet/test.Test就可以访问,但是提示没有找到资源,只有在web.xml中注册该servlet,并做好映射,才可以访问,如:http://localhost:8080/test/Test,把test.Test映射成Test。
这是为何?不是按servlet规范,使用webappname/servlet/完整类名,即可访问servlet了吗?
我用Tomcat 4.1.24
望大侠解答我的困惑。感激!

为什莫你的servlet以Test结尾,Java中的所有class要不以.java就以.class结尾,怎莫会以Test结尾呢?

13.Re:请教Servlet的问题 [Re: 鸡肋男] Copy to clipboard
Posted by: 鸡肋男
Posted on: 2003-09-15 09:01

test.Test是完整的类名:即test是包名,Test是类名。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923