-
优化配置
缓存优化(nginx、gzip)
运动模式
BIO:效率低下,一个线程只能处理一个请求,请求过多的时候,线程会相应的增加,很浪费资源,tomcat7以下版本是BIO
NIO:基于缓存区、非阻塞的I/O。相对于BIO效率更高(利用java异步I/O,少量线程处理大量请求)
APR:tomcat7及以上默认模式。需要操作系统的支持(tomcat7以及以上版本在操作系统安装了APR时候,tomcat默认是APR模式)
查看全部 -
配置大小查看全部
-
监听8005发过来的关闭服务命令
查看全部 -
jdk1.8的垃圾回收机制比1.7强
查看全部 -
修改Cookies安全性
查看全部 -
server处理http请求
自上而下
责任链模式
查看全部 -
多域名配置
在server.xml中配置host节点
在host中配置 127.0.0.1 other
在浏览器中访问other:8081
多端口配置
查看全部 -
注意配置的端口号相同
查看全部 -
使用tomcat数据库连接池
引入jar包
测试demo代码:
DataSource读取配置对象,获取到数据库连接
使用连接进行数据库查询
配置各个参数的含义
1.JmxEnabled:是否将连接注册到JMX中
JMX 就是一个框架,通过将监控和管理涉及到各个方面的问题和解决办法放到一起统一的去设计,以便向外部提供服务,供使用者去调用。
监控系统的状态,管理系统的缓存。
默认值是true。
2.setValidationQuery: sql查询
用来验证从连接池中取出的连接,在返回给调用者之前,指定的参数的查询必须使用sql语句,select的语句至少返回一条记录。
一般默认值是 SELECT 1 .
3.setTestOnReturn: 是否在归还前进行检查
在归还到数据库连接池之前,是否进行一个校验。
一般设为false。
4.setValidationInterval: 设置验证频率
参数为上限。避免过度验证。
参数的单位为毫秒。
5.setTimeBetweenEvivtionRunsMillis: 回收期休眠时间
空闲的连接回收期线程,在运行期间的休眠时间值,单位为毫秒。
如果设置为非整数,就不会运行。
不应该小于1秒。
6.setMaxActive:最大活动连接
在连接池中,同一时间能够分配的最大的活动连接数量。
如果设置成非整数,就表示没有限制。
在tomcat中配置
需要在context.xml中配置
并在web.xml中配置
注意:re-name与context.xml中的name属性相同
将mysql连接jar包放入lib文件夹,启动tomcat
查看全部 -
1.单点登录的概念
单点登录(Single Sign On),简称为SSO,是目前比较流行的企业服务整合的解决方案之一
SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统
2.CAS
开源的企业级单点登录解决方案
从结构上:CAS Server和CAS Client
CAS Server:需要独立部署,负责对用户的认证工作。
CAS Client:负责对客户端的受保护的资源的访问请求
查看全部 -
1.什么是热部署?
就是在不重新启动Tomcat服务器的条件下,将自己的项目部署到Tomcat服务器中。
2.如何配置热部署?---------三种方式
直接将自己的web文件放入webapps文件夹中。
conf/server.xml <host>标签中中添加context标签:
<Context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true" />
-----debug越大,程序发生异常时,写入日志文件的详细程度越大,默认为0
------docBase 项目的绝对路径或者相对路径(相对webapps)
------path 项目的访问方式
-------reloadable 如果为true 自动加载新增或者改变的class文件
在conf/catalina下面的localhost中添加一个xml文件
新建一个demo2.xml文件,粘贴配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<Context debug="0" docBase="D:\demo1\web" path="/demo1" reloadable="true" />
这时候demo2作为访问项目的名称,path不起作用。
查看全部 -
1.修改内存的目的
日常开发中,开发项目比较大的时候依赖的jar包比较多,并且在应用服务器启动的时候,会将项目引用的所有的类依次全部加载到内存当中,java的逻辑内存模式分为
堆内存(存储类的实例,数组、引用数据类型也就是用new生成的对象)、
栈内存(存储局部变量比如方法参数)、
静态内存区(持久区,该区内存不会被gc回收,存常量、静态变量、类的源数据:方法、属性什么的)
2.在开发当中经常遇到的内存溢出的异常
OutOfMemoryErroe:Java heap space异常------>堆内存满了
JVM中堆内存的大小默认使用的最小内存是我们物理内存的1/64,最大的使用我们物理内存的1/4,我们通过调整JVM中的初始内存和最大内存来改变我们使用内存的限制
OutOfMemoryError:PermGen space异常-------->静态内存区满了
通常是因为加载的类太多导致的,jdk8以下的需要修改两个参数限制静态区最小和最大内存范围,,jdk8改变了内存模型,将类定义存放到了源数据空间,而源数据空间与堆内存共享的是同一块内存区域,所以在jdk8版本以后就不会再出现PermGen space异常了。
StackOverflowError异常---------->栈内存溢出
通常是由于死循环或无线递归导致的
3.配置内存参数
网上有两种方式,一种是在start.bat,一种是在catalina.bat中
bin/catalina编辑:配到第2行/192行都行
JAVA_OPTS=“-server -Xms512m -Xmx1024m
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m ”
-Xms:java heap初始大小 ,默认为物理内存的1/64,最大不要超过物理内存的80%
-Xmx:java heap的最大值,建议设置为物理内存的一半,不要超过实际的物理内存
MetaspaceSize:初始源空间的值,默认21m,
MetaspaceSize:最大源空间的值,默认无上限
虚拟机的堆大小决定了虚拟机花费在数据垃圾上的时间和频率,调整虚拟机的堆大小目的是最小化垃圾回收的时间,一般用物理内存的80%作为堆内存的大小
查看全部 -
1.修改Tomcat端口号
在server.xml文件里面修改
2.配置端口号:
端口范围:1~65535,一般在1024~65535之间取值。因为前1~1024大部分都被固定分配了。
3.server.xml中的三个端口:
(1)shutdown端口:端口为8005,负责监听关闭tomcat的请求;
(2)http端口:负责建立http请求;默认端口为8080
(3)AJP协议端口:端口为8009,负责与其他的http服务器建立连接,把tomcat与其他的http服务器集成。
查看全部 -
Tomcat目录结构:
(1)bin目录:存放tomcat运行命令;主要有.sh和.bat两类,.sh是linux命令,.bat是windows命令。
(2)conf目录:主要存放一些配置文件。
(3)lib目录:包含了所有tomcat启动jar包,也包含了用户存放的web程序共享的jar包。
(4)logs目录:用来存放tomcat在运行时产生的日志信息。
(5)temp目录:主要存放tomcat在运行过程中产生的一些临时文件,即使清空,对tomcat也没什么影响。
(6)webapps目录:主要存放应用程序。
webapps目录中的Root目录是Tomcat的根目录,可以直接访问。
(7)work目录:存放tomcat运行时编译后的文件,清除work目录并重启tomcat可以达到清除缓存的作用。
查看全部 -
1.用户点击网页的内容,请求被发送到主机的8080端口,会在那里监听8080端口的connector获得。
2.接下来connector会请求它所在的server的Engine来处理,并且等待Engine的回应。
3.Engine获得的请求是localhost-teckst-index.jsp,它就去匹配所有的虚拟主机,也就是Host。Engine去匹配名称为localhost的host,也就是站点,名称为localhost的站点获得请求teckst-index.jsp。
4.然后再去匹配所有的context,而host匹配的路径为teckst-Context,也就是项目。
5.然后第五步,匹配到-Context的context,它去获得的请求是Index.jsp,它就会在它的Mackie table里面去寻找对应的servlet。
6.对应的servlet就会构建两个对象,一个是appservletrequest和reponse两个对象,并且作为参数去调用jspservlet的doget或者dopost方法, 然后去执行业务逻辑,比如说数据存储。
7.然后context就会把执行完的httpservletresponse对象返回给Host。
8.Host把response对象返回给Engine。
9.Engine再返回给Connector。
10.Connector再返回给客户端。
查看全部
举报