
源代码学习笔记
文章平均质量分 66
blogzhoubo
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Servlet源代码学习笔记-1
一。关键类介绍:1。servlet通用类: public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable //servlet容器会调用该方法,来完成servlet的初始化 //config参数是,servlet容器传进来的servlet相关的配置参...原创 2010-10-31 19:51:16 · 131 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -10 配置多个虚拟host
一般情况下,安装完的Tomcat环境都有一个name为localhost的Host节点: 主机名:localhostweb应用主目录:tomcat主目录下的webapps日志文件存放目录:tomcat主目录下的logs <Host name="localhost" appBase="webapps" unpackWARs="true" au...原创 2012-12-25 16:22:09 · 160 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -9 tomcat重启后session仍然保留
使用Tomcat 7缺省的配置,tomcat关闭后重新启动,发现原来的session没有被删掉,用原来的request获取session仍然可以取到。但是并没有配置session持久化。原因如下:tomcat的conf目录下有一个context.xml,这是所有web应用共享的配置信息。里面有这么一段话:缺省情况下,是被注释掉的,此时,tomcat在每次重新启动...原创 2012-12-03 13:07:37 · 356 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -8 Filter过滤器解读
1.过滤器的主要功能是允许我们在request转给某个资源之前(比如:html文件,servlet,JSP文件,图片文件,excel文件等等)做一些事情,然后在response返回给客户端之前做一些事情。功能上有些类似于防火墙,对入口和出口进行严格控制。[code="java"]public class MyFilter implements Filter {//tomcat启...原创 2012-11-29 16:15:26 · 218 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -7 请求转发forward和重定向redirect
在servlet里面接收到一个请求以后,处理完毕,根据需要可以有几种选择: 1.直接提交response,比如response.getWriter().println(); 这个比较简单,而且不怎么使用,毕竟动态生成html不是很好的选择 2.将请求转给其它的资源(比如:forward到jsp,html,servlet) 这个有两种方法可以选择,但是无论哪种方法,都...原创 2012-11-16 10:21:42 · 459 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -6 encodeURL深度解析补充
之前提到调用response.encodeURL(String url)方法的时候,如果客户端支持cookie,那么不做任何处理,直接返回传进去的url,因为jsessionid可以写入cookie中,所以不需要url重写。其实所说的客户端支持cookie并不严谨,因为在客户端支持cookie的情况下,调用response.encodeURL(String url)方法,也会遇到对传进去的url进...原创 2012-11-15 13:54:26 · 209 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -6 encodeURL深度解析
在servlet中,当客户端禁用了cookie的情况下,为了保存jsessionid,我们可以采用URL重写的方式把jsessionid追加在url末尾,这样当客户点击链接的时候,就会随着url把jsessionid一起传给服务端,从而实现session机制。那么如何把jsessionid保存在url中呢?方法就是: 1>创建一个session2>调用response.en...原创 2012-11-14 15:03:38 · 194 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -5 web app自动reload
一个运行中的web app,如果修改了其中的一部分代码,然后更新了class文件或者其它文件,那么在不重新启动tomcat的情况下,如何让tomcat自动载入最新的代码呢?配置方式有几种: 假设web应用名为test,engine名为Catalina,host名为localhost1.可以在test/META-INF目录下面放置一个context.xml文件,内容如下: <...原创 2012-11-06 17:42:38 · 233 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -4 encoding的处理机制
一.概述Tomcat对http请求的字符编码支持得有些混乱,使用起来动不动就发生乱码的情况。通过窥探tomcat的源码,对http request的字符编码这块的处理机制作一个总结。 tomcat内部对于http request,有两种字符编码的配置:1. 对应get方式的http请求的字符编码2. 对应post方式的http请求的字符编码 二.get方式的字符编码...原创 2012-11-02 15:15:14 · 166 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -3 Http11Protocol和Http11NioProtocol
Tomcat既支持阻塞式IO,也支持非阻塞式IO。如果要使用NIO,需要修改server.xml的配置。web服务器一般有两种处理http请求的机制,阻塞和非阻塞,阻塞式因为每一个连接都产生一个线程,当线程数达到一定数量的时候,CPU用于线程切换的时间会变多,整体的性能会下降,所以线程池的数量要控制在一定的数量内,这是就需要引入非阻塞的机制,就是把连接先缓冲在一个队列中,然...原创 2012-10-30 23:12:19 · 1040 阅读 · 0 评论 -
Tomcat 7源码学习笔记 - 2 (socket接入后的处理)
[b]前一篇文章写到SocketProcessor的run方法,这次继续说明后续的处理流程。[/b][b]1.在之前的Http11Protocol构造方法中,创建JIoEndpoint对象以后,接着指定了handler,就是Http11ConnectionHandler对象。[/b][code="java"]public Http11Protocol() { en...原创 2012-10-29 07:30:48 · 142 阅读 · 0 评论 -
Tomcat 7源码学习笔记 - 1 (socket多线程)
tomcat说白了就是一个socket服务线程,监听8080端口,一旦有连接过来就生成一个socket来对应,然后把socket扔给后端的Executor线程池,由线程池中的一个线程负责进行后续的处理,而ServerSocket线程继续监听等待下一个连接的到来。 [b]0.由Http11Protocol类的构造函数Http11Protocol()构造出JIoEndpoint对象 [/b]...原创 2012-10-28 22:58:06 · 227 阅读 · 0 评论 -
插件的简单开发原理
以java语言举例来说吧。要想实现插件,基本要符合下面几点要求:1.宿主系统需要提供对外公开的接口(interface),插件系统创建自己的class,并且要实现公开的interface[code="java"]public interface PluginClassInterface{ public void play(); public void stop();...原创 2012-10-23 14:31:02 · 287 阅读 · 0 评论 -
Struts1源代码学习笔记-Action类
Action类是业务Action类的父类,一般在子类中需要override里面的execute方法,然后在execute方法里面写业务级的代码,最后返回迁移目标(页面或者其他的Action)。 saveErrors(HttpServletRequest request, ActionMessages errors)方法: 将error保存到request,在jsp中使用<h...原创 2011-10-11 21:18:13 · 174 阅读 · 0 评论 -
Tomcat 7源码学习笔记 -11 日志输出
一.关于tomcat的日志设计,采用了工厂模式,主要的类有下面几个: org.apache.juli.logging包: 1》Log接口对外提供的接口,用户使用LogFactory.getLog方法获取的日志对象的抽象。 2》LogFactory类通过静态的getLog方法,向用户提供获取日志对象的接口 public static Log getLog(Cl...原创 2012-12-25 20:33:26 · 232 阅读 · 0 评论