自从 JSP 发布之后,推出了各式各样的 JSP 引擎。Apache Group 在完成 GNUJSP1.0 的开发以后,开始考虑在 SUN 的 JSWDK 基础上开发一个可以直接提供 Web 服务的 JSP 服务器,当然同时也支持 Servlet, 这样 Tomcat 就诞生了。
Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。其被 JavaWorld 杂志的编辑选为 2001 年度最具创新的 Java 产品,同时它又是 sun 公司官方推荐的 Servlet和 JSP 容器,因此其越来越多的受到软件公司和开发人员的喜爱。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和 JSP 2.0 规范。因为 Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应 HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上,Tomcat 是 Apache服务器的扩展,但运行时它是独立运行的,所以当运行 Tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
当配置正确时,Apache 为 HTML 页面服务,而 Tomcat 实际上运行 JSP 页面和 Servlet。另外,Tomcat 和 IIS 等 Web 服务器一样,具有处理 HTML 页面的功能,另外它还是一个 Servlet和 JSP 容器,独立的 Servlet 容器是 Tomcat 的默认模式。不过,Tomcat 处理静态 HTML 的能力不如 Apache 服务器。
通常意义上的 Web 服务器接受请求后,只是单纯地响应静态资源,如 HTML 文件,图片文件等,不能在后端进行一定的处理操作。Tomcat 是 Apache 下的一个子项目,它具备 Web服务器的所有功能,不仅可以监听接受请求并响应静态资源,而且可以在后端运行特定规范的 Java 代码 Servlet,同时将执行的结果以 HTML 代码的形式写回客户端。
1)Web 容器:完成 Web 服务器的功能。
2)Servlet 容器:名字为 catalina,用于处理 Servlet 代码。
3)JSP 容器:用于将 JSP 动态网页翻译成 Servlet 代码。
1.用户在浏览器中输入网址localhost:8080/test/index.jsp,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得;
2.Connector把该请求交给它所在的Service的Engine(Container)来处理,并等待Engine的回应;
3.Engine获得请求localhost/test/index.jsp,匹配所有的虚拟主机Host;
4.Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求/test/index.jsp,匹配它所拥有的所有Context。Host匹配到路径为/test的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理);
5.path=“/test”的Context获得请求/index.jsp,在它的mapping table中寻找出对应的Servlet。Context匹配到URL Pattern为*.jsp的Servlet,对应于JspServlet类;
6.构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;
7.Context把执行完之后的HttpServletResponse对象返回给Host;
8.Host把HttpServletResponse对象返回给Engine;
9.Engine把HttpServletResponse对象返回Connector;
10.Connector把HttpServletResponse对象返回给客户Browser。
[root@localhost ~]# ll /usr/local/tomcat/
总用量 124
drwxr-x--- 2 root root 4096 3月 7 22:34 bin
-rw-r----- 1 root root 19203 2月 5 00:32 BUILDING.txt
drwx------ 3 root root 254 3月 7 22:36 conf
-rw-r----- 1 root root 6095 2月 5 00:32 CONTRIBUTING.md
drwxr-x--- 2 root root 4096 3月 7 22:34 lib
-rw-r----- 1 root root 57092 2月 5 00:32 LICENSE
drwxr-x--- 2 root root 197 3月 7 22:36 logs
-rw-r----- 1 root root 2333 2月 5 00:32 NOTICE
-rw-r----- 1 root root 3255 2月 5 00:32 README.md
-rw-r----- 1 root root 6854 2月 5 00:32 RELEASE-NOTES
-rw-r----- 1 root root 16262 2月 5 00:32 RUNNING.txt
drwxr-x--- 2 root root 30 3月 7 22:34 temp
drwxr-x--- 7 root root 81 2月 5 00:31 webapps
drwxr-x--- 3 root root 22 3月 7 22:36 work
----------------------------------------------------------
●bin
存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、
shutdown.sh 三个文件
●conf
存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、
tomcat-users.xml、web.xml 四个文件。
●lib
存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,
那就需要添加相对应的 jar 包
●logs
存放 Tomcat 日志
●temp
存放 Tomcat 运行时产生的文件
●webapps
存放项目资源的目录
●work
Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到
在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是 Tomcat 运行的必要环境。
[root@localhost ~]# mkdir /mnt/tools
[root@localhost ~]# mount.cifs //192.168.100.50/tools /mnt/tools #挂载共享文件到Linux本地目录中
Password for root@//192.168.100.50/tools:
[root@localhost ~]# cd /mnt/tools/tomcat/ #进入本地目录查看
[root@localhost tomcat]# ls
12D18CFCD6599AFF0445766ACC4CA231C5025773.torrent apache-jmeter-5.1.zip jdk-8u201-linux-x64.rpm
apache-jmeter-5.1 apache-tomcat-9.0.16.tar.gz tomcat优化压测.jmx
[root@localhost tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm #安装JDK
[root@localhost tomcat]# cd /usr/java/jdk1.8.0_201-amd64/
[root@localhost jdk1.8.0_201-amd64]# pwd
/usr/java/jdk1.8.0_201-amd64 #确认JDK安装的目录路径
[root@localhost jdk1.8.0_201-amd64]# vim /etc/profile
#在文件的末行追加一下三条申明条目
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
#申明java的工作目录
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
#申明java类文件的位置
export PATH=$JAVA_HOME/bin:$PATH
#申明java环境变量
[root@localhost jdk1.8.0_201-amd64]# source /etc/profile #生效环境变量
[root@localhost jdk1.8.0_201-amd64]#
[root@localhost jdk1.8.0_201-amd64]# java -version #查看版本
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
[root@localhost jdk1.8.0_201-amd64]#
[root@localhost jdk1.8.0_201-amd64]# cd /mnt/tools/tomcat/
[root@localhost tomcat]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /usr/local/
#解压tomcat包到/usr/local/目录中
[root@localhost tomcat]# cd /usr/local/
[root@localhost local]# mv apache-tomcat-9.0.16/ tomcat #改名apache-tomcat-9.0.16文件为tomcat
[root@localhost local]# ls
bin etc games include lib lib64 libexec sbin share src tomcat
[root@localhost local]#
[root@localhost local]# cd tomcat/bin/ #切换到tomcat目录下的bin目录,这里有控制tomcat服务的脚本
[root@localhost bin]# ls
bootstrap.jar ciphers.bat configtest.bat digest.sh setclasspath.sh startup.sh tool-wrapper.sh
catalina.bat ciphers.sh configtest.sh makebase.bat shutdown.bat tomcat-juli.jar version.bat
catalina.sh commons-daemon.jar daemon.sh makebase.sh shutdown.sh tomcat-native.tar.gz version.sh
catalina-tasks.xml commons-daemon-native.tar.gz digest.bat setclasspath.bat startup.bat tool-wrapper.bat
[root@localhost bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
#创建tomcat启动脚本的软链接到系统目录中,方便系统识别
[root@localhost bin]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/
#创建tomcat关闭脚本的软链接到系统目录中,方便系统识别
[root@localhost bin]# startup.sh #启动tomcat服务
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@localhost bin]# systemctl stop firewalld.service #关闭防火墙
[root@localhost bin]# setenforce 0 #关闭增强型安全功能
[root@localhost bin]# netstat -ntap | grep 8080 #查看tomcat服务的8080端口状态
tcp6 0 0 :::8080 :::* LISTEN 52230/java
[root@localhost bin]#
在浏览器中输入http://192.168.52.132:8080即可访问到网页
[root@localhost bin]# cd /usr/java/jdk1.8.0_201-amd64/jre/lib/security/
[root@localhost security]# ls
blacklist blacklisted.certs cacerts java.policy java.security javaws.policy policy trusted.libraries
[root@localhost security]# vim java.security #修改java.security参数
securerandom.source=file:/dev/urandom
#检索到random参数条目,将random修改为urandom,以缩短启动时间
[root@localhost security]# startup.sh #再次启动服务,启动时间明显缩短
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。