`
文章列表
tomcat 启动应用工程的时候,它会加载应用工程中的jar包,而一般情况这些jar包默认放在WEB-INF/lib路径下,那么我们可以不可以指定额外的路径去加载应用工程中所需的jar包呢,这点我明确的告诉你是可以的,而且tomcat给我们预留了扩展 ,具体怎么做请看下面 我们需要在Context.xml中配置 <Context docBase="\webapps\mydocbase"><Loader className="org.apache.catalina.loader.VirtualWebappLoader" virtual ...
我们知道设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。      那么此篇中讲的责任链是个什么样的设计模式呢?下面请看责任链的概念阐述 什么是链 1、链是一系列节点的集合。 2.、链的各节点可灵活拆分再重组。 职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 角色 抽象处理者角色(Handler):定义出一个处理请求的接口。如果需要,接口可以定义 出一个方法以设定和返回对下家的引用。这个角色通常由一个Java抽象类或者Java接口实现。 具体处 ...
HTTP消息是由普通ASCII文本组成。消息包括消息头和数据体部分。消息头以行为单位,每行以CRLF(回车和换行)结束,消息头结束后,额外增加一个CRLF,之后内容就是数据体部分了。 格式如图:                                                           http协议格式 那么如果给了一段文本 http文本  我们是否有能力用java解析呢: GET /doaction?p=123&k=3343 HTTP/1.1Host: localhost:12345Connection: keep-aliveAccept: te ...
   我们知道tomcat启动 会带动我们自己的应用工程运行,有时候我们的应用工程却是以war形式存在的,那么tomcat 是怎么解析war工程,下面就是我对tomcat源码解析war工程的一些见解   1,我们知道tomcat有自己的一套运行周期,他的运行周期如图,   而 tomcat运行中,则通过LifecycleSupport类添加各种监听器 其中这些监听器以实现LifecycleListener接口的子类 下图是LifecyceListener的一些子类   我在这里重点讲述HostConfig 和ContextConfig   HostConfig对war工程前 ...
一, tomcat 处理请求的组件 Engine Host Context 和 Wrapper 这四个 分别对应的实现类StnadardEngine,StandardHost,StandardContext和StandardWrapper Engine:代表tomcat的引擎,可以有多个引擎,他与Connector连接器并列 起到请求与虚拟机主机下对应应用程序的定位。 Host:代表一个虚拟主机,各Host的name不能相同,appBase代表各虚拟主机的应用发布位置; Context:代表一个应用,Context可以根据应用的/WEB-INF/web.xml文件中定义的servlet来处理请 ...
一,我们知道tomcat作为web服务器 已经在行业中应用多年了,深入各方面。但是作为一个java方向的web开发者,我们是否对其源码有过深入的研究呢?当然了tomcat本身涉及的知识点很多,我在这里只是讲他的一方面应用。 众所周知,客户端发送了http请求以后,tomcat服务器会接受到http请求封装成request,但是tomcat是怎么进行解析的呢?下面就是我要讲述的内容。 二,再说解析http请求报文之前我们先说说http请求在tomcat中所走的流程 当tomcat启动以后,Connector的组件会找到相应protocolhandler(这个在我们server.xml文件中 ...
tomcat 作为应用型服务器,尤其是web服务器。我们一般部署应用程序都是将自己的项目工程打包放到服务器指定的目录下, 然后启动服务器带动应用应用程序的启动。我们是否可以像spring boot那样直接run 我们的自己工程启动tomcat呢,下面来说说本人是怎么嵌入到自己应用程序中的呢? [b] 第一步,将tomcat框架下lib中的jar导入到自己应用程序中 第二步,编写自己web程序 代码如下 这是启动前的tomcat的初始化的一些类参数所用的父类 package org.apache.catalina.startup; import static org.junit ...
代码如下 //输出m和n的最小公倍数 和最大公约数 public static void printTest(int m,int n){ for(int k=Math.max(m, n);k<=m*n;k++) if(k%m==0&&k%n==0){System.out.println("最小公倍数:"+k);break;} for(int z=Math.min(m, n);z>=1;z--) if(m%z==0&&n%z==0){System.out.println("最大 ...
纯java代码使用ssh方式登录linux服务。 实际应用中,可以使用这种方式上传部署web工程war包 并且部署启动tomcat 一个自动化完成所有工作 起到节省时间作用。 1.去官网下载最新的jar包 jsch-0.1.51.jar 下面是我的java code 例子 /** * java ssh登录linux以后的一些操作方式 * @author liuxy * */ public class SchUnitJsch extends SchUnit{ private final static Log logger =LogFactory.ge ...
Global site tag (gtag.js) - Google Analytics