一,Tomcat 理论部分
1,tomcat介绍
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;
2,JDK介绍
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。
3,jdk不同发展方向:
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。
4,JDK包含的基本组件包括:
javac – 编译器,将源程序转成字节码
jar – 打包工具,将相关的类文件打包成一个文件
javadoc – 文档生成器,从源码注释中提取文档
jdb – debugger,查错工具
java – 运行编译后的java程序(.class后缀的)
appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。
Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。
Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。
Jconsole: Java进行系统调试和监控的工具
5,java 体系结构:
A java 编程语言:
C java class(类)文件格式:标准
B java API (开发接口):
D java VM:各自独立,又有联系;
6,Java虚拟机
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
JVM 工作结构如图1.1所示:
A, 方法区:被虚拟机加载的类信息;常量、静态变量等;永久代;
B,堆:内存动向的, java堆是jvm管理的最大一部分,也是GC管理的主要区域;也是存储java 划分出来的对象;主流的算法都基于分代收集方式进行,新生代和老年代,线程共享;
C, java栈:java 线程私有的,创建栈贞,存放线程的局部变量表;
D, PC寄存器(program counter register):有些空间是共享的,有些是每一个线程独占的部分;程序计数器,线程各自都独占的内存空间;
E, 本地方法栈:依赖于本地平台;
7,java 栈标准版5.0 如图1.2所示
二,实践部分
1,安装tomcat前,要先安装jdk组件:
下面安装epel源码包的jdk,
# rpm -ivh jdk-7u67-linux-x64.rpm
如图1.3
查看安装路径,如图1.4所示:
2,配置java环境变量:
# vim /etc/profile.d/java.sh 如图1.5
# . /etc/profile.d/java.sh 重置生效;
查看java版本;
# java -version 如图1.6
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
# . /etc/profile.d/tomcat.sh 重读生效;
# catalina.sh start 启动tomcat 如图1.8
# netstat -tnlp 查看tomcat监听端口8080
访问浏览器验证tomcat是否安装成功: 如图1.9
4,配置文件相关信息:
A,server.xml : 主配置文件
B,context.xml:每一个webapp都可以有专用的配置文件,这些配置文件通常位于webapp应用程序目录下的web-inf目录中,用于定义会话管理,jdbc等 conf/context.xml 是为个webapp提供默认部署;
C,web.xml: 每个webapp“部署”之后才能被访问,此文件用于为所有的webapp提供默认部署相关的配置;
D,tomcat-users.xml:用户认证的账号和密码配置文件;
E,catalina.policy:当使用-security选项启动tomcat实例时会读取此配置文件来实现其安全运行策略;
F,catalina.properties: java 属性的定义文件,用于设定类加载器路径等,以及一些JVM性能相关的调优参数;
G,logging.properties: 日志相关的配置信息;
5,查看webapps 程序目录;
# cd webapps/ 如图2.0
6,查看java webapps 的主文件:
A,WEB-INF/:当前webapp的私有资源,存放当前webapp自用的web.xml;
B,META-INF/:当前webapp的私有资源,存放当前webapp自用的context.xml;
C, classes/:此webapp的私有类;
D,lib/:此webapp的私有类,被打包为jar格式类;
E, index.jsp :webapp 的主页;
7,添加测试应用程序:
创建目录并添加测试文档:
# mkdir -pv myapp/{lib,classes,WEB-INF,META-INF}
# vim myapp/index.jsp 如图2.1
访问文本页面验证: 如图2.2
三,热部署和冷部署:
1, 部署方式:
自动部署: auto deploy
手动部署:
A,冷部署,把webapp复制到指定位置,而后才启动tomcat;tomcat启动之前;
B,热部署,在不停止tomcat的前提下进行的部分;
部署工具:manager、ant脚本、tcd 等;
A, 配置conf文件做webapp 管理工具:
# vim /usr/local/tomcat/conf/tomcat-users.xml 如图2.3
停止tomcat服务并在此开启tomcat服务,
# catalina.sh stop
# catalina.sh start
访问web浏览器验证查询: 如图2.4
B,配置Host manager 参数;
首先修改 /usr/local/tomcat/conf/tomcat-users.xml 里的参数;
# vim /usr/local/tomcat/conf/tomcat-users.xml
在上面的参数中加入 <role rolename="admin-gui"/> 如图2.5
访问浏览器来验证: 如图2.6
四,实例演示:
1,首先备份主配置文件
#/usr/local/tomcat/conf
# cp server.xml{,.bak}
A, #vim server.xml 查看配置文档
8005 端口实现当前虚拟机管理; 如图2.7
B,定义虚拟主机; 如图2.8
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 "%r" %s %b" />
</Host>
访问浏览器验证: 如图2.9
我们查看他的log日志:
# tail -f /data/logs/web1_access_log.2015-10-27.txt
用tail -f 查看流动日志再好不过了,爱死ta了 如图3.0
3,下面我们做一下访问控制,禁止192.168.197.116 访问;
我们要编辑/usr/local/tomcat/conf/server.xml 如图3.1
我们加入一行deny就可以了,
现在访问浏览器验证 显示403的错误: 如图3.2
到这就算可以先歇歇了,,,后面的 我们在周末在更新 !!!!!!!!!!!!!
更多linux 知识 请关注马哥教育 www.magedu.com