j2ee 学习体会

 


最近一直研究 j2ee 开发问题,咨询 n 多高手寻求指点,最终更加茫然,因为他们都给了我一大堆无法理解的名词术语,本人愚笨,立刻晕倒!什么“必须面向对象”,什么 DAO,什么 struts,什么 hibernate等,看来要学的东西太多了!这怎么还能有功夫喝 java 咖啡呢?!

本人自认为是 .net 高手,在微软技术上从来无需费力,可到了 j2ee ,不知如何下手啊!

于是发奋图强,搜罗万千网络世界,从一个单词一个单词研究,什么 servlet,什么 web.xml,什么 POJO,什么 jsp 脚本,。。。

当终于尝试着搞定一些小程序的时候,让人汗颜的是,其实 j2ee 和 .net 相互抄袭,只不过各自用各自的“专用名词”来说同样一个技术原理罢了!真不知道这些公司怎么想的,就像各自用各自的语言一样表达着同样的意思!咕哝玄虚!!

ok,下面就看看他们的本来面目吧。

1、java 非要面向对象?没错,但无需非要彻底研究透 java 语言自身的面向对象,而是掌握这种思想编程就行了,c#,c++ 本来已经这样了,这是第一抄。当你真的编写到 servlet 的时候,发现 java 语言本身不够,原来用的是 servlet 那套函数和语法规则了!嘿嘿,逗你玩呢!

2、jsp 脚本对象,干脆直接说网页嵌入 java 语言岂不是更好,非要搞出一套理论:动作元素,脚本元素,指令元素,嘿嘿!显得丰富,实际上就是 asp 的变种,这又是一大抄!

3、好不容易搞个网站,想用 tomcat 跑起来,发现好像必须把目录放到 webapps 下,网上众多 j2ee 们也是如此,再不就建议修改那个 server.xml ,搞得非常混乱,实际上,使用 context.xml 最为干净,甚至比 asp.net 还方便,为什么非要绕圈子呢?实际上,这是 tomcat 老兄的要求,与 java 无关了,没办法,谁让 java 程序必须搭乘 tomcat 才能成为 web 呢?

4、按照 .net 逻辑,任何程序一定有入口和调用关系,结果你到 j2ee 里找吧,非累死你不可,因为人家根本就是“集成”思路,靠多个软件来支撑着,比如,最简单的 servlet 网站也需要 jdk+tomcat,他们靠什么合作呢?就靠那个 web.xml 了,原来程序调度逻辑在这里配置,不是在 java 代码里啊!所以,你那微软那套思路就无法下手了。这一点,asp.net 也在抄 j2ee,就是那个 web.config了,这是一大抄!

5、还有更神的,不知道谁抄谁了,就是热热闹闹的 spirng + hibernate 了,当然又是多了几个软件兄弟来帮 java 实现,常见的就是 struts,spring,hibernate 系列开源 jar 包,用来帮助 tomcat 老兄,因为 tomcat 也不是万能的,把这些软件下载了装上,可还是不行啊!为什么?因为还要做 n 多接口开发和映射。struts 要求用 struts 语法规则来写程序,这个时候,java 只能是编程语言了,可用的就是那点oop 思想,其他所有 api 都不在 jdk 里了,到哪里找?不是安装了那些个 jar 文件吗?在那里有啊!赶紧查看相关的文档吧,别在 jsdk 里翻资料了!忙活半天,发现,其实就是 .net 中的 适配器和数据集的功能。搞不懂到底谁抄谁了!!!

6、要找可视化开发工具?对,怎么设计界面呢?几乎所有 .net 人士都这样想 j2ee开发。告诉你,跑偏了,人家不是 IDE,而是 SI(系统集成),所以你要去集成开发环境。有人说用 jbuilderx,算了吧,还不够捣乱的,等用到最后,发现还不如直接手写痛快呢。那么怎么办? 原来人家把 dreamweaver 集成进来了。我问过 n 多 j2ee 开发者,没人告诉我用什么做界面,似乎都在编 java代码!原来,界面让网页设计师做了,他们说不出来。另外,也可以用 myeclipse 这个好东西啊!他集成好了各种需要的工具了。最有意思的是,有的 j2ee 告诉我用记事本编程,不知道是不是疯了,还是从来不做完一个完整系统,也就不用做界面,只要编码就好了。其实,作为优秀的开发者,必须考虑界面设计问题啊!所以,如果你问他们界面设计问题,他们大多是“打死也不说(全面)”!

7、控件在哪里?到了 j2ee ,没有控件,只有标签,其实功能一样。现在又出来了 tapestry,干脆就叫做控件了,j2ee 体系也在不断丰富着视图层设计技术,包括 jstl,jsf等,这也许抄袭微软的控件概念吧。(本人初识这些技术,恐有不准确之处,请见谅!),j2ee 技术其实已经提供了大量的资源,只要你找到,并掌握其用法,也不是难事,比如 struts tag。那些 jar 文件都是压缩包,你用 winrar 打开就看到里面的结构了,不是什么的东西。

8、数据库编程怎么没有 ado.net?如果你想找类似的控件,那就费劲了。因为,jdk 不提供那么多,tomcat 也不理你,而是各个数据库厂商管,他们提供了 jdbc 接口,告诉你怎么用啊!千万别找 Java 算账!

9、j2ee 的秘密就是,java 语言只是一种编程语言或是规范了,不像 .net ,除了语言也提供更多开发资源 API。要开发,就需要集成,需要找其他软件帮忙,好在大家的接口语言都是 java,您就用 java 语言的规矩去使用那些 API 好了。不要想找到一种叫做 j2ee.net 的东西,没有。你要找的是编程方法和思路,然后找到工具去实现。那些工具有的是,大多免费,并且开发源代码。就是资料少,自己需要仔细研究一下下!

10、xml 很关键(现场记录:当我输入 xml 的时候,没有关闭输入法,出现了 小毛驴!嘿嘿,很符合 xml 的性格),你搞不定他,那可就遇到 j2ee 小毛驴了,不听话。因此,要搞定 j2ee 中的几个小毛驴:server.xml,web.xml,context.xml,struts-config.xml,hibernate-cfg.xml,applicationcontext.xml,.hbm.xml。就像搞定 .net 的 dateset 一样。这些 小毛驴不但是实现程序运行逻辑的配置文件,还是数据处理的映射文件(持久化的关键),一大多 java 的类文件堆放到磁盘上,毫无顺序可言,怎么调度他们啊?就靠这些 小毛驴了。当然这也不是绝对的,也可以包进去,但这会违背 mvc 意图的。所以,不要花时间琢磨 java 类代码之间如何调度,而是花时间分析这些 小毛驴,而 java 的类,越独立越封装越好,这与 c 语言或微软的逻辑完全不同啊!.net 弟兄们切记,切忌(不是错别字)!

罗嗦到此,今日搞定了几个 java 开源系统,感到很爽,到此发发感慨,本人刚刚 j2ee 入门,还请高手们指点一二!!在此谢过!

本人分析的开源项目是:xplanner 企业敏捷开发项目管理系统;eberom 客户关系管理系统;还有一些小的就不说了。不好意思,88!