1.Tomcat 系统架构与设计模式
https://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/
2.如何在Idea中运行tomcat源码
http://www.jianshu.com/p/9e3f99f2d5bb
其中
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>com.springsource.javax.xml.rpc</artifactId>
<version>1.1.0</version>
</dependency>
<!--可以替换为-->
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1</version>
</dependency>
3.catalina.base 和 catalina.home 的区别
http://blog.csdn.net/jiaotuwoaini/article/details/51455829
从这段描述可以看出CATALINA_HOME和CATALINA_BASE的区别。简单的说,CATALINA_HOME是Tomcat的安装目 录,CATALINA_BASE是Tomcat的工作目录。如果我们想要运行Tomcat的 多个实例,但是不想安装多个Tomcat软件副本。那么我们可以配置多个工作 目录,每个运行实例独占一个工作目录,但是共享同一个安装目录。
Tomcat每个运行实例需要使用自己的conf、logs、temp、webapps、work和shared目录,因此CATALINA_BASE就 指向这些目录。 而其他目录主要包括了Tomcat的二进制文件和脚本,CATALINA_HOME就指向这些目录。
如果我们希望再运行另一个Tomcat实例,那么我们可以建立一个目录,把conf、logs、temp、webapps、work和shared拷贝 到该目录下,然后让CATALINA_BASE指向该目录即可。
4.user.dir 和user.home 的区别
http://blog.csdn.net/wangjun5159/article/details/49820615
5.Java中System里getProperty方法获得的系统参数
http://www.cnblogs.com/sigh-differ/archive/2012/12/25/java-system-getproperty.html
6.getAbsolutePath()和getCanonicalPath()的不同
public static void test2() throws Exception{
File file = new File("..\\src\\test1.txt");
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
}
得到的结果
D:\workspace\test\..\src\test1.txt
D:\workspace\src\test1.txt