首页 > 代码库 > tomcat的基本应用
tomcat的基本应用
一、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包
apache-tomcat-7.0.42.tar.gz
jdk-7u9-linux-x64
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 start
6、测试访问
三、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的反向代理!