一,Tomcat 理论部分

1tomcat介绍

          Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O'Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O'Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。                                                                                                                                                                                                                                                                               

        诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0

 

2JDK介绍

       JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。

 3jdk不同发展方向:

       SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

       EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。

       ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

 4JDK包含的基本组件包括:

       javac – 编译器,将源程序转成字节码

       jar – 打包工具,将相关的类文件打包成一个文件

       javadoc – 文档生成器,从源码注释中提取文档

       jdb – debugger,查错工具

       java – 运行编译后的java程序(.class后缀的)

       appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

        Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

       Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

       Jconsole: Java进行系统调试和监控的工具

5java 体系结构:     

      A   java 编程语言:

      C   java class(类)文件格式:标准

      B   java API (开发接口):

      D   java VM:各自独立,又有联系;

6Java虚拟机

        JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

       Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码)就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

     JVM 工作结构如图1.1所示:

Tomcat 基础知识_吉祥物

 A, 方法区:被虚拟机加载的类信息;常量、静态变量等;永久代;

     B,堆:内存动向的, java堆是jvm管理的最大一部分,也是GC管理的主要区域;也是存储java 划分出来的对象;主流的算法都基于分代收集方式进行,新生代和老年代,线程共享;

     C,  java栈:java 线程私有的,创建栈贞,存放线程的局部变量表;

     D, PC寄存器(program counter register):有些空间是共享的,有些是每一个线程独占的部分;程序计数器,线程各自都独占的内存空间;

     E, 本地方法栈:依赖于本地平台;

7java 栈标准版5.0 如图1.2所示

Tomcat 基础知识_戴维森_02

二,实践部分

1,安装tomcat前,要先安装jdk组件:

     下面安装epel源码包的jdk

# rpm -ivh jdk-7u67-linux-x64.rpm

如图1.3

Tomcat 基础知识_封面设计_03

查看安装路径,如图1.4所示:

Tomcat 基础知识_基础知识_04

2,配置java环境变量:

# vim /etc/profile.d/java.sh   如图1.5

Tomcat 基础知识_吉祥物_05

# . /etc/profile.d/java.sh      重置生效;

查看java版本;

# java -version         如图1.6

Tomcat 基础知识_戴维森_06

3,部署tomcat

# tar xf apache-tomcat-8.0.23.tar.gz

# ln -sv apache-tomcat-8.0.23 tomcat

# cd tomcat/

配置tomcat环境变量:

# vim /etc/profile.d/tomcat.sh        如图1.7

Tomcat 基础知识_戴维森_07

# . /etc/profile.d/tomcat.sh    重读生效;

# catalina.sh start            启动tomcat 如图1.8

Tomcat 基础知识_封面设计_08

# netstat -tnlp          查看tomcat监听端口8080

访问浏览器验证tomcat是否安装成功:  如图1.9

Tomcat 基础知识_吉祥物_09

4,配置文件相关信息:

Aserver.xml  :    主配置文件

Bcontext.xml:每一个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的web-inf目录中,用于定义会话管理,jdbc conf/context.xml 是为个webapp提供默认部署;

Cweb.xml:        每个webapp“部署”之后才能被访问,此文件用于为所有的webapp提供默认部署相关的配置;

Dtomcat-users.xml:用户认证的账号和密码配置文件;

Ecatalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略;

Fcatalina.properties: java 属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数;

Glogging.properties 日志相关的配置信息;

 

5,查看webapps 程序目录;

# cd webapps/                               如图2.0

Tomcat 基础知识_封面设计_10

6,查看java webapps 的主文件:

      AWEB-INF/:当前webapp的私有资源,存放当前webapp自用的web.xml

     BMETA-INF/:当前webapp的私有资源,存放当前webapp自用的context.xml

     C classes/:webapp的私有类;

     Dlib/:webapp的私有类,被打包为jar格式类;

     E index.jsp webapp 的主页;

 

7,添加测试应用程序:

     创建目录并添加测试文档:

  # mkdir -pv myapp/{lib,classes,WEB-INF,META-INF}

 # vim myapp/index.jsp      如图2.1

Tomcat 基础知识_詹姆斯_11

访问文本页面验证:   如图2.2

Tomcat 基础知识_吉祥物_12

三,热部署和冷部署:

   1  部署方式:

              自动部署:  auto deploy

             手动部署:

               A,冷部署,把webapp复制到指定位置,而后才启动tomcattomcat启动之前;

               B,热部署,在不停止tomcat的前提下进行的部分;

                              部署工具:managerant脚本、tcd 等;

 

A 配置conf文件做webapp 管理工具:

# vim /usr/local/tomcat/conf/tomcat-users.xml     如图2.3

Tomcat 基础知识_詹姆斯_13

停止tomcat服务并在此开启tomcat服务,

# catalina.sh stop

# catalina.sh start

访问web浏览器验证查询:       如图2.4

Tomcat 基础知识_詹姆斯_14

B,配置Host manager 参数;

  首先修改 /usr/local/tomcat/conf/tomcat-users.xml 里的参数;

  # vim /usr/local/tomcat/conf/tomcat-users.xml         

在上面的参数中加入 <role rolename="admin-gui"/>            如图2.5

Tomcat 基础知识_基础知识_15

访问浏览器来验证:          如图2.6

Tomcat 基础知识_基础知识_16

四,实例演示:

1,首先备份主配置文件

#/usr/local/tomcat/conf

# cp server.xml{,.bak}

A   #vim server.xml    查看配置文档

8005 端口实现当前虚拟机管理;         如图2.7

Tomcat 基础知识_吉祥物_17

B,定义虚拟主机;      如图2.8

Tomcat 基础知识_詹姆斯_18

2,定义虚拟主机:

首先创建目录

#mkdir -pv /data/{webapps,logs}

#cp/usr/local/tomcat/webapps/myapp/* /data/webapps/      把编辑好的jsp文件复制到

在编辑 /usr/local/tomcat/conf/server.xml

 

        <Host name="192.168.193.73" appBase="/data/webapps" unpackWARs="true" autoDeploy="false">

         <Context path="" docBase="/data/webapps/" reloadable="true" />

         <Valve className="org.apache.catalina.valves.AccessLogvalve" directory="/data/logs"

                prefix="web1_access_log" suffix=".txt"

                pattern="%h %l %u %t &quot;%r&quot; %s %b" />

                         </Host>

访问浏览器验证:    如图2.9

Tomcat 基础知识_基础知识_19

我们查看他的log日志:

# tail -f  /data/logs/web1_access_log.2015-10-27.txt

tail -f 查看流动日志再好不过了,爱死ta           如图3.0

Tomcat 基础知识_基础知识_20

3,下面我们做一下访问控制,禁止192.168.197.116 访问;

我们要编辑/usr/local/tomcat/conf/server.xml  如图3.1

我们加入一行deny就可以了,

Tomcat 基础知识_封面设计_21

现在访问浏览器验证  显示403的错误:      如图3.2

Tomcat 基础知识_基础知识_22

到这就算可以先歇歇了,,,后面的 我们在周末在更新   !!!!!!!!!!!!!

 

                                                        更多linux 知识  请关注马哥教育 www.magedu.com