TOMCAT4容器的责任链
public class SimpleWrapper implements Wrapper, Pipeline {
private String servletClass;
private SimplePipeline pipeline = new SimplePipeline(this);
protected Container parent = null;
public void invoke(Request request, Response response)
throws IOException, ServletException {
pipeline.invoke(request, response);
}
public Valve getBasic() {
return pipeline.getBasic();
}
public void setBasic(Valve valve) {
pipeline.setBasic(valve);
}
public Valve[] getValves() {
return pipeline.getValves();
}
public void removeValve(Valve valve) {
pipeline.removeValve(valve);
}
}
public class SimplePipeline implements Pipeline {
public SimplePipeline(Container container) {
setContainer(container);
}
protected Valve basic = null;
protected Container container = null;
protected Valve valves[] = new Valve[0];
public void addValve(Valve valve) {
if (valve instanceof Contained)
((Contained) valve).setContainer(this.container);
synchronized (valves) {
Valve results[] = new Valve[valves.length +1];
System.arraycopy(valves, 0, results, 0, valves.length);
results[valves.length] = valve;
valves = results;
}
}
public void invoke(Request request, Response response)
throws IOException, ServletException {
(new SimplePipelineValveContext()).invokeNext(request, response);
}
protected class SimplePipelineValveContext implements ValveContext {
protected int stage = 0;
public void invokeNext(Request request, Response response)
throws IOException, ServletException {
int subscript = stage;
stage = stage + 1;
if (subscript < valves.length) {
valves[subscript].invoke(request, response, this);
}
else if ((subscript == valves.length) && (basic != null)) {
basic.invoke(request, response, this);
}
else {
throw new ServletException("No valve");
}
}
}
}
分享到:
相关推荐
基于平均值余量的Wrapper扫描链平衡算法 本文详细介绍了扫描链的测试访问机制的设计,提出了一种新的Wrapper扫描链平衡算法,以缩短IP核测试时间。该算法首先计算Wrapper扫描链长度的平均值,然后结合特定的余量值...
然后,将`E:\wrapper\bin`下的`wrapper.exe`和`wrapper.dll`文件复制到`D:\Tomcat\bin\win32`目录,同时将`wrapper.jar`复制到`D:\Tomcat\bin`。 4. 创建三个关键文件: - `InstallService.bat`:用于安装Tomcat...
### 使用Java Service Wrapper设置Tomcat作为Linux服务并实现开机自动启动 #### 一、概述 在部署基于Java的应用服务器时,通常需要将Tomcat配置为系统服务,以便于管理和维护。传统的做法是通过编写shell脚本来...
Resin4+Wrapper Green是一个专为简化Resin4部署而设计的解决方案,它允许你在不依赖.NET组件的情况下启动和管理Resin服务器。Resin是一款高效、轻量级且功能强大的Java应用服务器,常用于托管Java web应用程序。...
4. **容器结构**:Tomcat有多个级别的容器,包括Engine(引擎)、Host(主机)、Context(上下文)、Wrapper(Servlet容器),它们分别对应不同的Web应用范围。 5. **线程模型**:Tomcat使用基于Executor的线程池来...
4. Web应用部署:在Tomcat中,Web应用通常以WAR文件形式部署,解压后放在webapps目录下。每个Web应用有自己的Context配置,定义了Servlet映射、欢迎页面、错误处理等信息。手写Tomcat时,我们需要实现解析WEB-INF/...
在使用Apache Tomcat服务器进行Web应用开发和部署的过程中,可能会遇到一种常见的错误:“Wrapper cannot find servlet class ...”。这个错误信息表明Tomcat服务器无法找到你指定的Servlet类或该Servlet类所依赖的...
Java Service Wrapper 是一种可以将 Java 应用程序发布为可安装的服务的解决方案,它提供了一种简单的方式来将 Java 应用程序打包成一个独立的服务。下面是 Java Service Wrapper 使用总结的详细说明: 概述 Java ...
以上的这些功能,通过一种名为责任链或者拦截器或者过滤器(语义上的区别而技术上没有什么区别,知道做了什么就行了)的设计模式可以实现,那么就来看看什么是责任链的设计模式。 以下内容参考北京尚学堂的马士兵...
【标题】"Tomcat源码学习:一个最简单的‘Tomcat’",这篇博客主要探讨的是如何通过学习Tomcat的源代码来理解这个流行的开源Java Servlet容器的工作原理。Tomcat是Apache软件基金会的一个项目,它是Java Web应用...
在`xml4wrapper_3.9.1.7z`这个压缩包中,包含了`xml4wrapper`库的源代码或编译好的二进制文件,以及可能的示例、文档和测试用例。开发者可以通过解压文件,根据提供的说明文档进行编译和集成,以利用`xml4wrapper`的...
4. **参与社区讨论**:加入Tomcat的技术论坛或者邮件列表,与其他开发者交流心得体验,解决遇到的问题。 5. **实践应用**:将所学知识应用于实际项目中,不断巩固和提升自己的技能水平。 #### 五、Tomcat核心组件...
从Tomcat 4到Tomcat 5,其架构经历了显著的变化,尤其是对Servlet API的升级和对新标准的支持。Tomcat 5引入了更为模块化的架构,使得扩展性和性能都得到了提升。然而,无论版本如何变化,Tomcat的核心理念——高效...
4. `lib`目录:可能包含Wrapper运行所需的库文件。 5. `bin`目录:可能包含启动和管理Wrapper的脚本。 总的来说,"wrapper-linux-x86-64-3.5.55 社区版"是Linux环境中的一款强大工具,通过它可以轻松地管理和监控...
QueryWrapper 常用用法
SpringBoot通过默认配置、内嵌Servlet容器(如Tomcat或Jetty)以及自动配置特性,使得创建和运行微服务变得极其便捷。它极大地减少了传统Spring项目中的XML配置,而是依赖于Java配置和类路径扫描。 接下来,我们...
4. **配置文件**:Tomcat的主要配置文件有server.xml、web.xml和context.xml等,这些文件位于conf目录下,可以通过修改它们来定制Tomcat的行为。 ### Tomcat的安全性 Tomcat的安全性主要体现在以下几个方面: 1. ...
Wrapper是一个名为`TNT4J-Wrapper`的开源工具,它可以将任何Java应用程序转换为一个独立的服务,适用于Windows、Linux、Unix等多种操作系统。Wrapper提供了一个配置文件,允许我们定制服务的行为,如启动参数、日志...
在深入分析Tomcat的架构之前,需要了解Tomcat是Apache Jakarta项目中的一个核心项目,是一个免费的开源Servlet容器。它主要用于作为独立服务器或集成到Web服务器中,如Apache和IIS等。作为Web服务器,Tomcat负责解析...
MyBatis-Plus的QueryWrapper是其强大的查询构造器,为开发者提供了便利的API来构建复杂的SQL查询。在Spring Boot项目中,MyBatis-Plus作为一个扩展MyBatis的轻量级框架,大大简化了数据库操作。下面我们将深入探讨...