- 博客(18)
- 收藏
- 关注
转载 Tomcat原理学习---主机(host)和引擎(engine)
如果需要在一个Tomcat部署中部署多个上下文,需要使用一个主机。理论上,当只有一个上下文容器的时候不需要主机,正如org.apache.catalina.Context接口中描述的那样。 上下文容器的父容器是主机,但是可能有一些其它实现,没有必要的时候也可以忽略。 引擎表示整个Catalina 的Servlet引擎。如果使用的话,它位于容器等级的最高层。可以添加到引
2014-06-12 22:42:08
625
转载 Tomcat原理学习---StandardContext
在前面的章节中已经看到,一个上下文容器(Context)代表一个web应用,每一个上下文包括多个包装器(Wrapper),每个包装器代表一个Servlet。但是,上下文还需要其它的一些组件如加载器和管理器。本章要介绍 Catalina中Context接口的标准实现,org.apache.catalina.core.StandardContext类.我们首先介绍StandardConte
2014-06-12 22:41:23
502
转载 Tomcat原理学习---StandardWrapper
在第五章中已经说过,一共有四种容器:engine(引擎),host(主机),context(上下文)和wrapper(包装器)。在前面的章节里也介绍了如何建立自己的context和wrapper。一个上下文一般包括一个或者多个包装器,每一个包装器表示一个servlet。本章将会看到Catalina 中Wrapper接口的标准实现。首先介绍了一个HTTP请求会唤醒的一系列方法,接下来介绍了javax
2014-06-12 22:40:32
1562
转载 Tomcat原理学习---安全
有些web应用程序的内容是有限制的,只允许有权限的用户在提供正确的用户名和密码的情况下才允许访问。Servlet通过配置部署文件web.xml来对安全性提供技术支持。本章的主要内容是容器对于安全性限制的支持。域(Realm):域是用于进行用户验证的一个组件,它可以告诉你一个用户名密码对是否是合法的。一个域跟一个上下文容器相联系,一个容器可以只有一个域。可以使用容器的setRealm
2014-06-12 22:39:44
741
转载 Tomcat原理学习---session管理
Catalina通过一个叫管理器的组件来完成session管理工作,该组件由org.apache.catalina.Manager 接口表示。一个管理器通常跟一个上下文容器相关联,它负责创建、更行以及销毁session对象并能给任何请求组件返回一个合法的session。 默认情况下管理器将session对象存储在内存中,但是Tomcat也允许将session对象存储在文件或者数据库中(通过JD
2014-06-12 22:38:40
493
转载 Tomcat原理学习---加载器
一个servlet容器需要一个定制的容器,而不是简单的使用系统的加载器。如果像前面章节中那样使用系统的加载器来加载servlet和其他需要的类,这样servlet就可以进入Java虚拟机CLASSPATH环境下面的任何类和类库,这会带来安全隐患。Servlet只允许访问WEB-INF/目录及其子目录下面的类以及部署在WEB-INF/lib目录下的类库。所以一个servlet容器需要一个自己的加
2014-06-12 22:37:31
507
转载 Tomcat原理学习---日志系统
日志系统是一个记录信息的组件。在Catalina中,日志系统是一个相对简单的跟容器相关联的组件。本章有三节组成:第一节介绍了org.apache.catalina.Logger接口,该接口是所有的日志系统都要实现的。第二节介绍了Tomcat中的日志系统第三节详细讲解了本章的例子,该例子基于Tomcat的日志系统。 Logger接口:日志接口提供了日志系统要实现的方法
2014-06-12 22:36:52
739
转载 Tomcat原理学习---生命周期
Catalina由多个组件组成,当Catalina启动的时候,这些组件也会启动。当Catalina停止的时候,这些组件也必须有机会被清除。例如,当一个容器停止工作的时候,它必须唤醒所有加载的servlet 的destroy方法,而session管理器要保存session到二级存储器中。保持组件启动和停止一致的的机制通过实现org.apache.catalina.Lifecycle接口来实现。
2014-06-12 22:36:03
327
转载 Tomcat原理学习---容器Container
容器是一个处理用户servlet请求并返回对象给web用户的模块。有四种容器:Engine(引擎), Host(主机), Context(上下文), 和 Wrapper(包装器)。Container接口被设计成Tomcat管理员可以通过server.xml文件配置来决定其工作方式的模式。它通过一个pipeline(流水线)和一系列的阀门来实现。org.apache.catalina中四
2014-06-12 22:35:18
413
转载 Tomcat原理学习---连接器Connector(二)
一个Tomcat连接器必须符合以下条件: 1. 必须实现接口org.apache.catalina.Connector。 2. 必须创建请求对象,该请求对象的类必须实现接口org.apache.catalina.Request。 3. 必须创建响应对象,该响应对象的类必须实现接口org.apache.catalina.Response。 Tomcat4的默认连接器类似于第3
2014-06-12 22:34:45
411
转载 Tomcat原理学习---连接器Connector(一)
包org.apache.catalina.connector里边的属性文件包含了该包所有的类抛出的所有错误信息。org.apache.catalina.util.StringManage类的实例处理每个属性文件本章三大模块:connector、startup、corestartup模块:BootStrap类connector模块的类分5组:-连接器(HttpConn
2014-06-12 22:32:23
828
转载 Tomcat原理学习---Servlet接口
Servlet编程是通过javax.servlet和javax.servlet.http这两个包的类和接口来实现的,其中一个重要的就是javax.servlet.Servlet接口。所有的servlet必须实现或者继承该接口的类。httpServer1:多了两个类:StaticResourceProcessor、ServletProcessor1(代替了简单的response.se
2014-06-12 22:31:01
659
转载 Tomcat原理学习---Socket类
java.net.Socket类:套接字Socket类是网络连接的一个端点,可以让一个应用从网络中读取和写入数据. 其中一个构造方法:接收主机名称和端口号:public(java.lang.String host,int port),如:new Socket("yahoo.com",8080)可以通过Socket类的getOutputStream方法来获取java.io.Outpu
2014-06-12 22:29:37
1112
翻译 Http协议学习总结
Http:版本1.0、1.1区别:客户端与服务器连接后,1.0只能获得一次web资源,而1.1则可在一个连接上获取多个web资源**********?持久连接是 HTTP1.1 的默认连接方式Http分为两部分:响应头(Http响应)、请求头(Http请求)一个Http请求包括:一个请求行、若干请求头(消息头)、一个空行、实体内容(请求数据)7种请求方式:POST、GE
2014-06-12 22:28:29
467
翻译 Apache和Tomcat的区别与联系
Apache和Tomcat的区别与联系:apache支持静态页,tomcat支持动态的,比如servlet等, 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。 apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat
2014-06-12 22:27:08
487
翻译 SSH学习笔记1
web.xml:1、首先配置applicationContext(1)作用:在servlet执行之前初始化参数。 默认情况下spring容器初始化时会找配置文件,也就是applicationContext.xml,如果指定了contextConfigLocation的话,spring会自动读取指定参数为contextConfigLocation的位置下的所有符合条件的spring配置文
2014-06-12 22:25:41
324
转载 JVM环境装载
通过下面4步来完成JVM环境.1.创建JVM装载环境和配置2.装载JVM.dll3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例4.调用JNIEnv实例装载并处理class类。一.JVM装入环境,JVM提供的方式是操作系统的动态连接文件.既然是文件那就一个装入路径的问题,Java是怎么找这个路径的呢?当你在调用Java
2014-06-12 22:20:52
415
翻译 JSTL学习笔记
pageEncoding="UTF-8"%>Insert title here----------c:out----------aaa" default="" escapeXml="true">----------c:set---------- scope:用于指定属性所在的web域 taget:用于指定要设置属性的对象,这个对
2014-06-12 22:17:48
293
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人