设为首页 收藏本站
查看: 345|回复: 0

[经验分享] tomcat 中 /servlet url 映射

[复制链接]

尚未签到

发表于 2017-1-24 08:32:46 | 显示全部楼层 |阅读模式
http://z.alimama.com/alimamal.php?i=mm_10032417_125151_3793733&w=336&h=280&re=1024x768&sz=36&cg=fb3ed0af7f31311893722d2f31eb7450&prm=66420596&cas=prm&cah=738&caw=1024&ccd=32&ctz=8&chl=0&cja=1&cpl=0&cmm=0&cf=10.0&u=http%3A%2F%2Fwww.host01.com%2Farticle%2Fjsp%2F00040005%2F057211181893512.htm&r=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fhl%3Dzh-CN%26newwindow%3D1%26q%3Dtomcat%2Bxml%2B%25E8%25B0%2583%25E7%2594%25A8servlet%26meta%3D%26aq%3Df%26oq%3D&sx=548&sy=415&cbw=1013&cbh=3198
  我一直以为最新版是功能最完美的,所以我使用了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> 时,书中只是在轻描淡写

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-332649-1-1.html 上篇帖子: tomcat下应用JMS <转> 下篇帖子: Tomcat的server.xml文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表