tomcat 配置文件属性

Tomcat与Java Web开发技术详解连载3


omcat既可以运行采用开放式目录结构的Web应用,也可以运行WAR文件。在本书配套光盘的sourcecode/chapter2/helloapp目录下提供了所有源文件,只要把整个helloapp目录拷贝到/webapps目录下,即可运行开放式目录结构的helloapp应用。在Web应用的开发阶段,为了便于调试,通常采用开放式的目录结构来发布Web应用,这样可以方便地更新或替换文件。如果开发完毕,进入产品发布阶段,应该将整个Web应用打包为WAR文件,再进行发布。

在本例中,按如下步骤发布helloapp。

(1)进入helloapp应用的根目录/webapps/helloapp。

(2)把整个Web应用打包为helloapp.war文件,命令如下:

jar cvf    helloapp.war    *.*

在JDK的bin目录下提供了打包程序jar.exe。如果要展开helloapp.war文件,命令为:

 

jar    xvf    helloapp.war

(3)把helloapp.war文件拷贝到/webapps目录下。

(4)删除原先的helloapp目录。

(5)启动Tomcat服务器。

Tomcat服务器启动时,会把webapps目录下的所有WAR文件自动展开为开放式的目录结构。所以服务器启动后,会发现服务器把helloapp.war展开到 /webapps/helloapp目录中。

2.3 配置虚拟主机

在Tomcat的配置文件server.xml中,Host元素代表虚拟主机,在同一个Engine元素下可以配置多个虚拟主机。例如,有两个公司的Web应用都发布在同一个Tomcat服务器上,可以为每家公司分别创建一个虚拟主机,它们的虚拟主机名分别为:

 

www.mycompany1.com
www.mycompany2.com

这样当Web客户访问以上两个Web应用时,就好像这两个应用分别拥有各自的主机。此外,还可以为虚拟主机建立别名,例如,如果希望Web客户访问www.mycompany1.com或mycompany1.com都能连接到同一个Web,那么可以把mycompany1.com作为虚拟主机的别名来处理。

下面讲解如何配置www.mycompany1.com虚拟主机。

(1)打开/conf/server.xml文件,会发现在元素中已经有一个名为localhost的元素,可以在它的后面(即后面)加入如下元素:

 

<Host name="www.mycompany1.com"
debug="0" appBase="C:/mycompany1" 
unpackWARs="true" autoDeploy="true">
<alias>mycompany1.com</alias>
<alias>mycompany1</alias>

<Context path="/helloapp" 
docBase="helloapp" debug="0"
reloadable="true" />

</Host>

以上配置代码位于本书配套光盘的sourcecode/chapter2/virtualhost-configure.xml文件中。

元素的属性描述参见表2-5:

表2-5 元素的属性

属 性描 述
name指定虚拟主机的名字
debug指定日志级别
appBase指定虚拟主机的目录, 可以指定绝对目录, 也可以指定相对于的相对目录。 如果此项没有设定, 默认值为/webapps
unpackWARs如果此项设为true, 表示将把Web应用的WAR文件先展开 为开放目录结构后再运行。 如果设为false,则直接运行WAR文件
autoDeploy如果此项设为true, 表示当Tomcat服务器处于运行状态时, 能够监测appBase下的文件, 如果有新的Web应用加入进来, 则会自动发布这个Web应用
alias指定虚拟主机的别名, 可以指定多个别名
deployOnStartup如果此项设为true, 则表示Tomcat服务器启动时会自动发布appBase 目录下所有的Web应用。 如果Web应用在server.xml中 没有相应的元素, 则将采用默认的Context配置。 deployOnStartup的默认值为true

在的deployOnStartup属性为true的情况下,即使你没有在server.xml中为helloapp应用加入元素,Tomcat服务器也可以自动发布和运行helloapp应用。

在这种情况下,Tomcat使用默认的DefaultContext。关于DefaultContext的知识可以参考Tomcat文档:

/webapps/tomcat-docs/config/defaultcontext.html

(2)把helloapp应用(helloapp.war文件或者是整个helloapp目录)拷贝到appBase属性指定的目录C:/mycompany1下。

(3)为了使以上配置的虚拟主机生效,必须在DNS服务器中注册以上的虚拟主机名和别名,使它们的IP地址都指向Tomcat服务器所在的机器。必须注册以下名字:

 

www.mycompany1.com
mycompany1.com
mycompany1

(4)重启Tomcat服务器,然后通过浏览器访问:http://www.mycompany1.com/helloapp/index.htm,如果返回正常的页面就说明配置成功。还可以通过虚拟机的别名来访问helloapp应用:

http://mycompany1.com/helloapp/index.htm

http://mycompany1/helloapp/index.htm

2.4 小 结

本章通过helloapp Web应用例子,介绍了在Tomcat上创建和发布Web应用的步骤。通过本章内容,读者可以学会创建Web应用的目录结构,创建web.xml文件,并且能够把HTML、Servlet、JSP和Tag Library部署到Web应用中。

此外,读者还可以掌握将整个Web应用打包并发布的方法。本章还介绍了配置虚拟主机的方法。为了便于读者编译源程序,在本书配套光盘的sourcecode/chapter2目录下提供了编译本章Java程序的脚本compile.bat,它的内容如下:

 

set catalina_home=C:/jakarta-tomcat
set path=%path%;C:/j2sdk1.4.2/bin

set currpath=./
if "%OS%" == 
"Windows_NT" set currpath=%~dp0%

set src=%currpath%helloapp/src
set dest=%currpath%helloapp
/WEB-INF/classes
set classpath= %catalina_home%
/common/lib/servlet-api.jar; 
%catalina_home%/common/lib/jsp-api.jar

javac -sourcepath %src% 
-d %dest%    %src%/mypack/DispatcherServlet.java
javac -sourcepath %src%    
-d %dest%    %src%/mypack/HelloTag.java

运行这个脚本时,只要重新设置以上Tomcat目录和JDK的目录即可。

在javac命令中,-sourcepath设定Java源文件的路径,-d设定编译生成的类的存放路径。javac命令的-classpath参数可以设定classpath路径,如果此项没有设定,将参照环境变量classpath的设置。

(T117)

本文节选自由飞思图书授权《Tomcat与Java Web开发技术详解》


深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值