Java

Spring 2.5中 的 UrlFilenameViewController 确实有bug

正如 http://hi.baidu.com/pmzcn/blog/item/aeab6e63c58762600d33fa21.html所说,spring 2.5中,这个类在解析路径时会把context path带进去! 我的解决办法是,自己做一个UrlFilenameViewController类,在这个类中照抄spring 2.0 UrlFilenameViewController的代码(如果下不到源代码,反编译一下也可以,我就是通过反编译搞到代码的)

Java Security Architecture Notes

1.Two aspects     a. Secure the Java platform itself, such as bytecode verification, class loading protection     b. Provide services and tools for java applications, such as cryptography, authentication.     2.Secure the Java platform     2.1 Old Mechanism(JAVA 1): Sandbox         Forget about it     2.2.New Mechanism(Since JAVA 2)         Think about it in a …

Java Security Architecture Notes Read More »

learn java5 annotation

Java Annotation Facility:     1.a syntax for declaring annotation types     2.a syntax for annotating declarations     3.APIs for reading annotations     4.a class file representation for annotations     5.an annotation processing tool         @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Test { }     Annotation Declaration     1.Annotation type declarations are similar to normal interface declarations    …

learn java5 annotation Read More »

MessageFormat with ”

MessageFormat.format("Hi, {0} {1}", "朱", "元璋"); //Hi, 朱 元璋 MessageFormat.format("Hi, ‘{0}’ {1}", "朱", "元璋"); //Hi, {0} 元璋 MessageFormat.format("Hi’, {0} {1}", "朱", "元璋"); //Hi, {0} {1} MessageFormat.format("Hi, {0} {1}", "’朱’", "元璋"); //Hi, ‘朱’ 元璋

[对谈录]是否可以把logger的输出视为一个方法的output, 并针对它进行单元测试?

   A:logger的输出和一个方法的return, exception, output parameter一样,都可以视为这个方法的输出。如果logger的输出的确代表了功能需求,那我们就应该去测试它,包括单元测试(比如用程序读log文件然后与expectation比较)。典型的用况是批量操作中部分失败的日志。按需求,如果部分失败,不能抛exception,而应该把部分的失败放到日志中去。    B:log是跟业务相去甚远的东西,不应该把它当作模块的一种输出,因此不能做单元测试;至于前面提到的批量操作的例子,应该把日志将要打印的错误信息置为单个操作的返回值或者异常消息,然后只针对批量中的单个操作进行单元测试。只要单个操作的测试通过了,没必要再对批量操作施加日志相关的测试了。    A: 但是批量操作的日志可能不仅是各个单步操作的简单叠加。它的日志可能跟批量操作的上下文有关,而单步操作的方法可能不方便访问这个上下文;又或者批量操作输出的日志可能跟若干单步操作结果的组合有关,针对单步操作的方法无法进行这种测试。    B: 那批量操作的代码就应该重构了。应该把所有的出错信息作为return值或output parameter的值,输出来,再用单元测试的代码去验证它。    A:这似乎是比较优雅的方案。它不但解决了我们的争论,而且还使得log代码不能入侵到业务逻辑之中,使业务逻辑更干净。不过,这可能会存在性能问题。如果一个批量操作中有十几万条错误信息,把这些错误信息放到一个变量里,可能会导致内存溢出。如果用log来做,就没有这个问题,因为它见一条处理一条,不会产生巨大的对象。    B:…    A:…  

Several tips on Free Marker

1. It will not display null value as "";  You can use ${name!""} or ${name!} 2. It will not escape xml/html by default; Use <#escape> if you want.

How can I know an installed tomcat’s version

http://www.velocityreviews.com/forums/t130752-how-do-i-find-tomcat-version-thats-already-installed.html You should be able to find this in the log called ‘catalina.out’. Alternatively, you can go right to the source; open $TOMCAT_HOME/server/lib/catalina.jar in a tool capable of handling zip or jar files, and read the file called org/apache/catalina/util/ServerInfo.properties. That last bit is not guaranteed to work across multiple versions, though.