1 搭建基础运行环境 JDK1.8
下载jdk
安装jdk
配值环境变量
- 配置环境变量JAVA_HOEM
- path路径%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin
2 安装Tomcat服务器 win linux
下载Tomact
https://tomact.apache.org/download-70.cgi
;
解压
启动
点击目录下的startup.bat,页面根目录为webapps文件夹
解决中文乱码问题
在conf/logging.properties文件中将utf-8全局替换为GB2312
linux安装
教程:https://www.imooc.com/video/19205
目录结构说明
bin 存放Tomact运行的命令
- 类别
+ .sh结尾 linux运行命令
+ .bat结尾 window运行命令
- 主要命令
+ startup
+ shutdown
+ catalina 设置Tomact的内存和字符集
conf 配置文件
- catalina目录可以设置默认加载的项目
- catalina.policy 防止jsp文件,或者用户代码破坏Tomact的容器
- catalina.properties 不能对jsp和jar修改的文件列表
- context.xml 用来配置数据源之类的东西
- logging.properties 记录tomcat服务器运行的日志记录
- server.xml可以设置域名、端口号、IP、请求的编码、默认加载的项目。
- tomcatt-users.xml tomact的web页面管理员权限
- web.xml可以设置tomcat服务器支持的文件类型。启动信息,启动页
backup
conf文件夹的备份
lib
存放Tomcat服务器所需要的所有Jar包。
logs
用来存放Tomcat执行时的日志文件。清除此文件不会对Tomcat服务器产生影响。开始时此文件目录为空。只有运行了Tomcat才会在此目录下生成日志文件。
temp
用来存放Tomcat执行过程中产生的临时文件。清除此文件不会影响Tomcat服务器。
webapps
tomcat默认部署路径。目录用来存放应用程序,当Tomcat启动时会加载webapps目录下的应用程序。当然可以以war包、Jar包、普通文件夹三种形式发布应用。你也可以把应用程序存放在电脑磁盘的任意一个位置,但是在配置文件中要配置好,使其映射好。
work
用来存放Tomcat运行时编译后的文件。清空work目录,重启Tomcat,可以达到清除Tomcat服务器缓存的目的。
wtpwebapps
和webapps功能差不多,但是它是eclipse默认的部署路径。与webapps同时存在时,默认选择wtpwebapps。
配置端口号
如果多个Tomcat安装在同一台操作系统上,需要分配3组3个端口,共9个不同的端口。
shutdown端口
关闭tomcat通信接口, port:指定一个端口,这个端口负责监听关闭Tomcat的请求 shutdown:向以上端口发送的关闭服务器的命令字符串
<Server port="8005" shutdown="SHUTDOWN">
AJP端口
与其他http服务器通信接口,用于http服务器集合
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
HTTP端口
建立http连接 用,如浏览器访问
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
修改内存
内存模型
+ 堆内存,引用类型
+ 栈内存 局部变量
+ 静态内存区 常量
内存溢出
OutOfMemoryError:Java heap space异常
OutOfMemoryError:PermGen space异常
StackOverflowError异常
最大内存设置为物理内存的1/4
热部署
定义
就是在应用正在运行的时候升级软件,却不需要重新启动应用(tomact)
操作实现
- 1.直接将项目放到webapps文件夹
- 2.修改server.xml中的Host标签,增加Context标签,如下代码
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
<!-- 修改配置如下 -->
<Context docBase="F:\work_code\front_demo\code\WebContent" path="front_demo" debug="0" privileged="true"></Context>
</Host>
- 3.在conf\Catalina\localhost文件夹中新建一个xml文件,如front_demo.xml,文件夹内容如下
<Context docBase="F:\work_code\front_demo\code\WebContent" debug="0" privileged="true">
</Context>
数据库连接池和数据源
什么是连接池
如何配置
JDBC操作数据库
加载驱动-->创建链接--> 执行SQL-->释放链接
Tomact实现web管理
管理界面功能简述
使用tomact管理界面发布项目
修改发布war包大小最大值
修改下面的值 \webapps\manager\WEB-INF\web.xml
<multipart-config>
<!-- 50MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
单点登录(SSO)
CAS
开源的企业级单点登录解决方案
- CAS Server
- CAS Client
安全配置
关闭服务器端口
修改端口号或者命令
隐藏版本信息
用压缩工具打开找到 catalina.jar/org/apache/catalina/util/ServerInfo.properties,修改以下参数值:
server.info=Apache Tomcat/7.0.92
server.number=7.0.92.0
server.built=Nov 9 2018 11:07:44 UTC
禁用Tomact管理界面
ROOT 文件夹重命名,去除了根目录
自定义错误页面
在/conf/web.xml文件中增加如下代码,将error.html放到ROOT目录下
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error.html</location>
</error-page>
AJP端口管理
nginx反向代理的时候就不用AJP,可以注释掉
Apache需要
操作如下:经conf/server.xml中的以下代码注释掉
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
启用cookie的HttpOnly
修改conf/context.xml
<Context useHttpOnly="true">
</Context>
cookie
保存在客户端的纯文本文件,服务器生成的证书返回给浏览器,浏览器保存在本地
XSS-跨站脚本攻击
Tomact安全规范
账号管理,认证授权
修改 conf/tomact-users.xml,包含以下三个
- 共享,无关账号
- 口令密码
- 用户权限
日志配置操作
修改conf/tomact-users.xml
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="common" prefix="localhost_access_log." suffix=".txt"/>
</Host>
其他配置项
界面操作用户应定时自动登出,修改conf/tomact-users.xml中connectionTimeout值(单位为ms)
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
优化配置
缓存优化(nginx,gzip)
css,图片,js
运行模式
- BIO:Tomcat7以下默认模式
- NIO: 基于缓冲区,非阻塞的I/O (推荐)
- APR: Tomcat7及以上默认模式