06 2018 档案
摘要:背景: Tomcat通过启动连接器之前给连接器填充container容器实现了解耦(静态关系),本篇的连接器完全使用Tomcat的源代码org.apache.catalina中的通用接口。org.apache.catalina.connector包,而container相关代码自编写,并且作者利用j
阅读全文
摘要:背景:连接器模块由此已经完整,Tomcat中连接器已经有完善的线程、异常处理和Http处理(res/req解析),只是之前的servlet处理器还是很简单,现在作为学习Container的一个预热,写一个简单的container取代servlet,由主程序初始化并启动Tomcat连接器,创建cont
阅读全文
摘要:说明:本篇强调分析对象关系,而不是类关系,主要分析为何HttpProcessor还需要依赖上篇中的连接器?为何res/对象交由链接器创建且res/req本身也依赖连接器? org.apache.catalina.connector.http.HttpProcessor 1 package org.a
阅读全文
摘要:背景:本篇的内容主体是Connector连接器,暂不明确其在Tomcat中与其他容器的关系,但可以前述案例为标的物,把Connector理解为运行在多线程下,等待获取客户端socket并交由HttpProcessor进行处理的Object。那么关注点就是在Tomcat中完整的Connector及其所
阅读全文
摘要:代码分析: 类关系: BootStrap主程序负责服务器的启动,控制HttpConnector组件; HttpConnector类负责Http链接和线程管理,控制HttpProcessor组件; HttpProcessor类负责Http协议的解析和res/req的创建,同包下的其他类是为解析req解
阅读全文
摘要:说明:旨在说明Http响应头的诸属性,要述说的内容基于Http协议的完整定义,但是Http协议不做完全的阐释,也不精确说明要讲述的概念是Http协议中那些概念的组成部分及与之关 系。仅仅为实际需要,截取出响应头部分本身,只关于于此。 Refresh: 5; url= http://www.zcmhi
阅读全文
摘要:说明:摘自网上的资源,关于Http协议,已经读了大半,但是还是很抽象。这里列出协议中的Header属性列表,和实际具体案例进行说明。本篇只关注Http“消息”概念中的Header,不关注Line和Body. 请求头: 上述说明,太多形式化,其实是违反人类的思维直觉的,这是西方人搞的东西,所以下面拿出
阅读全文
摘要:代码结构: 该目录未能显示项目根下的webroot文件夹,此文件夹存放servlet程序员编译的servlet.class文件和静态资源。 BootStrap package sub.startup; import sub.connector.http.HttpConnector; public f
阅读全文
摘要:说明与前提:服务主程序并没有把浏览器传递进来的数据全部解析给request对象的诸属性,仅仅是解析了uri请求路径。不关注具体的解析算法!另外response也没有对应的生命周 期,供主程序控制,比如init方法等初始化response的所有属性。 代码结构: 截图工具不好用,该项目不包含划黑线的类
阅读全文
摘要:声明:资料来自Tomcat剖析一书,该程序是基于java socket的,socket和stream类作为概念背景,现在仅仅是使用其作为基础类,并不关注其本身,关注点在一个服务器的外部功能和体系结构! 代码目录 HttpServer package simpleserver; import java
阅读全文
摘要:java是软件发展的产物,其粒度远远超过了汇编、c等,从面向过程到面向对象,粒度增大,软件进入了构建了层次,当然仍然可以使用面向过程的语言那样抽象出编程模型即输入、处理、输出,概念上下文等,了解它的本质很重要。当我们有现成的算法甚至构件工具可以复用的时候,当前的核心关注点更应该是软件体系结构、组件等
阅读全文
摘要:即使是没系统学习过maven的开发者也都知道pom文件,因为我们在这里配置第三方依赖等。maven项目的结构层次暂略过,现假设已生成了maven结构目录,仓库也建立成功,在编写代码之前或之中我们把一些可复用的三方依赖加进来。使用pom.xml文件,该文件是maven对project的定义的标签化,让
阅读全文
摘要:输出目录在学习mvn命令之后在补充,由于该博客模板不是很灵活先在为本篇在该分类中占个位置!
阅读全文
摘要:项目完毕,使用maven构建,实例看一下maven项目的整体结构。 在编辑时的一个目录结构,使用maven的层次化插件会自动生成这样的目录,所谓约定大于配置: 在顶级目录上是工程的描述文件pom.xml(如果使用Ant则还包括其他属性文件,maven.xml或build.xml),另外还包括提供给最
阅读全文
摘要:step: 1径直去官网download,2解压后3配置环境变量.... 4mvn -version检测。 但是maven暴露给开发者settings.xml配置文件,根据文件内的英文注释,设置远程仓库(私服,中央等),由于是自己使用,网速问题好像不是问题,便不假更改使用默认;设置本地仓库,C盘空间
阅读全文
摘要:原因1:eclipse快捷键设置有问题, 解决方式:检查windows–>perferences->Keys中的Save项,是否绑定了Ctrl+S,以及相关设置是否正确 Binding:Ctrl+S When:In Window Category:File User:U 以上的是其他网友的解答,亲测
阅读全文

浙公网安备 33010602011771号