Tomcat部署Java Web应用程序
有两种方式:静态部署和动态部署。在下文中$CATALINA_HOME指的是Tomcat根目录。
一、静态部署
静态部署指的是我们在服务器启动之前部署程序,只有当服务器启动之后,Web应用程序才能访问。以下3中方式都可以部署:
1、将PetWeb目录拷贝到$CATALINA_HOME\webapps下,然后启动服务器就可以了。这种方式比较简单,但是web应用程序必须在webapps目录下。访问地址如下: http://localhost:8080/PetWeb/
2、更改$CATALINA_HOME\conf\server.xml文件,在<host>标签内添加<Context>标签,内容如下:<Context docBase="F:/PetWeb" reloadable="false" path="/Pet"/>, 其中reloadable="false"表示当应用程序中的内容发生更改之后服务器不会自动加载,这个属性在开发阶段通常都设为true,方便开发,在发布阶段应该设置为false,提高应用程序的访问速度。docBase为路径,可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps。path属性的值是访问时的根地址。访问地址如下:http://localhost:8080/Pet/
3、这种方式和第二种方式差不多,但是不是在Server.xml文件中添加Context标签,而是在$CATALINA_HOME\conf\Catalina\localhost中添加一个xml文件,如Pet.xml,内容如下:<Context docBase="F:/PetWeb" reloadable="false" />, 大家可能发现和第二种方式差不多,但是缺少了path属性,这种方式服务器会使用.xml的名字作为path属性的值。访问地址如下:http://localhost:8080/Pet/
我们刚才是将PetWeb文件夹部署在了服务器中,我们知道可以将Web应用程序的内容打成.war包,然后在部署在服务器上。打包请参考如下步骤: 1、打开命令提示符(Start-->Run-->cmd) 2、设置jdk环境变量(如果我教过的学生不会配置,以后别说孙老师教过你) 3、在命令提示符中进入F:\PetWeb文件后,键入如下命令: jar ..\Pet.war *.* 这样在F:\下应该有Pet.war文件。其中..表示当前目录的父目录。 部署Pet.war文件非常简单,将刚才有docBase="F:\PetWeb"更改为docBase="F:\Pet.war"或者直接将其拷贝到webapps下也可以。重新启动服务器就可以将Pet.war部署为一个Web应用程序了。
二、动态部署
动态部署是指可以在服务器启动之后部署web应用程序,而不用重新启动服务器。动态部署要用到服务器提供的manager.war文件,如果在$CATALINA_HOME\webapps\下没有该文件,你必
相关文档:
多线程是这样一种机制,它允许在程序中并发执行多个指令流,每个指令流都称为一个线程,彼此间互相独立。 线程又称为轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
一:理解多线程
& ......
import sun.net.ftp.*;
import sun.net.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
public class FtpApplet extends Applet
{
FtpClient aftp;
DataOutputStream outputs ;
TelnetInputStream ins;
TelnetOutputStream outs;
TextArea lsArea;
La ......
java 语法:
Java的基本符号(token)
Java的单词符号有五种:关键字、标识符、常量、分隔符和操作符。
Java的字符集
Java 采用一种称为unicode的字符集,该字符集合是一种新的编码标准,与常见的ASCII码的区别在于:
unicode使用16位二进制而不是8位来表示一个字符。
unicode字符集中增加了许多非拉丁语字符。
......
在Java中,“线程”指两件不同的事情:
1、java.lang.Thread类的一个实例;
2、线程的执行。
使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。
一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。
Java中,每个线程都有一个调 ......