免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: lamei

TOMCAT不符合J2EE标准!! 大家尽量别用。 [复制链接]

论坛徽章:
0
发表于 2005-03-02 11:30 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

[quote]原帖由 "Apache Jakarta Tomcat"]Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. [/quote 发表:

List of Java/J2EE Servershttp://www.javaskyline.com/serv.html

Tomcat只是一个Java Servlet and JavaServer Pages的参考实现

但也有好多地方用Tomcat做JSP/Servlet容器,像JBoss、Sun的Java WSDP,还有印象中Interwoven的Teamsite5也用了Tomcat

用与不用要根据实际情况而定,楼主所在公司的现实决定了不能选用Tomcat,而像一些不涉及J2EE,只是中小型应用的情况下,开源的、学习成本不高的Tomcat应该是个不错的选择

所以,觉得楼主的题目有些太绝对了

论坛徽章:
0
发表于 2005-03-02 11:32 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

原帖由 "wolfg" 发表:
缮峡杉??
Tomcat只是一个Java Servlet and JavaServer Pages的参考实现

但也有好多地方用Tomcat做JSP/Servlet容器,像JBoss、Sun的Java WSDP,还有印象中Interwoven的Teamsite5也用了Tomcat

用与不用要根据?.........


赞成! 同意。

论坛徽章:
0
发表于 2005-03-02 12:12 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

原帖由 "lamei" 发表:

我所测试的语句是这个: 大家可以回去自己测测。
request.getRequestURL()


把你的程序完整地贴出来,还有 struts 的配置。

另外,Servlet 的标准在这里: http://jcp.org/aboutJava/communityprocess/final/jsr154/index.html

要想证明一个实现不符合标准,得拿出具体的依据来,而不只是与其他的实现比较结果。

论坛徽章:
0
发表于 2005-03-02 13:30 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

ftp://yantaiiic:yantaiiic-1551@61.156.14.57/1.rar

这是测试例子 里有说明。

这个结果已经在 weblogic8.1sp1 websphere6.0 中结果是一样的。

论坛徽章:
0
发表于 2005-03-02 13:31 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

[quote]原帖由 "傲雪寒梅"]越不符合标准我越喜欢!!有个性,说明tomcat敢于打破就世界,不畏惧SUN所谓的标准,这样才能有自己的发展,说不定到时候SUN的标准就以tomcat为基础!所以尽量放心的用!只要不是写EJB和消息队列,什么项目都用tomca..........[/quote 发表:

呵呵,tomcat 从3开始,基本上由sun 主导开发的 ,是jsp/servlet 标准参考实现,说它不符合标准,真是天大的笑话。。。而bea,ibm在自己application sever  中都加入自己东西,这才是不标准。。。

tomcat 上开发的东西几乎可以不作修改,轻松向其它平台移植如,如resin,bea wls, ibm was 等。。。反之则非常困难,特别是ibm was ,resin...

楼主可能对java知道不多可以原谅,可能struts一窍不通,。。得到不同的结果,原因很简单...struts 配置文件中forward有redirect参数,不知道你有没有用过,struts Action同样是基于servlet 的,bea ,ibm server 在处理转发的默认方式不同而已...

论坛徽章:
0
发表于 2005-03-02 13:40 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

原帖由 "hantsy" 发表:

呵呵,tomcat 从3开始,基本上由sun 主导开发的 ,是jsp/servlet 标准参考实现
tomcat 上开发?.........


你说的没错,我很早就看到SUN力推TOMCAT做容器。



你说他们有自己独立的实现方式, 可我纳闷,为什么WEBLOGIC 和 WEBSPHERE 会得到J2EE认证。?

论坛徽章:
0
发表于 2005-03-02 13:45 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

楼主可能对java知道不多可以原谅,可能struts一窍不通,。。得到不同的结果,原因很简单...struts 配置文件中forward有redirect参数,不知道你有没有用过,struts Action同样是基于servlet 的,bea ,ibm server 在处理转发的默认方式不同而已...


STRUCT 我们一直用。 其实原是例子是这样的:


我们用STRUCT1.1 作开发 当我执行下面地址时,struct 控制转发 显示页面为index.jsp.
http://192.168.1.88/zlsf/sf/log/news.do?actor=look
但URL地址是不会变的还是news.do 形式。

当前我们访问是下列地址:
http://192.168.1.83:82/zlsf/sf/log/news.do


我们做另一个翻页显示,各个版本得到结果: pager.offset=2 表示 第二页

第一种情况:
out.print(new String(request.getRequestURL()));
http://192.168.1.88/zlsf/sf/log/index.jsp<-----WEBLOGIC WEBSPHERE 得到结果。
第二种情况:
out.print(new String(request.getRequestURL()));
http://192.168.1.83:82/zlsf/sf/log/news.do?pager.offset=2<-----TOMCAT 得到结果

到底哪种是正确的呢????
news.do  还是  index.jsp  形式。

论坛徽章:
0
发表于 2005-03-02 16:55 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

原帖由 "lamei" 发表:
到底哪种是正确的呢????
news.do 还是 index.jsp 形式。


下载了你给的例子看了一下,终于明白你的意思了。你的意思是说,在 .jsp 里调用 request.getRequestURL(),在 tomcat 里返回的是 *.do,在 WL/WS 里返回的是 *.jsp,而你不知道哪个正确。

这里有一点要注意的是,不管是 tomcat 还是 WL/WS,在地址栏内的地址都是 *.do 的形式,而不是 *.jsp 的形式。

你的截图里地址栏里面的 /test/processSimple.do,在你的 struts-config.xml 有下面的定义:


  1.                 <action path="/processSimple"
  2.                                 type="examples.simple.ProcessSimpleAction"
  3.                                 name="simpleForm"
  4.                                 scope="request"
  5.                                 input="/jsp/simple/Simple.jsp"
  6.                                 validate="true">;
  7.                         <forward name="success" path="/jsp/simple/SimpleResults.jsp"/>;
  8.                 </action>;
复制代码


从这个 mapping 可以看出,processSimple.do 应该做一个 forward 到 /jsp/simple/SimpleResults.jsp (因为 action 里面没有 redirect 属性,所以 redirect 属性默认为 false)。在 SimpleResults.jsp 里面,你做了一个 <%=request.getRequestURL()%>;,来显示 RequestURL。这里到底应该是原始的 RequestURL (*.do) 还是当前的 jsp 页面的 URL (*.jsp) 呢?看看标准是怎么说的吧。下面一段引自 Java" Servlet Specification
Version 2.4,SRV.15.1.3 (P. 242-243):


  1. public java.lang.StringBuffer getRequestURL()

  2. Reconstructs the URL the client used to make the request. The returned URL
  3. contains a protocol, server name, port number, and server path, but it does not
  4. include query string parameters.
复制代码


意思是说,重建客户端用来发出 request 的 URL。在你的例子里,用户端发出的 request URL 是 *.do 的形式,所以 tomcat 的做法是符合标准的,而 WL/WS 则不符合,因为它们用的是 forward 之后的 URL,而不是客户端发出的 URL。至于它们为什么不符合标准,但还是得到了 certification,我想是他们付了巨额的 certification fee 给 Sun 的缘故吧。

Tomcat 对标准的符合是出了名的,比如说,用 container managed security 的时候,cookie 的名称一定是 JSESSIONID。有许多人在 mailing list 里面问能不能改变,答案是否定的,因为这个是标准里规定的,除非你自己改 tomcat 的代码。

论坛徽章:
0
发表于 2005-03-02 17:06 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

The returned URL   如果这样应该是do的形式。

我想是他们付了巨额的 certification fee 给 Sun 的缘故吧---〉哎~~乱了。。  对了REZIN 好像也获得了J2EE认证,我会来测测看,是不是他也给了。  

我会把这个问题,返回国内中间件服务厂商。 让他们做个解释。。。

感谢你的热心帮助。。。  


我们再续。。。。。

论坛徽章:
0
发表于 2005-03-02 21:17 |显示全部楼层

TOMCAT不符合J2EE标准!! 大家尽量别用。

resin对标准支持得最差(就不用谈什么认证了),但速度快,不知道现在怎么样了。。。我有几年都没有用过了。21cn.com用的是resin...

国内金碟的application server ,好像也通过了认证,你用过了。。。我到现在还没有不知道怎么样的,。。
在java方面,ibm一直是标准反叛者(说白了就想把java占为已有)。。。jdk 1.3以前与标准根本不兼容(j2ee就更不用说了),1.4也与标准有出入,。。。

java 符不符合标准是以www.jcp.org 的各种最终发布的spec 文件为标准,
这些东西都可以从www.sun.com上下载。。。

ibm was  以前用一段时间,我觉得商用的东西应该伸缩性会强一些,很多东西设置的,bea 的东东还没在工作中用过,现在公司一直用tomcat 开发。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP