Tomcat与Java Web开拓技能详解
当前位置:以往代写 > JAVA 教程 >Tomcat与Java Web开拓技能详解
2019-06-14

Tomcat与Java Web开拓技能详解

Tomcat与Java Web开拓技能详解

副标题#e#

本章先容如安在Tomcat上建设和宣布Web应用。这里首先讲授Tomcat的目次布局以及Web应用的目次布局,接着先容如何将HTML、Servlet、JSP和Tag Library陈设到Web应用中,然后先容把整个Web应用打包并宣布的要领,最后先容如安在Tomcat上设置虚拟主机。

本章偏重于接头Web应用的布局和宣布要领,所以没有对本章的Servlet和JSP的例子举办具体表明,关于Servlet和JSP的技能可以别离参考其它章节的内容。

2.1 Tomcat的目次布局

在Tomcat上宣布Web应用之前,首先要相识Tomcat的目次布局。Tomcat的目次布局拜见表2-1,这些目次都是的子目次。

表2-1 Tomcat的目次布局

目 录 描 述
/bin 存放在Windows平台 以及Linux平台上启动 和封锁Tomcat的剧本文件
/conf 存放Tomcat处事器的各类设置文件, 个中最重要的设置文件是server.xml
/server 包括3个子目次: classes、lib和webapps
/server/lib 存放Tomcat处事器所需的各类JAR文件
/server/webapps 存放Tomcat自带的两个Web应用: admin应用和manager应用
/common/lib 存放Tomcat处事器以及所有 Web应用都可以会见的JAR文件
/shared/lib 存放所有Web应用都可以会见的JAR文件
/logs 存放Tomcat的日志文件
/webapps 当宣布Web应用时, 默认环境下把Web应用 文件放于此目次下
/work Tomcat把由JSP生成的 Servlet放于此目次下

从表2-1可以看出,在/server/lib目次、/common/lib和/shared/lib目次下都可以放JAR文件,它们的区别在于:

在/server/lib目次下的JAR文件只可被Tomcat处事器会见

在/shared/lib目次下的JAR文件可以被所有的Web应用会见,但不能被Tomcat处事器会见

在/common/lib目次下的JAR文件可以被Tomcat处事器和所有Web应用会见

另外,对付下面将要先容的Java Web应用,在它的WEB-INF目次下,也可以成立lib子目次,在lib子目次下可以放各类JAR文件,这些JAR文件只能被当前Web应用会见。

在以上提到的lib目次下都只接管JAR文件,假如类压缩文件为ZIP文件,应该将它展开,从头打包为JAR文件再拷贝到lib目次中。假如直接将ZIP文件拷贝到lib目次,则会发明Tomcat处事器仍然找不到相关的类。打包呼吁拜见2.2.8节。

2.2 建设和宣布Web应用

Java Web应用由一组静态HTML页、Servlet、JSP和其他相关的class构成。每种组件在Web应用中都有牢靠的存放目次。Web应用的设置信息存放在web.xml文件中。在宣布某些组件(如Servlet)时,必需在web.xml文件中添加相应的设置信息。

2.2.1 Web应用的目次布局

Web应用具有牢靠的目次布局,这里假定开拓一个名为helloapp的Web应用。首先,应该在/webapps目次下建设这个Web应用的目次布局,拜见表2-2。

表2-2 Web应用的目次布局

目 录 描 述
/helloapp Web应用的根目次, 所有的JSP和HTML文件 都存放于此目次下
/helloapp/WEB-INF 存放Web应用的宣布描写文件web.xml
/helloapp/WEB-INF/classes 存放各类class文件, Servlet类文件也放于此目次下
/helloapp/WEB-INF/lib 存放Web应用所需的各类JAR文件

譬喻,在这个目次下,可以存放JDBC驱动措施的JAR文件


#p#副标题#e#

从表2-2中,我们看到在classes以及lib子目次下,都可以存放Java类文件。在运行进程中,Tomcat的类装载器先装载classes目次下的类,再装载lib目次下的类。因此,假如两个目次下存在同名的类,classes目次下的类具有优先权。

本章先容的helloapp应用的目次布局如图2-1所示,helloapp应用在Windows资源打点器中的展开如图2-2所示。

在helloapp应用中建设了如下组件:

HTML组件:index.htm

JSP组件:login.jsp和hello.jsp

Servlet组件:DispatcherServlet

这些组件之间的链接干系为:

index.htm→login.jsp→DispatcherServlet→hello.jsp

Tomcat与Java Web开辟技术详解

图2-1 helloapp应用的目次布局

Tomcat与Java Web开辟技术详解

图2-2 helloapp应用在Windows资源打点器中的展开图

#p#副标题#e#

2.2.2 web.xml文件

#p#分页标题#e#

Java Web应用通过一个基于XML的宣布描写符文件来设置其宣布信息,这个文件名为web.xml,它存放于WEB-INF子目次下。在附录B中将具体先容web.xml的设置要领,在附录C中将先容XML的根基常识。在web.xml文件中可包括如下设置信息:

Servlet的界说

Servlet的初始化参数

Servlet以及JSP的映射

安详域设置参数

welcome文件清单

资源引用

情况变量的界说

此刻,建设一个默认的web.xml文件,并把这个文件放到WEB-INF目次中。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC
 '-//Sun Microsystems,
 Inc.//DTD Web Application 2.3
 //EN'
 'http://java.sun.com/
 j2ee/dtds/web-app_2_3.dtd'>
<web-app>
</web-app>

以上web.xml文件的第一行指定了XML的版本和字符编码,第二行DOCTYPE指定文档范例,接下来声明白一个元素,所有关于Web应用的设置元素都将插手到这个元素中。

2.2.3 在server.xml中插手元素

元素是/conf/server.xml中利用最频繁的元素,它代表了运行在上的单个Web应用。一其中可以有多个元素。每个Web应用必需有惟一的URL路径,这个URL路径在元素的path属性中设定。譬喻,在名为"localhost"的元素中插手如下元素:

<!-- Define the default virtual host -->
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
……
……
<Context path="/helloapp"
docBase="helloapp" debug="0"
reloadable="true"/>
</Host>

Context元素的各个属性的说明拜见表2-3。

表2-3 Context元素的属性

属 性 描 述
path 指定会见该Web应用的URL进口
docBase 指定Web应用的文件路径,可以给定绝对路径,也可以给定相对付Host的appBase属性的相对路径(关于Host的appBase属性拜见2.3节)。假如Web应用回收开放目次布局,则指定Web应用的根目次;假如Web应用是个WAR文件,则指定WAR文件的路径
reloadable 假如这个属性设为true, Tomcat处事器在运行状态下会监督在WEB-INF/classes 和WEB-INF/lib目次下class文件的窜改。假如监测到有class文件被更新,处事器会自动从头加载Web应用

在开拓阶段,将reloadable属性设为true,有助于调试Servlet和其他的class文件。可是由于这一成果会加重处事器的运行负荷,因此发起在Web应用的产物宣布阶段,将这个属性设为false。

    关键字:

在线提交作业