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文件包.(没有专门 ...
随机推荐
- OpenStack中的rabbitmq的配置方法
OpenStack中的rabbitmq的配置方法 author:headsen chen 2017-10-11 17:24:58 个人原创,允许转载,转载请注明作者,出处,否则依法追究法律责任 ...
- 20165226 预备作业3 Linux安装及学习
20165226 预备作业3 Linux安装及学习 Linux安装 一.下载安装VirtualBox 1.首先在官网下载,点开基于VirtualBox虚拟机安装Ubuntu图文教程 找到版本进行下载安 ...
- PHP的日志记录-错误与异常记录
PHP的日志记录-错误与异常记录 提到 Nginx + PHP 服务的错误日志,我们通常能想到的有 Nginx 的 access 日志.error 日志以及 PHP 的 error 日志.虽然看起来是 ...
- Java 面试宝典-2017
http://www.cnblogs.com/nelson-hu/p/7190163.html Java面试宝典-2017 Java面试宝典2017版 一. Java基础部分........... ...
- 给我一台全新的服务器,使用nginx+gunicorn+supervisor部署django
0.准备工作 在一台全新的服务器中新建用户以及用户的工作目录,之后的操作都以这个用户的身份进行,而不是直接用root. 举个栗子: 在服务器下新建用户rinka并赋予sudo权限 1) root登陆, ...
- Redis进阶实践之十九 Redis如何使用lua脚本
一.引言 redis学了一段时间了,基本的东西都没问题了.从今天开始讲写一些redis和lua脚本的相关的东西,lua这个脚本是一个好东西,可以运行在任何平台上,也可以嵌入 ...
- Mysql的执行计划各个参数详细说明
执行计划各个参数的说明 1.id 主要是用来标识sql的执行顺序,如果没有子查询,一般来说id只有一个,执行顺序也是从上到下 2.select_type 每个select子句的类型 a: simpl ...
- 玩转接口测试工具fiddler 教程系列1
我们在做web测试的时候,很多时候需要查看接口发送的数据返回的数据是否正常,这样可以排除是客户端的问题还是服务器的问题,举个例子来说,如果我们发现页面上面数据少了, 通过fiddler查看数据返回就少 ...
- Dom属性方法
一.javascript的三大核心 1.ECMAScript js的语法标准 2.DOM Document object Model 文档对象模型,提供的方法可以让js操作html标签 3.BOM B ...
- Java基础学习笔记二十七 DBUtils和连接池
DBUtils 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils.DBUtils就是JDBC的简化开发 ...