tomcat-theory
(一)
java类:applet,servlet,jsp
JSP:.jsp-->.java-->(JVM).class
JDK:javac,.java-->.class
web:Servlet Container:Servlet容器,即程序
Servlet工作流程:前端有个web服务器,负责接收用户的请求,一旦发现用户的请求是CGI的内容,则就执行一个servlet程序,为了让servlet长长久久执行不至于每次运行就临时启动,太慢了,我们就让它运行一个进程;当servlet程序在这容器运行,负责通过CGI协议与web服务器交互,把web用户请求的内容接收后,在本地的jvm上完成应用程序的执行,所以servlet负责接受CGI程序过来的请求,负责监控本地的.java程序是否发生了修改,如果修改则转换成.class程序,而.class就在jvm中执行,jdk就包含在jvm中,而且编译器需要jdk。
JSP工作流程:JSP需要一个额外的组件,这是个独立的servlet,为了让jsp运行起来,我们首先讲.jsp文件转化成.java程序,由此我们需要一个组件(jasper)将.jsp->.java,.java程序再次交给servlet执行,
web Container:web容器,也称应用程序服务器:jsp和servlet
线程私有内存区:程序计数器和java虚拟机栈。
程序计数器就是保存java代码执行到那个代码的状态,是每个线程独有的。
JAVA虚拟机栈:
线程共享内存区:方法区(有一子区,常量区),堆(java自动内存回收,GC(Garbage Collector))
垃圾回收算法:1.标记-清除2.复制,内存区只有1/2区域,回收垃圾时可以避免碎片但是浪费空间。3.标记-整理算法,是对复制算法的改进。
垃圾回收器:Serial;ParNew,比前者多了个多线程;Parallel Scavenge;Serial Old老单线程;Parallel Old老多线程。
CMS:Concurrent Mark Sweep 特点:并发收集,低停顿 缺点:无法收集浮动(指运行的线程垃圾)垃圾,由于基于标记-清除算法 会产生碎
G1:尚未商用,Garbage First 比CMS优点:不会产生碎片,能非常精确控制停留时间
商用开源的JDK:SUN:JRE,JDK Open:OpenJDK
Sun JDK监控和故障处理工具:
jps,JVM Process Status Tool:显示指定系统内所有的HotSpot虚拟机进程的列表信息
jstat,JVM Statistics Monitoring Tool:收集并显示HotSpot虚拟机各方面的运行数据
jinfo:显示正在运行的某HotSpot虚拟机配置信息
jmap:生成某HotSpot虚拟机的内存转储快照;
(二)
tomcat-theory的更多相关文章
- eclipse设置Tomcat超级详细
刚接触Ajax,创建了jsp文件发现错误 必备软件:tomcat(从apache的官方网站上下载一个,我的是apache-tomcat-8.0.28) 需要下载tomcatPluginV321.zip ...
- Tomcat一个BUG造成CLOSE_WAIT
之前应该提过,我们线上架构整体重新架设了,应用层面使用的是Spring Boot,前段日子因为一些第三方的原因,略有些匆忙的提前开始线上的内测了.然后运维发现了个问题,服务器的HTTPS端口有大量的C ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- Tomcat shutdown执行后无法退出进程问题排查及解决
问题定位及排查 上周无意中调试程序在Linux上ps -ef|grep tomcat发现有许多tomcat的进程,当时因为没有影响系统运行就没当回事.而且我内心总觉得这可能是tomcat像nginx一 ...
- 记一次tomcat线程创建异常调优:unable to create new native thread
测试在进行一次性能测试的时候发现并发300个请求时出现了下面的异常: HTTP Status 500 - Handler processing failed; nested exception is ...
- Linux CentOS 配置Tomcat环境
一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...
- 在Linux虚拟机下配置tomcat
1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...
- mac下安装及配置tomcat
mac下的软件不像windows下的程序那样写注册表,对于tomcat的安装来说,在mac下是名符其实的绿色软件,具体操作如下: 1.到 apache官方主页 下载完整 tar.gz文件包.(没有专门 ...
随机推荐
- 设置ImageView显示的图片铺满全屏
转自:http://m.blog.csdn.net/blog/wjwj1203/32334459 为适应不同屏幕的手机,ImageView显示的图片可能不铺满屏幕,如果定高的话,两边可能会出现空白 ...
- 大数据(3):基于sogou.500w.utf8数据Hbase和Spark实践
1. HBase安装部署操作 a) 解压HBase安装包tar –zxvf hbase-0.98.0-hadoop2-bin.tar.gzb) 修改环境变量 hbase-env.shexport JA ...
- windows7+python2.7+setuptools 、pip+Django+PIL 网页制作环境配置
1.安装Python2.7 官网下载安装包python-2.7.amd64,对应64位.安装时没什么特别操作,安装后将python的安装路径添加到系统变量path中,步骤为程序->计算机-> ...
- Jmeter + Ant 测试环境搭建 及解决问题: the <jmeter> type doesn't support nested text data
1.首先确保测试机器中已经按照jdk1.6以上版本,如果没有,那就上官网下载吧. 2.下载Ant,解压至指定目录,并配置好环境变量:http://ant.apache.org/ 在命令行下执行ant ...
- python 全栈开发,Day4(正式)
一.列表 列表是python中的基础数据类型之一,它是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li = ['alex',123,Ture,(1,2,3,'wusir') ...
- 剑指Offer-孩子们的游戏(圆圈中最后剩下的数)
package Other; import java.util.LinkedList; /** * 孩子们的游戏(圆圈中最后剩下的数) * 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友, ...
- business expressions(一)
一. 1.24/7 24/7 :twenty four hours a day, seven days a week I work 24/7.——meaing i work all the time. ...
- Codeforces Round #471 (Div. 2) C. Sad powers
首先可以前缀和 ans = solve(R) - solve(L-1) 对于solve(x) 1-x当中符合条件的数 分两种情况 3,5,7,9次方的数,注意这地方不能含有平方次 平方数 #inclu ...
- CentOS7安装Postgresql
执行命令 Yum install postgresql-server Yum install postgresql-contrib 安装完成后,检查postgresql的服务状态 Systemctl ...
- 深度学习之TensorFlow构建神经网络层
深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...