定制用户目录
某些网站喜欢让个别用户在服务器上发布网页目录。例如,大学的院系可能会给每个学生一个公用区域,或ISP会在一台服务器上给没有虚拟主机的客户释放一些网页空间。在这种情况下,一般会使用波浪线字符加上用户名作为该用户网站的虚拟路径。
Tomcat使用几个特殊的Listener元素,提供两种方式将其映射到每个主机上。Listener 的 ClassName 属性应为 org.apache.catalina.startup.UserConfig,而userClass 属性则指 定众多映射类中的一种。如果你的操作系统是Unix,并且运行Tomcat的账导可读取标准的文件,而且该文件指用户的主目录,则使用PasswdUserDatabase映射类:
<Listener className="org.apache.catalina.startup.UseiConfig" directoryName="pLiblic_html" userClass"org.apache.catalina.startup.PasswdUserDatabase"/>
必须把Web文件放在home、users/ian/public_html或/users/jbrittain/public_htm目录中。当 然,你也可以将改成用广放置其个人网页的任何子目录,但必须是Tomcat主 机中所有用户的相同子目录名,事实上,此目录不一定要在用户的主目录内。如果您没有U令文件,但想要从用户名映 射至公共父目录(如/home)的子目录,请用HomesUserDatabase类:
在此情况下,文件会放入如/home/ian/public_html and /home/jbrittain/public—html的目录中。
如果提供的话,那么这些Listener元素必须放在一个Host元素内,但不能放在Context 元素内,因为它们将应用于Host本身,例如,如果你有一台localhost主机、一个User-ConfigListener以及一个叫做"tomcatbook"的Context,则URL 会是合法的(如果能映射至目录),http://localhost/~ian是非法的,而且会返回犯404错误。也就是说,UsrtConfig映射是应用至整个主机,而非其范围。