首页 > 代码库 > 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

wKiom1NvQHXjIKQXAAIvMq6HC6c645.jpg


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、测试访问

wKioL1NvQLrDleYqAANbSLce1rk016.jpg


三、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


测试:

wKiom1NvTNXCNJtIAACJlSlhoGo101.jpg

wKioL1NvTNDiwYYmAADVtt3zAho492.jpg

(读者访问时,自行修改hosts文件)


2、图形配置界面的设置

图形界面上有3个按钮,可以用来查看与配置tomcat

wKioL1NvTXOipWmsAALtKVm-5aM071.jpg


  • 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


测试下:

wKiom1NvTrmA6mV8AAN3nGlHVvc095.jpg


  • Server Status 界面

wKioL1NvTq6z2TAkAAVhsnDlANo192.jpg







  • Manager App界面

wKiom1NvT_iA4Qa3AASyzcJsS9U121.jpg


  • Host Manager 界面

wKioL1NvTyvT7YNGAAQ6F_VDPqE614.jpg


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


安装:

wKioL1NvW1KQOVB9AAPdIbkavKw428.jpgwKiom1NvW9WzRNMzAAJELXM1cRY120.jpg

wKioL1NvW8XRLQ1fAAGEFW98uEc954.jpg


wKiom1NvXCaDwL40AANBkAGfL88134.jpg


tomcat的基本应用介绍完毕,后面来介绍nginx的反向代理!