Tomcat处理http假设来自客户的请求为:http://localhost:8080/wsota/wsota_index.jsp1)请求被发送到本机端口8080,被在那里侦听的CoyoteHTTP/1.1Connector获得2)Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应3)Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host4
系统 2019-08-12 01:33:59 2583
这节我们讨论linux是如何利用x86结构中的段机制的,更确切的说是如何绕过linux的段机制的。我们决定从linux的可移植性开始讨论。我们说linux是一个广泛移植的操作移动,它支持x86,Alpha,arm等多种体系结构。但是很多的结构其实都是不支持段机制的,比如arm,Alpha等,但是他们都支持分页机制。linux为了能移植到x86上,做了不少工作。首先我们说,x86是肯定有段机制的,那么我们要在x86上运行程序,那不可避免要用到段机制。于是我们
系统 2019-08-12 01:33:51 2583
dpkg–L***root@ubuntu:~#dpkg-Lvtun/./usr/usr/sbin/usr/sbin/vtund/usr/share/usr/share/lintian/usr/share/lintian/overrides/usr/share/lintian/overrides/vtun/usr/share/man/usr/share/man/man8/usr/share/man/man8/vtund.8.gz/usr/share/man/
系统 2019-08-12 01:33:50 2583
今天在修改项目一个JSP文件时,突然想到Tomat是怎么实现动态实时加载JSP编译后的class类的?查了半天资料,看了很多文章,终于明白是怎么回事了:ClassLoader,当tomcat发现jsp改变后,将用新的ClassLoader去加载新的类具体原理我将单独总结一下,这里简单实现了动态加载类1.定义服务类publicclassServlet{publicvoidservice(){System.out.println("运行服务方法");}}2.定
系统 2019-08-12 01:33:43 2583
首先,我们要知道虚拟目录的好处。虚拟目录不同于原始的Tomcat运行方式,原始的方式是把项目拷贝到webapps下,然后启动tomcat,就可以访问webapps下的项目。我们使用eclipse配置tomcat,实际上的原理也是这种方式。但这种方式的弊端在于,webapps下的项目不是最新的动态,一旦我们修改了eclipse工作目录下的项目,并不能立刻的反应到tomcat/webapps下。所以我们不得不编译项目后,清除webapps下的缓存,甚至要移除项
系统 2019-08-12 01:33:35 2583
NGUI自带了类似于输入框,Input;包含:1,Background,Sprite,背景;2,Lable,字体;UILable.cs;boolPassword,true为密码输入类型,自动显示“*”。字体库必须得包含“*”;原理如上:UIInput.cs下boolisPassword,设置为true。即可实现功能需求;效果图:NGUI密码输入框
系统 2019-08-12 01:33:33 2583
Tomcat数据库连接池估计现在使用的不多了,现在都是DBCP,C3P0之类的,在很多软件项目中,dbcp,c3p0确实很好,配置一下随便用,使用Tomcat连接池可能不是很方便;但后来发现,在分布式服务器或者分库中使用Tomcat数据库连接池确实不错,可以一次启动打开不同库上的连接池;以下是配置文件,conf下的server.xml文件(原来内容全部清除)
系统 2019-08-12 01:33:33 2583
其初始空间(即-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=true”JAVA_OPTS=”-se
系统 2019-08-12 01:33:30 2583
下面接着分析Context容器,该接口最重要的方法是addWrapper()方法与creatWrapper()方法,添加具体的子容器,这里是Wrapper容器实例这里要分析的是一个简单的Context容器,它针对特定的客户端请求,通过映射器找到要处理该特定请求的子容器实例(Wrapper)具体流程是,Context容器首先调用额外的阀,最后调用基础阀(这里是SimpleContextValve),在基础阀里面通过映射器找到要处理该请求的子容器Wrapper
系统 2019-08-12 01:33:21 2583
【源码测试】#include#include#includeintmain(void){MYSQL_RES*result;MYSQL_ROWrow;MYSQL*connection,mysql;intstate;mysql_init(&mysql);connection=mysql_real_connect(&mysql,"localhost","root","951241","mysql",0,
系统 2019-08-12 01:33:16 2583