Tomcat的安装和配置以及JavaWEB开发的目录结构

一、JavaWeb应用的概念

  1. 在Sun的JavaServlet规范中,对JavaWeb应用作了这样定义:“JavaWeb应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成。它可以在各种供应商提供的实现Servlet容器中运行。”
  2. JavaWeb应用中可以包含如下内容:
  • Servlet
  • JSP
  • 实用类
  • 静态文档如HTML、图片等
  • 描述Web应用的信息(web.xml)
    Servelt与Servlet容器

二、Servlet容器的概念

  1. Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。
  2. Servlet容器也称为javaWeb应用容器,或者Servlet/JSP容器。
  3. 目前最流行的Servlet容器软件包括:
  • Tomcat
  • Resin
  • J2EE服务器(如Weblogic)中也提供了内置的Servlet容器。

三、Tomcat

  1. Tomcat是一个免费开放源代码的Servlet容器,它是Apache软件基金会的一个顶级项目,由Apache,Sun和其他一些公司及个人共同开发而成.
  2. Tomcat的目录结构
    Tomcat的目录结构
  3. 运行Tomcat
    (1). 配置Java_home(指向JDK安装的根目录) 或 jre_home
    (2). 双击bin目录下的startup.bat文件
    (3). 在地址栏中输入http://localhost:8080/ 来检验Tomcat安装是否正确。
    (4). 若已经启动了一个Tomcat应用,若再启动一个Tomcat应用,会抛出异常:
    java.net.BindException:Address alreadly in use : JVM_Bind:8080 因为端口已经被占用。
  4. 关闭Tomcat & 配置Tomcat 的端口号
    (1). 双击bin目录下的shutdown.bat文件关闭Tomcat服务器
    (2). 修改Tomcat默认的端口号:
    - 打开conf目录下的server.xml文件
    - 修改端口号
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

把port的值改为其他的端口号即可。

  1. 为了可以再任意目录下启动Tomcat 服务器
    (1). 把D:\apache-tomcat-6.0.16\bin 添加到path下
    (2). 添加成功后,若在任意目录下通过startup启动Tomcat服务器,会有提示:
    The CATALINA_HOME enviroment variable is not defined correctly
    This environment variable is needed to run this program
    即:要求设置CATALINA_HOME这个环境变量
  2. 设置CATALINA_HOME环境变量
    (1). 通过阅读startup. bat批处理文件,可知CATALINA_ HOME环境变量下有一个bin目录, .而bin目录又有一个catalina.bat 文件,由此可知CATALINA_ HOME指向的应该是Tomcat安装的根目录
    (2). 于是把Tomcat的根目录设为CATALINA_ HOME环境变量。
    (3). 此时即可以在任意目录下通过startup. bat、shutdown.bat 启动、关闭Tomcat 服务器.|
  3. 继续阅读startup.bat 文件,发现启动tomcat服务器的是catalina.bat文件,在命令行窗口直接输入catalina, 提示如下:
commands:
debug			        Start Catalina in a debugger
debug -security			Debug Catalina with a security manager
jpda start				Start Catalina under JPDA debugger
run					    Start Catalina in the current window
run -security			Start in the current window with security manager
start					Start Catalina in a separate window
start -security			Start in a separate window with security manager
stop					Stop Catalina
version					What version of tomcat are you running?

catlina 命令有如上的可选参数.

run:在catalina同一个命令行窗口下启动服务器。
start:开启一个新窗口启动服务器
stop:关闭服务器

  1. Tomcat的管理程序
  • Tomcat提供一个管理程序:manager,用于部署到Tomcat服务器中的web应用程序
  • 要访问manager web 应用程序,需要添加具有管理员权限的账号,编辑conf目录下的tomcat-users.xml文件,添加manager角色,设置用户名和密码
<?xml version = '1.0' encoding = 'utf-8'?>
<tomcat-users>
	<role rolename = "manager"/>
	<user username = "tomcat" password = "" role = "manager"/>
</tomcat-users>

四、Web程序

  1. Web程序结构(1)
    几点说明:
  • WEB-INF目录下的classes和lib目录都可以存放Java的类文件,在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录存在同名的类,起作用的将是classes目录下的类。
  • WEB-INF是一个特殊的目录(所有字母都要大写)。这个目录并不属于Web应用程序可以访问的上下文路径的一部分,对于客户端来说,这个目录是不可见的。但该目录下的内容对于Servlet代码是看见的。
  1. Web程序结构(2)
    Web程序结构

  2. 第一个WEB应用程序:开发,并部署到Tomcat服务器下运行
    (1). 在Eclipse新建一个Java Project。
    (2). 在Java项目下创建WEB开发的目录结构。

