简介:这个分为两个部分的系列文章将研究ApacheTomcat的系统架构以及其运用的很多经典设计模式。本文是第1部分,将主要从Tomcat如何分发请求、如何处理多用户同时请求,还有它的多级容器是如何协调工作的角度来分析Tomcat的工作原理,这也是一个Web服务器首要解决的关键问题。本文以Tomcat5为基础,也兼顾最新的Tomcat6和Tomcat4。Tomcat的基本设计思路和架构是具有一定连续性的。Tomcat总体结构Tomcat的结构很复杂,但是T
系统 2019-08-12 01:33:55 2267
javacalss文件打补丁注意:在tomcat下打补丁的话,一定要确保tomcat服务停止了,然后再把同名的class文件进行覆盖。这两天,发一个补丁文件给现场的同事。同事说打完补丁后,有的数据采集正常,有点数据采集不到?我就奇怪了,怎么会有的不正常,有的正常呢?我就问现场的同事,他是怎么打补丁的,会不会是补丁没有打好?他说打好了。于是开始我漫长的远程调试过程,看看前台,在看看后台打印的日志,发现日志中没有打出我预期的东西,初步判断是补丁文件没有打成功。
系统 2019-08-12 01:33:35 2267
conf/web.xml中,listings改为true,重启http://liusu.iteye.com/blog/794613defaultorg.apache.catalina.servlets.DefaultServletdebug
系统 2019-08-12 01:33:23 2267
这是一个新的需求,限制访问的IP,都是一些单位为了保护自己的隐私,这个应用只能那些IP访问,别的都不行。在Tomcat里边的设置很简单,在你的[color=Red]Context[/color]标签之间加入1很明显你可以看到,allow的值就是允许访问的
系统 2019-08-12 01:33:09 2267
设置Tomcat启动的初始内存其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn-Xms-Xmx等选项可进行设置三、实例,以下给出1G内存环境下javajvm的参数设置参考:JAVA_OPTS="-server-Xms800m-Xmx800m-XX:PermSize=64M-XX:MaxNewSize=256m-XX:MaxPermSize=128m-Djava.awt.headless=tr
系统 2019-08-12 01:33:09 2267
问题定位对于Tomcat的处理耗时较长的问题主要有当时的并发量、session数、内存及内存的回收等几个方面造成的。出现问题之后就要进行分析了。1.关于Tomcat的session数目这个可以直接从Tomcat的web管理界面去查看即可或者借助于第三方工具LambdaProbe来查看,它相对于Tomcat自带的管理稍微多了点功能,但也不多2.监视Tomcat的内存使用情况使用JDK自带的jconsole可以比较明了的看到内存的使用情况,线程的状态,当前加载
系统 2019-08-12 01:33:05 2267
以下所写的都是基于Windows操作系统,tomcat7.0版本。一直在使用tomcat但是老实说对于tomcat本身并没有一个系统的掌握,今天饶有兴致的随便看了看,做了一点笔记,写一点心得,我本人比较喜欢从表面出发,从使用出发,然后再深入到它的本质问题上。在windows操作系统中,我们运行tomcat只需要执行startup.bat脚本就好,简单的很,但是startup.bat这个脚本做些什么,我是真的不知道的,所以今天我就说说startup.bat这
系统 2019-08-12 01:32:52 2267
来自:http://kakajw.iteye.com/blog/1063843,感谢作者解决问题。Tomcat5.5使EL表达式不被解析。现象代码${userSession.user_name}是JSP中的一个代码片段;如果部署到tomcat5.5中,不会显示出session中的变量user用户名,而只会把${userSession.user_name}打印出来,猜测很可能是tomcat5.5的bug,不解析(或屏蔽了)EL表达式。原因如果web.xml中
系统 2019-08-12 01:32:51 2267
1.编码问题1.1.乱码客户端发请GET请求,如果这个请求地址上有中文,而且也没有进行encode的时候,后端就可能接收到乱码。--解决办法在tomcat,conf/server.xml这个文件在你的Connector加上URIEncoding="UTF-8"就行了。To
系统 2019-08-12 01:32:50 2267
Tomcat的乱码首先,说说JSP/Servlet中的几个编码的作用。在JSP/Servlet中主要有以下几个地方可以设置编码,pageEncoding="UTF-8"、contentType="text/html;charset=UTF-8"、request.setCharacterEncoding("UTF-8")和response.setCharacterEncoding("UTF-8"),其中前两个只能用于JSP中,而后两个可以用于JSP和Serv
系统 2019-08-12 01:32:40 2267
使用Maven自动部署Tomcat6和Tomcat7下Web应用开启Tomcat远程管理权限在tomcat的config目录下的tomcat-users.xml文件,
系统 2019-08-12 01:32:35 2267
去年下半年公司就决定投入人力物力"跟风"做大数据方向的研究并应用到后续项目中,于是乎,我们也得熟悉下Java才行了。先弄个JavaEE的开发环境再说吧。装JDK、JRE,其实JDK下面已经有JRE了,如果在服务器上的话,只需装JRE;然后配置环境变量:新建:JAVA_HOME:D:\Java\jdk1.7.0_51新建:CLASS_PATH:.;%JAVA_HOME%\lib编辑:PATH:在最前面加上%JAVA_HOME%\bin;接着装Tomcat,s
系统 2019-08-12 01:33:52 2266
1.最近碰到这样一个问题:项目使用到了报表,上线后,客户投诉报表经常每隔一段时间,就不能用了。后来我们发现只要将Tomcat重新启动下就没有问题了,应该是那个报表工具的性能不是很稳定造成的,大概每隔一个星期需要重启一次。当然不能每次出问题就人工去重启,这样对客户、对我们来说都是不能长期接受的,所以这个问题得解决。首先,将报表输出单独作为一个小的工程拿出来,这样即使报表出问题了,可以登陆到Tomcat的后台管理程序中,去只对这个报表工程重新reload一下,
系统 2019-08-12 01:33:32 2266
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对JavaJVM有关内存方面的知识进行详细介绍。一、JavaJVM内存介绍JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-he
系统 2019-08-12 01:32:51 2266
安装JDK[root@stu21~]#lftp172.16.0.1lftp172.16.0.1:~>cdpubcdok,cwd=/publftp172.16.0.1:/pub>cdSources/6.x86_64/jdk/lftp172.16.0.1:/pub/Sources/6.x86_64/jdk>getjdk-7u67-linux-x64.rpm126857158bytestransferredin22seconds(5.56M/s)lftp172.
系统 2019-08-12 01:32:36 2266