some conception in java

星期三, 七月 15th, 2009

  • JNDI: (Java Naming and Directory Interface) 这是在javaEE体系内部的一个“域名”系统,你可以通过配置指定某种资源的命名,然后通过该命名来引用资源,以达到程序代码和资源之间解耦的目的。这里的资源最常见的是jdbc数据源,通常还会有某种环境实体、EJB组件或者其他资源引用。

  • RMI: (Remote Method Invocation) RMI内置于java语言核心,是java最高效的远程对象访问和调用技术。实现类似功能的技术每个平台都有,.NET平台下有.net remoting,不过到3.0以后都整合为WCF了。RMI是基于TCP/IP的,效率很高,是EJB的实现基础,但是不能穿越防火墙。要能穿越防火墙当然得走http,最常见的就是web service得soap了,不过公认soap的效率是非常低的。我google了一下,java常用的技术还有Hessian/Burlap/Httpinvoker,这些都是基于http协议的,可以穿越防火墙。其中Hessian基于二进制代码,协议公开,在.net/php/python等各个语言都有相应实现。Burlap是基于xml,效率相对低些。Httpinvoker内置于Spring,据说效率和RMI差不多,但是应用不多不太成熟。目前除了EJB基于RMI以外,其他情况下最常用的是Hessian。

  • JMS: (Java Message Service) 共享空间和消息传递是软件系统中最常用的数据传播方式,jms就是java提供的消息传递服务,一般也叫做消息中间件,基本来说这也是每个技术平台必备构成,例如.net或者说ms的消息队列(MQ)组件。如何控制消息的传递?点对点?分发订阅?异步传输?这些特性都由jms提供,不需要程序员自己再从头开发了。特别的,javaEE提供了一种特殊的消息驱动bean(message-driven bean,MDB),他将ejb和jms联系起来,利用jms消息来调用bean。

  • 查看全部内容 >>

thinking of java web develop learning

星期四, 七月 9th, 2009

看了几天java web开发的东东,简单梳理一下。

  • 容器

    这是java web开发过程中非常强调的一个概念。顾名思义,在它的内部存放着某些东西,各种java对象,包括所谓的bean等等。java的容器也可以称其为一个应用服务,或一个框架,用户通过配置指定代码或者说对象、构件存放的路径,以及对象之间的关系、对象和容器直接的关系。这通常有一套标准,例如javaEE本身的servlet/jsp的规范,或容器本身特定的某些标准,你的配置和代码必须符合这种标准,才能被容器调用使用。标准有很多形式,xml的配置、java接口的实现、对象的继承、java的标注等等,他们决定了对象如何被容器调用、对象之间的关系、以及对象在容器中的运行状态。

    目前作为java web开发最常用的servlet/jsp容器是tomcat,企业应用服务器是jboss。spring框架虽然没有服务器的概念,但是从其包含、组织、调用java组件的特征来看,也可以说是容器了。

    回忆.net,虽然没有特别强调容器的概念,但是从程序的流程和组织架构来说,iis就是.net web程序运行的容器了。

  • web生命周期

    在任何技术平台的web开发中,web的生命周期都是一个核心概念。由于web应用都是基于http协议和b/s模式,所以不论采用何种技术,其生命周期都是类似的。

    查看全部内容 >>

Tomcat与Java Web开发技术详解

星期天, 七月 5th, 2009

Tomcat与Java Web开发技术详解

想找基于java的web开发书,原来选定的几本oreilly的书后来看看,版本都太老了,而且内容比较分散,不适合入门阶段上手。无意在书店翻了翻这本,看了一遍目录感觉还不错,但是基于以往的恶劣经验,我很久没有看国产技术书籍了,有些犹豫。又详细看了一两章,回家又考虑再三,最后在amazon.cn买了。

花了4天时间,一口气看完,感觉挺不错。

