Archive for 02月 6th, 2010

不负责任书评(Java 篇,第一部)

Feb 06 2010 Published by Tony under Other

《EJB 3 in Action》中文版
优点:

这是一本好书,浅显易懂,翻译的也不错,入门的经典书籍。

缺点:

不够深入,基本点到为止,特别是关于配置,集群,测试这些内容介绍的太少,或者根本就没有。

《Java 学习笔记 jdk6》
优点:

浅显易懂,涉及的面比较广,有些章节写的引人入胜(我一般很少用这个词形容技术书籍的),特别是关于class loader的章节。

缺点:

大部分章节太浅了,而关于JDBC等章节,我认为可以删掉了,这些根本就是JavaEE的范畴,没必要强插进来。而且例子中使用jdk新特性太少了,一本介绍jdk的书,你自己都不用还指望读者用吗?

《Spring Pro 中文版》
优点:

其中有大段大段的代码,写的太好了,一个字 赞!

缺点:

版本太老了,是spring1.2

《Spring 技术手册》
优点:

书很薄,介绍性的,可以翻翻

缺点:

基本就是翻译的api,其中的例子简直太SB了

《精通Hibernate,孙卫琴》
优点:

我看过写Hibernate的书里面,写的最好的。

缺点:

有一点浅显,而且也没有针对Hibernate3再版过,当时还用的是Hibernate2

《Java参考大全jdk1.3》
优点:

我的java入门书,好书,就是太厚

缺点:

很难适应老外写的教材,不过内容还不错

《Hibernate实战,第二版》
优点:

英文版是圣经

缺点:

中文版是垃圾

《Java web 开发(孙鑫)》
优点:

好书,入门经典

缺点:

太厚了,前面写xml的部分完全可以删掉

《Hand First Serverlet and Jsp》
优点:

好书,入门经典

缺点:

没有

《Hand First 设计模式》
优点:

名气大,浅显易懂

缺点:

怎么说呢,该有的没有,不该有的太多了。

《POJO in action》
优点:

绝对经典,对于2005年以后入门的JavaEE程序员,建议人手一本

缺点:

几乎没什么缺点

《Spring in action2》
优点:

绝对经典

缺点:

但是和其他讲解spring的书没多大差别,而且大部分例子都没有用Annotation,还是xml。

No responses yet

URL Rewrite Filter 小例子(http to https)

Feb 06 2010 Published by Tony under Java

URL Rewrite Filter是一个很好用的url重写的小工具,他可以根据你提供的url规则进行url的重写。这里是它的主页。
使用方法很简单,首先把它提供的jar包放到你lib目录下。之后在web.xml文件中加入filter的定义。此时注意filter的顺序。

    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>confPath</param-name>
            <param-value>/WEB-INF/urlrewrite.xml</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

之后创建/WEB-INF/urlrewrite.xml文件
它包括多种匹配方式,主要有正则表达式,wildcard,rewrite_mod等方式,下面演示的是正则表达式的方式

    <rule match-type="regex">
      <condition type="scheme" operator="equal">http</condition>
      <condition name="host" operator="equal">www.example.com</condition>
      <condition type="port" operator="notequal">443</condition>
       <from>^/(.*)$</from>
       <to>https://%{server-name}%{context-path}/$1?%{query-string}</to>
    </rule>

其中from标签就是你的url规则,to标签值的就是要重写的地址。condition是指的条件。
其中的具体参数可以参考user manual

这个例子指的就是把http请求重写为https请求。
https请求时ssl加密请求,所用端口为port。要注意防止循环转向,所以重写的条件中包括了端口不包括443.
也就是这句

<condition type="port" operator="notequal">443</condition>

而且在url中可以使用很多request或者response中的参数或者方法。比如:%{server-name}就是得到请求的域名,%{context-path}是上下文路径,%{query-string}是请求所带的参数。
而这些所对应的其实就是request.getRemoteServerName(),request.getContextPath(),request.getQueryString()方法。
具体哪些可以使用可以参考他的帮助手册

No responses yet