-WebContent
	-WEB-INF
		-classes(编译后的class文件必须放在该目录下。)
		-lib
		-web.xml(从apache-tomcat-6.0.16\webapps\docs\WEB-INF 中复制过来,可以不做修改)
	html 页面
	JSP 页面
	图片等等

(3). 在src 下新建一个Person类。

package com.atguigu.test;

public class Person {
	public String getPersonInfo() {
		return "person info...";
	}
}

(4). 手工的Person类对应的class文件(含包)复制到 classes 目录下。
可以通过修改默认的输出目录达到自动把编译好的class 放到 classes目录下

右击文件----->点击Bulid Path---->点击Configure Build Path---->点击Source---->点击Browse找到 …/WebContent/WEB-INF/classes目录下
(5). 在WebContent新建一个JSP

<%@ page import='com.atguigu.test.Person' %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

	<%
		Person person = new Person();
		System.out.print(person.getPersonInfo());	
	%>

(6). 把WebContent目录复制到Tomcat的webapps目录下,并改名:helloworld(也可以不修改名称)
(7). 在浏览器的地址栏中输入:http://localhost:8080/helloworld/hello.jsp 即可看到命令行的打印信息。
(8). 配置任意下的Web应用程序:

在conf 目录下依次创建catalina\localhost目录,然后在localhost目录下为test这个Web应用程序建立test.xml文件,编辑这个文件输入一下内容。

<?xml version="1.0" encoding="UTF-8"?>
<Content path="/test2" docBase="D:\\eclipse-workspace\\firstWebApp\\WebContent" reloadable="true" />

五、配置任意目录下的Web应用程序

(1)配置任意目录下的Web应用程序

配置任意目录下的Web应用程序

元素的常用属性
属性 描述
docBase 指定Web应用程序的文档基目录或者WAR文件的路径名。可以描述指定目录的或WAR文件的绝对路径名。也可以 指定相对于Host元素的appBase目录的路径名。该属性是必须的
path 指定Web应用程序的上下文路径。在一个特定的虚拟机中,所有的上下文路径都必须是唯一的。如果是指定一个上下文路径为空字符集(" "),则定义了这个虚拟主机的默认Web应用程序,负责处理所有的分配给其他Web应用程序的请求
reloadable 如果设置为true,Tomcat服务器在运行时,会监视WEB-INF/classes和WEB-INF/lib目录下类的改变。如果有类被更新,Tomcat服务器将自动重新加载Web应用程序。这个特性在应用程序的开发阶段非常有用。但是它需要额外的运行时开销,所以在产品发布时不建议使用。该属性默认值是false
unpackWAR 如果为true,Tomcat在运行web应用程序前将展开所有压缩的Web应用程序。默认值是true
(2)配置任意目录下的Web应用程序
  • <Context>元素是<Host>元素的子元素,可以在conf\server.xml文件中设置Context元素。
  • 使用docBase属性指定Web应用程序的真实路径。将属性reloadable设置为true , Tomcat在运行时会自动监测Servlet类的改动,如果发现有类被更新, Tomcat服务器将自动重新加载该Web应用程序。这样,在开发时,就不需要频繁重启Tomcat了。
<Host name = "localhost"  appBase = "webapps"
		unpackWARs = "true" autoDeploy = "true"
		xmlValidation = "false"  xmlNamespaceAware = "false">

	<Context path="/test" docBase="c:/test" reloadable="true"/>
</Host>	

(3)配置任意目录下的Web应用程序

  1. 还可以在conf目录下依次创建Catalina\localhost目录,然后在localhost目录下为test这个Web应用程序建立test.xml文件,编辑这个文件输入以下内容
<Content path="/test" docBase="c:/test" reloadable="true" />
  1. 从Tomcat 5开始,不建议直接在server.xmI文件中配置<Context>元素,因为server.xm|文件作为Tomcat的主要配置文件,一且Tomcat启动后,将不会再读取这个文件,因此无法在Tomcat服务器启动时发布Web应用程序。如果在其他地方配置<Context>元素,那么在Tomcat运行时,也可以发布Web应用程序。
  2. 从Tomcat 5.5开始,在**\conf\Catalina\localhost**目录下创建XML配置文件来配置Web应用程序,Tomcat将以XML文件的文件名将作为Web应用程序的上下文路径,而不理会在<Context>元素的path属性中指定的上下文路径是什么。由于Tomcat 5.5之后的版本是以XML配置文件的文件名作为Web应用程序的上下文路径的,因此在配置<Context>元素时,可以不使用path属性。

路径

发布了54 篇原创文章 · 获赞 17 · 访问量 2431

猜你喜欢

转载自blog.csdn.net/qq_44096670/article/details/104584364