tomcat

来源:互联网 发布:unity3d 中wintext 编辑:程序博客网 时间:2024/06/06 03:15

tomcat服务器

在Eclipse中只要创建一个Dynamic Web Project,就可以根据创建向导创建出一个典型Java Web站点的目录结构。除非有特殊需要,在大多数情况下都没有必要修改这个目录结构,这也是Web容器的缺省目录结构,我们只要直接使用即可。一般的目录结构如下:

WebContent                                (站点根目录)     |--META-INF                           (META-INF文件夹)     |       |---MANIFEST.MF            (MANIFEST.MF配置清单文件)     |---WEB-INF                              (WEB-INF文件夹)     |       |---web.xml                     (站点配置web.xml)     |       |---lib                              (第三方库文件夹)     |       |    |---*.jar                     (程序需要的jar包)     |       |---classes                       (class文件目录)     |            |---...*.class               (class文件)     |---                            (自定义的目录)     |       |---*.jsp,*.js,*.css,*images           (自定义的资源文件)     |---                        (自定义的资源文件)     

1.WebRoot(WebContent)下是发布到服务器上的内容。
2.META-INF是工程自身相关的一些信息,元文件信息,通常由开发工具,环境自动生成。
3.文件web.xml:完成servlet在web容器的注册。web.xml是Web应用程序的部署描述文件,是用来给Web服务器解析并获取Web应用程序相关描述的。
不按照sun公司的规范做应用web程序的结构,web容器找不到,比如,xml文件写错了,启动tomcat的时候会报错
4.凡是客户端能访问的资源(.html,.jpg)必须跟WEB-INF在同一目录。即放在Web根目录下的资源,从客户端是可以通过URL地址直接访问。
5. 切忌:凡是WEB-INF里面的文件都不能被客户端直接访问(比如隐藏的信息)。WEB-INF目录下的资源对用户来说是不可见的,而对Web服务器来说则没有这样的限制。
例如在WEB-INF下的index.htm,客户端无法与对待其他文件夹内的信息一样,通过http://yourserver/yourwebapp/WEB-INF/index.htm访问。WEB-INF文件夹是禁止通过URL访问的。
6. 在WEB-INF目录的classes及lib子目录下,都可以存放Java类文件。在运行时,Servlet容器的类加载器先加载classes目录下的类,再加载lib目录下的JAR文件(Java类库的打包文件)中的类,jar包是许多class文件的集合。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。
一、静态部署
1、直接将web项目文件件拷贝到webapps 目录中
Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war myweb
webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:

<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true"> </Context>

或者

<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>

或者

<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>

说明:
path是虚拟路径;
docBase 是应用程序的物理路径;
workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;
debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息
privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet
reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署
antiResourceLocking和antiJARLocking 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。

3、创建一个Context文件
在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是hello(hello.xml),该xml文件的内容为:

<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>

tomcat自带例子如下:

<Context docBase="${catalina.home}/server/webapps/host-manager"         privileged="true" antiResourceLocking="false" antiJARLocking="false"></Context>

这个例子是tomcat自带的,编辑的内容实际上和第二种方式是一样的,其中这xml文件名字就是访问路径,这样可以隐藏应用的真实名字。
4、注意:
删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。
二 动态部署
登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。
在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。
XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下: 其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。