http://www.cs.myuniversity.edu/~usernamehttp://members.mybigisp.com/~usernameTomcat提供两种方法在主机上映射这些个人网站,主要使用一对特殊的Listener元素 。Listener的className属性应该是org.apache.catalina.startup.UserConfig,userClass属性应该是几个映射类之一 。
如果你的系统是Unix,它将有一个标准的/etc/passwd文件,该文件中的帐号能够被运行中的Tomcat很容易的读取,该文件指定了用户的主目录,使用PasswdUserDatabase 映射类 。
<Listener className="org.apache.catalina.startup.UserConfig"directoryName="public_html"userClass="org.apache.catalina.startup.PasswdUserDatabase"/>web文件需要放置在像/home/users/ian/public_html或者/users/jbrittain/public_html一样的目录下面 。当然你也可以改变public_html 到其他任何子目录下 。
实际上,这个用户目录根本不一定需要位于用户主目录下里面 。如果你没有一个密码文件,但你又想把一个用户名映射到公共的像/home一样目录的子目录里面,则可以使用HomesUserDatabase类 。
<Listener className="org.apache.catalina.startup.UserConfig"directoryName="public_html"homeBase="/home"userClass="org.apache.catalina.startup.HomesUserDatabase"/>这样一来,web文件就可以位于像/home/ian/public_html或者/home/jasonb/public_html一样的目录下 。这种形式对windows而言更加有利,你可以使用一个像c:home这样的目录 。
这些Listener元素,如果出现,则必须在Host元素里面,而不能在context元素里面,因为它们都用应用于Host本身 。
八、在Tomcat中使用CGI脚本Tomcat主要是作为Servlet/JSP容器,但它也有许多传统web服务器的性能 。支持通用网关接口(Common Gateway Interface,即CGI)就是其中之一,CGI提供一组方法在响应浏览器请求时运行一些扩展程序 。
CGI之所以被称为通用,是因为它能在大多数程序或脚本中被调用,包括:Perl,Python,awk,Unix shell scripting等,甚至包括JAVA 。
当然,你大概不会把一个Java应用程序当作CGI来运行,毕竟这样太过原始 。一般而言,开发Servlet总要比CGI具有更好的效率,因为当用户点击一个链接或一个按钮时,你不需要从操作系统层开始进行处理 。
Tomcat包括一个可选的CGI Servlet,允许你运行遗留下来的CGI脚本 。
为了使Tomcat能够运行CGI,你必须做如下几件事:
- 把servlets-cgi.renametojar (在CATALINA_HOME/server/lib/目录下)改名为servlets-cgi.jar 。处理CGI的servlet应该位于Tomcat的CLASSPATH下 。
- 在Tomcat的CATALINA_BASE/conf/web.xml 文件中,把关于 CGI的那段的注释去掉(默认情况下,该段位于第241行) 。
- 同样,在Tomcat的CATALINA_BASE/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉(默认情况下,该段位于第299行) 。注意,这段内容指定了HTML链接到CGI脚本的访问方式 。
- 你可以把CGI脚本放置在WEB-INF/cgi 目录下(注意,WEB-INF是一个安全的地方,你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处),或者你也可以把CGI脚本放置在context下的其他目录下,并为CGI Servlet调整cgiPathPrefix初始化参数 。这就指定的CGI Servlet的实际位置,且不能与上一步指定的URL重名 。
- 重新启动Tomcat,你的CGI就可以运行了 。
为了兼容其他服务器,尽管你也可以把CGI脚本保存在传统的/cgi-bin目录,但要知道,在这些目录中的文件有可能被网上好奇的冲浪者看到 。另外,在Unix中,请确定运行Tomcat的用户有执行CGI脚本的权限 。
九、改变Tomcat中的JSP编译器(JSP Compiler)在Tomcat 4.1(或更高版本,大概),JSP的编译由包含在Tomcat里面的Ant程序控制器直接执行 。这听起来有一点点奇怪,但这正是Ant有意为之的一部分,有一个API文档指导开发者在没有启动一个新的JVM的情况下,使用Ant 。
这是使用Ant进行Java开发的一大优势 。另外,这也意味着你现在能够在Ant中使用任何javac支持的编译方式,这里有一个关于Apache Ant使用手册的javac page列表 。
使用起来是容易的,因为你只需要在 元素中定义一个名字叫“compiler”,并且在value中有一个支持编译的编译器名字,示例如下:
<servlet><servlet-name>jsp</servlet-name><servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class><init-param><param-name>logVerbosityLevel</param-name><param-value>WARNING</param-value></init-param><init-param><param-name>compiler</param-name><param-value>jikes</param-value></init-param><load-on-startup>3</load-on-startup></servlet>
推荐阅读
- Java程序员必备的一些流程图
- Java的常用API之System类简介
- Java的常用API
- 1分钟帮你了解自己适不适合当一个程序员
- 什么是JavaScript的变量提升?
- JavaScript setTimeout要理解
- 如何确定JavaScript中this的指向?这里有5中常见的分类
- 汽车车主必备的5个用车冷知识,好多是人为的行车安全隐患
- 如何泡好红茶 泡制好喝红茶的必备因素
- 什么是SWOT、6W2H?深度解析管理者必备的7大管理工具!实用干货