我一直以为最新版是功能最完美的,所以我使用了tomcat5.0.19,但按书上定的我编每个servlet,调试时都要在项目目录下的web-inf/web.xml加入类似以下的代码:
<servlet>
<servlet-name>CounterServlet </servlet-name>
<servlet-class>mypack.CounterServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CounterServlet </servlet-name>
<url-pattern>/counter</url-pattern>
</servlet-mapping>
后来通过多方打听,才知道tomcat有个调用器(invoker servlet),只要在web.xml中加入以下代码:
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
便直接用http://localhost:8080/项目目录名/servlet/servlet名 的方式直接调试,如果项目是root话,其中的项目目录可省即 http://localhost:8080/servelt/servlet名。可我按上述方法在tomcat5中使用总不成功(其它配置均正确),且启动tomcat的dos窗口出现多行”严重”字样,提示错在web.xml上,连基本的tomcat默认页都出错,把以上servlet-mapping去掉,就没出现以上问题了。后来仔细查看了网上的帖子,发现网上谈调用器的人大都用的是tomcat4,而且也听说tomcat5相对于tomcat4是有些改变,于是从官方网上下了tomcat4.1.30版,再按上面方法试,居然成了。自然我的上机也就完全改用tomcat4了。由于我装有win2K+winXP双系统,为了了解tomcat5的新功能,在另一系统上也装有tomcat5,但调试还是用的tomcat4,这个疑问也放下了。
昨才得知tomcat4.1.12之前的版本,默认情况下调用器是启用的,由于一个安全缺陷的揭示,因此,此以后的版本,调用器默认情况下是禁用的。如果要启用的话,需要将conf/web.xml文件中下面的servlet-mapping无素取消注释。打开相应的web.xml,发现其中真的有
<!-- The mapping for the invoker servlet -->
<!—
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
-->
只不过加了注释符,禁用了。要解禁,根本不用再加,只用把注释符去掉就行了(当时咋没注意呢,呵呵。想当然了,我又查看了一下tomcat5的相应的web.xml,它也有这几项,被加注释,相必有这个功能呀!于是切换系统,运行,还是上面的错误。哦,对了,在web.xml配置时,讲究、对应关系,于时分别查看tomcat4与tomcat5中的项,真的发现了
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>
org.apache.catalina.servlets.InvokerServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
不同之处在于在tomcat5中,以上代码加了注释符被禁用了,而tomcat4却没有,这就解释为什么tomcat5总出错的原因。于是马上去掉注释符,再试tomcat5,初始化没出现“严重”字样,运行也没问题,又一个疑问解决了。
综上,在tomcat4中,启用servlet调用器,只用去掉名为invoker的的注释符即可;而在tomcat5中,除此之外,你还要去掉同名的的注释符。
另附:tomcat4最高版4.1.30 , tomcat5最新版5.0.27 均可在tomcat官方地址下载
http:// http://jakarta.apache.org/site/binindex.cgi下载
==================================================
查看tomcat 的release-note( 我用的版本: 5.0.25), 会发现如下一段:
------------------------
Enabling invoker servlet:
------------------------
Starting with Tomcat 4.1.12, the invoker servlet is no longer available by
default in all webapps. Enabling it for all webapps is possible by editing
$CATALINA_HOME/conf/web.xml to uncomment the "/servlet/*" servlet-mapping
definition.
Using the invoker servlet in a production environment is not recommended and
is unsupported.
另外,我在阅读<core servlet and java server pages: 2nd editon> 时,书中只是在轻描淡写
分享到:
相关推荐
【Tomcat下Servlet的配置】涉及的是在Apache Tomcat服务器上部署和运行Servlet的基本步骤,这对于初学者来说是一项重要的技能。Servlet是Java编程语言中用于扩展服务器功能的接口,常用于构建动态web应用。 首先,...
此外,我们还需要在web.xml中配置Servlet,定义文件上传的URL映射和相关参数。对于使用插件的情况,我们可能需要在Tomcat的conf/server.xml或其他配置文件中添加插件的相关配置。 总结来说,本话题涉及的知识点包括...
Tomcat作为Servlet容器,它遵循Servlet规范来运行和管理Servlet。在Servlet中,有以下几个关键概念: 1. **Listener(监听器)** 监听器是Java EE中的一种组件,它们监听特定对象的事件并进行响应。例如,`...
在`web.xml`文件中,使用`<servlet>`标签定义Servlet类,`<servlet-mapping>`标签则指定Servlet的URL路径。例如,要映射名为`MyServlet`的Servlet,可以这样配置: ```xml <servlet> <servlet-name>MyServlet</...
通过定义servlet映射,我们可以将特定的URL请求转发给对应的Servlet方法进行处理。此外,Servlet还可以调用数据库接口,完成数据的增删查改操作,以支持网上交易系统的功能需求。 JavaBean是一种符合JavaBeans规范...
在本示例中,我们将深入探讨如何创建并运行一个简单的Servlet程序,同时结合Tomcat服务器进行部署。首先,我们需要了解Servlet的基本概念。 Servlet是一个Java类,它扩展了服务器的功能,可以处理HTTP请求,并返回...
这里,我们创建了一个名为"ueditor"的Servlet,并将所有以"/ueditor/"开头的URL映射到这个Servlet。`DefaultServlet`是Tomcat内置的Servlet,可以处理静态资源。 接着,你需要将UEditor的静态资源文件部署到Tomcat...
4. 访问Servlet:在浏览器中输入`http://localhost:8080/应用名/URL映射`,如`http://localhost:8080/20211210tomcat2/hello`,即可看到Servlet返回的结果。 这个"20211210tomcat2.zip"文件可能包含了上述的所有...
`web.xml`是Web应用的部署描述符,用于定义Servlet的映射路径和其他配置。打开`WEB-INF/web.xml`,添加Servlet配置。例如: ```xml <servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class...
- **作用**:此文件是所有Web应用程序的全局配置文件,用于配置Web应用级别的参数,比如Servlet映射、初始化参数等。 - **关键配置项**: - `<servlet>`:定义Servlet类及其初始化参数。 - `<servlet-mapping>`...
包括Servlet的`<servlet>`和`<servlet-mapping>`标签,分别指定Servlet的全限定类名和URL映射。 6. **运行Tomcat**:在项目上右键,选择“Run As” > “Run on Server”。如果尚未启动Tomcat,Eclipse会提示你启动...
在web.xml文件中,可以配置Servlet的映射路径、初始化参数、负载均衡策略等。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet...
4. **Servlet配置**:在`web.xml`文件中,Servlet可以通过`<servlet>`和`<servlet-mapping>`元素进行配置,指定Servlet类、URL映射和其他属性。 通过深入研究Tomcat 8源代码和Servlet源代码,开发者可以学习到如何...
2. 注册Servlet:在Tomcat的web.xml配置文件中,我们需要定义Servlet的映射,包括Servlet的名称、全限定类名以及URL路径。例如: ```xml <servlet> <servlet-name>CarReservationServlet</servlet-name> ...
在web.xml文件中,我们需定义Servlet,指定其类名和URL映射。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-...
同时,需要在`WEB-INF/web.xml`文件中配置Servlet,指定其URL映射。 ```xml <servlet> <servlet-name>AjaxServlet</servlet-name> <servlet-class>AjaxServlet</servlet-class> </servlet> <servlet-mapping>...
在这个方法中,我们可以调用Servlet的URL,使其在Tomcat启动时被访问: ```java import javax.servlet.*; import javax.servlet.annotation.WebListener; import java.io.IOException; @WebListener public class ...
5. 在项目的`WEB-INF/web.xml`文件中,配置Servlet映射: ```xml <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-...
2. **Servlet配置**:在`web.xml`部署描述符中,你可以定义Servlet的映射和初始化参数。例如: ```xml <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class...