Tomcat教程

Web应用程序布局

Tomcat提供servlet与JSP规范的实现。这些规范先后成为Sun Java企业版(或简称为 J2EE)的一部分。设计J2EE的目的,是为了让应用程序开发者无需重大改写或修改源 码,就能将应用程序从一台符合规范的应用程序服务器(一种实现J2EE规范的程序)移 植到另一台上。为了达成此目标,应用程序系以专业的可移植方式打包,例如,打包成 Web应用程序的归档文件(archive),或企业应用程序的归档文件。

出干这种目的,Java Servlet规范定义/ WAR (Web Application aRchive, Web应用程序归档文件)的文件格式及结构。为了使Web应用程序独立于应用程序-服务器-实现,您的文件必须遵循某些惯例,诸如储存网页的目录布局、配置文件等,圈3-2显示了常规布局。

图3-2:Servlet/JSP Web应用程序文件布局

作为一个范例,Acme Widgets的网站看起来如示例3-1。

示例3-1: Web应用程序的文件布局示例

/
/index.jsp 
/products.jsp 
/widgets/index.html 
/widgets/pricing.jsp 
//upload/image/course/tomcat/logo.png 
/WEB-INF/web.xml
/WEB-INF/classes/com/acme/PriceServlet.class 
/WEB-INF/classes/DataHelper.class 
/WBB-INF/lib/acme-util.jar

由此可见,网页(无论是静态的HTML、动态的JSP或其他动态模扳语言的内容)可以 放在Web应用程序的根目录或您喜欢的大部分子目录中,除了WEB-INF或META-INF目录树之外。图像文件经常会放在的//upload/image/course/tomcat子目录中。不过这只是一种习惯,而作硬 性规定。WEB-INF目录包含一些内容的特定部分。首先,classes目录是放置Java class 文件(不含JAR文件)的地方,无论这些文件是servlet或servlet所使用的其他类文件、JSP或应用程序代码的其他部分。其次,录是放置JAR (Java归档文件)文件的 地方,这些文件包含类的包,最后,是所谓的“部署描述文件” (deployment descriptor),它包含Web应用程序的配置,应用程序的描述以及任何额外的自定义设定。

与其他Web服务器的处理方式方式相比,将网站的自定义设定放入网站目录内的XML 文件(即部署描述文件)的好处之一是所有网站的自定义设定都与该网站的部署一起储 存。这会简化维护的工作,也使得将打包后的应用程序移植至其他服务器,或甚至其他 的ISP较为简单。除此之外,Tomcat会自动保护WEB-INF目录的内容,以防止客户端的 网页浏览器访问,因此配置信息(可能包含账号名称与密码)不会让客户端看到。

部署Servlet和JavaServer页

通过在WEB-INF/web.xml文件中提供servlet-mapping元素,可以设定Servlet所对应的URI。如果想要提供另一种对应方式,将任何初始化参数传入Servlet,设定在启动时的加载顺序等,则必须在描述文件中列出servlet。Servlet元素是出现在web-xml开头附近的XML标记,并用于这些全部的任务上。

以下是含有大多数子元素的servlet示例:

<servlet>
<icon>
<small-icon>//upload/image/course/tomcat/tomcat_tdg16x16.jpg</small-icon>
</icon>
<servlet-name>InitParams</servlet-name>
<display-name>InitPaTams Demo Servlet</display-name>
<description>
A servlet that shows use of both servlet- and 
  webapp-speicific init-params <ydescription>
<servlet-class>InitParams</seivlet-class>
<init-param>
<patam-name>myParm</param-name>
<param-value>
A param for the Servlet:
Forescore and seven years ago...
</param-value>
</init-param>
<load-on-startup>25</load-on-startup>
</servlet>

安置好servlet之后,可能还需要将JSP加入到应用程序中。可以将JSP安装在Web砬用程 序的任何位置(除了在WEB-INF下,因为此目录可以包含诸如数据库连接、用户名称及密码的初始化参数,所以应受到保护,以防止Web访问)。也可以将JSP复制到Web应 用程序的根目录,或任何非WEB-INF的子目录中。而对于任何静态的内容,如HTML文件、数据文件及图像文件,也需遵循相同的原则。

关注微信获取最新动态