优点

  • 技术体系比较完整。关于java web开发基本的各方面技术都讲到了,重点是servlet/jsp及其在tomcat下的部署,内容详实。其他ejb、struts、ant、log4j等相关技术和工具也简单带过,使读者有初步的了解。
  • 行文流畅,逻辑清晰。文字阅读都很流畅,没有什么晦涩的地方,理解没有什么问题——也许这和我以往.net web开发经验有关,不过文字叙述确实不错,就算没有太多的web开发经验应该也问题不大。
  • 理论和实践并重。技术的讲述既有原理,也有代码实践,还包括servlet/jsp类的简单类图和源代码,方便理解。

吹毛求疵一下。这是一本教你如何上手servlet/jsp的书,一本教程,读完了你应该就可以上手做一些相关实践开发工作,但是在此之外,你也不太可能有其他更多的收获。作者就是站在一个普通的开发人员的角度,来讲述如何完成一系列工作,做一个合格的开发人员,仅此而已。和我们常看的那些国外的经典技术书籍相比,此书缺乏某种大的视角。我看完这本书,立刻又去翻了一下《JSP设计》,两者都是讲的相同的东西,但是阅读的体验大不相同。

嗯,最后,这是一本好书,如果你希望掌握java web开发的基本技能,这本书是一个不错的选择。

head first java

星期四, 六月 11th, 2009

head first java

一本非常棒的书,不愧“head first”的称谓。清晰的条理,生动的图示,偶尔来点老外的幽默——其实中国人不太能理解,阅读体验非常舒畅。oreilly的这个系列应该都很熟悉了,优点多多估计大家都知道,就不提了,说点不优的吧。

  • 如果你熟悉一门类似的静态面向对象语言(例如C#)那就不要看这个了,你会觉得有些罗嗦,因为大部分语言特性你都很清楚,没有必要看那么多示例、提示和比较等等;
  • 如果你是想全面的了解java语言,估计你会很失望,这本书里面甚至没有讲“反射”;
  • 如果你想找一本语法参考,那这不是你想要的(好像有点吹毛求疵……);

好吧,基本来说,如果你没有C#的熟练经验,并且想学习java语言,那这几乎可以说是你必看的第一本书,因为他实在太……嗯,也没有别的语句了,实在太棒了。

当看完了这本——一个有足够coding经验的人大概需要2~3天,如果还想继续比较全面的了解java语言,那就看这个

Java技术手册

很经典的java手册,全面描述了java的语言特性,简洁明了。可惜,中文版把后面的参考手册截了。出版社的本意是好的,大家可以少花钱,网上查查就行。 可惜Java网上文档的质量啊,实在不咋地,别的不说,就那个排版和字体,看起来真是头疼。

建议以后还是保留,不翻译也没关系。

ubuntu下netbeans中文乱码解决

星期二, 六月 2nd, 2009

由于英文字体导致

解决:
拷贝合适的中文字体到JAVA_HOME目录jre字体库fallback目录即可
sudo cp /usr/share/fonts/wqy/*  {$JAVA_HOME}/jre/lib/fonts/fallback/

JSP / Eclipse / 重构

星期天, 四月 11th, 2004

这两天看了看JSP,查资料安装调试系统花了半天,Tomcat5.0.19 + SqlServer2K JDBC + Eclipse2.1.2。

JSP粗略看了看,感觉几点

  • 细节琐碎,很多代码细节比较琐碎,写起来很麻烦;
  • 命名不友好,一些方法、类等等命名不够友好,直观看不清楚什么意思,可能是我习惯了.NET的命名,不过记得我初学.NET时对命名理解还是很清楚的啊;
  • 错误异常很难懂,我的英文虽然不咋地,但是看计算机英语也很久了,一般都没有什么问题,不过tomcat的Erro页面完全没看懂……

可能是我还不习惯Java的文化吧 :) 我对java强大的企业级开发技术很有兴趣,以后还要多花时间来看看。

Eclipse这个IDE虽然很多地方不如VS,不过在重构应用上有很多让我惊喜赞叹的地方,她对不同项目对象包括项目、包、类、方法、属性等等都有不同的重构应用,还有JUnit测试,不知道.NET什么时候才能具备这些特性……

Eclipse截图两张