一、Tomcat 简介
Sun推出的JSP(Java Server Pages)是一种运行于服务器端的动态网页开发技术,它基于Java技术。执行JSP时需要在Web服务器上架设一个编译JSP网页的引擎。Tomcat服务器是Apache组织开发的一种JSP引擎同时支持Servlet,本身具有Web服务器的功能,可以作为独立的Web服务器来使用。但是,在作为Web服务器方面,Tomcat处理静态HTML页面时不如Apache迅速,也没有Apache健壮,所以我们一般将Tomcat与Apache配合使用,让Apache对网站的静态页面请求提供服务,而Tomcat作为专用的JSP引擎,提供JSP解析,以得到更好的性能。并且Tomcat本身就是Apache的一个子项目,所以Tomcat对Apache提供了强有力的支持。对于大多数网站来说,Tomcat是一个很不错的选择。
Tomcat 在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat 是一种具有JSP环境的Servlet容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳。那么什么是Servlet容器呢?
Servlet容器,负责处理客户请求。当客户请求来到时,Servlet容器获取请求,然后调用某个Servlet,并把Servlet的执行结果返回给客户。当客户请求某个资源时,Servlet容器使SERVLETREQUEST对象把客户的请求信息封装起来,然后调用JAVA Servlet API中定义的Servlet的一些生命周期方法,完成Servlet的执行,接着把Servlet执行的要返回给客户的结果封装到SERVLETRESPONSE对象中,最后SERVLET容器把客户的请求发送给客户,完成为客户的一次服务过程。
Tomcat 的组织结构
Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的给件是CATALINA SERVLET容器,其他的组件按照一定的格式要求配置在这个顶层容器中。Tomcat的各个组件是server.xml文件中配置的,Tomcat服务器默认情况下对各种组件都有默认的实现,下面通过分析server.xml文件来理解Tomcat的各个组件是如何组织的。
<Server> 顶层元素,代表一个服务器
<Service> 顶层元素,是Connector的集合,只有一个Engine
<Connectior/> 连接器类元素,代表通信接口
<Engine> 容器类元素,为特定的Service组件处理所有客户请求,可包含多个Host
<Host> 为特定的虚拟主机处理所有客户请求
<Context> 为特定的WEB应用处理所有客户请求
</Context>
</Host>
</Engine>
</Service>
</Server>二、tomcat的安装
下载jdk与tomcat包
1、安装jdk
[root@mogilefs1 ~]# rpm -ivh jdk-7u9-linux-x64.rpm
2、修改环境变量
[root@mogilefs1 ~]# vim /etc/profile.d/java.sh //添加如下内容: export JAVA_HOME=/usr/java/jdk1.7.0_40 export PATH=$PATH:$JAVA_HOME/bin [root@mogilefs1 ~]# source /etc/profile.d/java.sh
3、安装tomcat
[root@mogilefs1 ~]# tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/ [root@mogilefs1 ~]# cd /usr/local/ [root@mogilefs1 local]# ln -sv apache-tomcat-7.0.42 tomcat `tomcat‘ -> `apache-tomcat-7.0.42‘ [root@mogilefs1 local]# vim /etc/profile.d/tomcat.sh //添加如下: export CATALINA_HOME=/usr/local/tomcat export PATH=$PATH:$CATALINA_HOME/bin [root@mogilefs1 local]# source /etc/profile.d/tomcat.sh
4、启动tomcat
[root@mogilefs1 local]# catalina.sh start
5、添加启动脚本
[root@mogilefs1 local]# vim /etc/init.d/tomcat
//添加如下:
#!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSP container.
# JAVA_OPTS=‘-Xms64m -Xmx128m‘
JAVA_HOME=/usr/java/latest
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME
case $1 in
start)
exec $CATALINA_HOME/bin/catalina.sh start ;;
stop)
exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
$CATALINA_HOME/bin/catalina.sh stop
sleep 2
exec $CATALINA_HOME/bin/catalina.sh start ;;
*)
echo "Usage: `basename $0` {start|stop|restart}"
exit 1
;;
esac
[root@mogilefs1 local]# chmod +x /etc/init.d/tomcat
[root@mogilefs1 local]# chkconfig --add tomcat
[root@mogilefs1 local]# service tomcat start6、测试访问
三、tomcat配置
1、配置Tomcat虚拟主机
[root@mogilefs1 conf]# vim /usr/local/tomcat/conf/server.xml
//添加以下内容:
<Host name="www.gulong.com" appBase="/web/webapp"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/web/webapp" reloadable="true"/>
<Context path="/test" docBase="/web/test" reloadable="true"/>
</Host>参数注解:
appBase:此Host的webapps目录,即存放非归档的web应用程序的目录或归档后的WAR文件的目录路径;可以使用基于$CATALINA_HOME的相对路径;
autoDeploy:在Tomcat处于运行状态时放置于appBase目录中的应用程序文件是否自动进行deploy;默认为true;
unpackWars:在启用此webapps时是否对WAR格式的归档文件先进行展开;默认为true;
docBase:相应的Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;切记,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如,如果appBase为deploy,而docBase绝不能为deploy-bbs类的名字;
path:相对于Web服务器根路径而言的URI;如果为空“”,则表示为此webapp的根路径;如果context定义在一个单独的xml文件中,此属性不需要定义;
reloadable:是否允许重新加载此context相关的Web应用程序的类;默认为false;
创建文档目录与测试页面
[root@mogilefs1 conf]# mkdir -pv /web/webapp
mkdir: created directory `/web‘
mkdir: created directory `/web/webapp‘
[root@mogilefs1 conf]# mkdir /web/test
[root@mogilefs1 conf]# vim /web/webapp/index.jsp
//添加如下:
<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
<title>JSP test page.</title>
</head>
<body>
<% out.println("Welcome to test. Site, http://www.gulong.com"); %>
</body>
</html>
[root@mogilefs1 conf]# vim /web/test/index.jsp
//添加如下:
<%@ page language="java" %>
<html>
<head><title>TomcatA</title></head>
<body>
<h1><font color="red">TomcatA </h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("abc","abc"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
</table>
</body>
</html>
[root@mogilefs1 conf]# service tomcat restart测试:
(读者访问时,自行修改hosts文件)
2、图形配置界面的设置
图形界面上有3个按钮,可以用来查看与配置tomcat
Server Status 主要用来查看服务器的状态
Manager App 主要用来管理应用程序的部署及监控
Host Manager 主要用来管理虚拟主机
我们只要修改tomcat-user.xml文件即可启用这些功能
[root@mogilefs1 conf]# vim /usr/local/tomcat/conf/tomcat-users.xml //添加如下: <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/> [root@mogilefs1 conf]# service tomcat restart
测试下:
Server Status 界面
Manager App界面
Host Manager 界面
3、部署jsp网站
JavaCenter_Home_2.0_GBK.tar.bz2
[root@mogilefs1 ~]# yum -y install mysql-server [root@mogilefs1 ~]# tar xf JavaCenter_Home_2.0_GBK.tar.bz2 [root@mogilefs1 ~]# cd JavaCenter_Home_2.0_GBK [root@mogilefs1 JavaCenter_Home_2.0_GBK]# mv * /web/webapp/
启动mysql
# service mysqld start
修改下server.xml
[root@mogilefs1 webapp]# vim /usr/local/tomcat/conf/server.xml
<Host name="www.gulong.com" appBase="/web"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="webapp" reloadable="true"/>
<Context path="/test" docBase="/web/test" reloadable="true"/>
</Host>
[root@mogilefs1 webapp]# service tomcat restart安装:
tomcat的基本应用介绍完毕,后面来介绍nginx的反向代理!
原文:http://584014981.blog.51cto.com/8605371/1409482