tomcat基础

1.ajax异步是完全可以模拟并发的,循环请求,异步不等待服务器响应,就会抛出下一个请求,是并发的
2.应用服务器处理请求是并发处理,多线程,tomcat处理一个请求的过程
https://www.cnblogs.com/kismetv/p/7806063.html

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。

3.tomcat的配置和体系架构
https://www.cnblogs.com/small-boy/p/8042860.html
在这里插入图片描述
4.tomcat中connector有两种:一个Connector组件将在某个指定的端口上侦听客户请求,接收浏览器发过来的tcp连接请求,创建一个Request和一个Response对象分别用于和其你去端交换数据,然后会产生一个线程来处理这个请求并把产生的Request和Response对象传给Engine,从Engine中获得响应并返回给客户端。 Tomcat有两个经典的Connector,一个直接侦听来自浏览器的HTTP请求,负责建立HTTP连接,在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。AJP协议的connector负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器 Connector 最重要的功能就是接收连接请求然后分配线程让 Container来处理这个请求,所以这必然是多线程的,多线程的处理是 Connector 设计的核心。**
5.在eclispe中tomcat正常启动但是访问报404解决方案
https://blog.csdn.net/weixin_39591965/article/details/80927179
6.在一个机器上装多个tomcat需要将server.xml中涉及到的端口都进行改变 参考 ;https://blog.csdn.net/SkyFire1121/article/details/88365176,主要是以下四个端口

在这里插入图片描述
7.tomcat改变默认启动项目,实现访问项目不用加项目名的三种方法
参考:https://blog.csdn.net/xuheng8600/article/details/81277411?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-1
(1)直接将项目手动解压到ROOT下即可
(2)配置docBase为相对路径,相对于appBase的路径
在server.xml中的host中加上这个以下context节点,sbux是在webapps解压后的项目文件夹,即默认的项目路径从ROOT变成了sbux,这样的话直接访问
127.0.0.1:8080直接进sbux这个项目


      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
 
<Context path="" docBase="sbux" reloadable="true"  />
</Host>

(3)配置doc为绝对路径
docBase为绝对路径时,appBase设置失效,会直接将项目解压到ROOT目录下
i)一定要删除webapps下的ROOT目录,否则无法自动解压到ROOT

<Host name="localhost"  appBase="webapps"
    unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/home/appdeploy/apps/sbux.war" reloadable="true"  />
</Host>

ps:docBase和appBase的区别:

appBase="webapps“,这是默认值,相对路径,代表:d:\tomcat\webapps 这样的路径,谓之根目录;根目录下的 ROOT 目录,代表默认的主目录。
访问: http://localhost:8080 默认找 d:\tomcat\webapps\ROOT 下的文件(前提是没有docBase)

appBase=“d:\tomcat\webapps”,绝对目录,访问 http://localhost:8080 返回ROOT目录内容,访问http://localhost:8080/test返回d:\tomcat\webapps\test目录内容。

appBase=“webapps\abc”,相对目录,访问 http://localhost:8080 默认返回d:\tomcat\webapps\abc\ROOT的内容;访问http://localhost:8080/test返回d:\tomcat\webapps\abc\test的内容。

添加路径指向docBase后,appBase 作用变化: 
docBase=“test”, 访问的是 d:\tomcat\webapps\test, appBase为根目录;
docBase="\test", 访问的是 d:\tomcat\webapps\test,appBase为根目录;
docBase=“d:\test”, 访问的是 d:\test,appBase无效;
上述test目录必须存在,否则tomcat报错启动失败。

8 tomcat开启远程调试,亲测方法

(1)在catalina.sh顶部加上以下:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=这里是本机在局域网中的ip:调试端口,suspend=n,server=y"

(2)IDEA配置
在这里插入图片描述
(3)启动按钮
在这里插入图片描述
9.tomcat部署java应用性能查看步骤以及core和dump区别
(1)查看系统性能 top M/P,是否java进程对cpu或者内存消耗大
(2)core和dump区别**:java core是查看cpu消耗的**,可以查看到应用卡顿的时候 线程对cpu的消耗;java dump是查看内存消耗的,是个dump二进制文件

10.tomcat配置生成dump文件

vim catalina.sh 第一行 定义变量
JAVA_OPTS="$JAVA_OPTS -server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/java_dumps/tomcat.dump" 这里是生成的dump文件路径,目录得提前建好

11 内存分析工具下载地址:
https://mirrors.tuna.tsinghua.edu.cn/eclipse/mat/1.9.0/rcp/MemoryAnalyzer-1.9.0.20190605-win32.win32.x86_64.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值