![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 66
守仁
这个作者很懒,什么都没留下…
展开
-
《How tomcat works》读书笔记_Logger
本章将讨论Logger,一个用来记录信息的组件。Logger一般与一个容器关联,是一个相对比较简单的组件。你可以在org.apache.catalina.logger包中找到很多Tomcat提供的很多种不同的Logger。Logger接口所有Logger必须实现org.apache.catalina.Logger接口。package org.apache.catalina;imp原创 2016-01-19 09:49:10 · 173 阅读 · 0 评论 -
《How tomcat works》读书笔记_一个简单的Web服务器
这个应用程序的入口点(静态main方法)可以在HttpServer类里边找到。main方法创建了一个HttpServer的实例并调用了它的await方法。await方法,顾名思义就是在一个指定的端口上等待HTTP请求,处理它们并发送响应返回客户端。它一直等待直至接收到shutdown命令。 应用程序不能做什么,除了发送静态资源,例如放在一个特定目录的HTML文件和图像文件。它也在控制台上显示传入的HTTP请求的字节流原创 2015-12-17 13:01:13 · 211 阅读 · 0 评论 -
《How tomcat works》读书笔记_加载器
在前面的章节中我们已经看到了一个简单加载器的实现,一个用来加载servlet的简单加载器。本章将讨论的一个在Catalina中的标准网络应用加载器。一个servlet容器需要定制一个加载器,之所以不使用系统的类加载器,是因为在它上面运行的servlet是不受信任的。就像前面的章节那样,我们使用系统的类加载器来加载servlet和servlet使用到的类,那么,这个servlet就可以获取到所有在虚原创 2016-01-20 14:18:32 · 237 阅读 · 0 评论 -
《How tomcat works》读书笔记_加载器_Application
应用程序下面将讨论如何使用一个与Context关联的WebappLoader。Context容器的标准实现是org.apache.catalina.core.StandardContext,程序中将使用StandardContext类作为Context容器。StandardContext类将在后面章节讨论,现在不需要知道太多关于这个类的细节。你只需要知道StandardContext与一个监听器协同原创 2016-01-20 16:39:17 · 194 阅读 · 0 评论 -
《How tomcat works》读书笔记_连接器(1)
Catalina中有两个重要的模块:连接器和容器。原创 2016-01-05 11:30:27 · 214 阅读 · 0 评论 -
《How tomcat works》读书笔记_连接器(2)_Request
创建HttpRequest对象 HttpRequest类实现了javax.servlet.http.HttpServletRequest。跟随它的是一个叫做 HttpRequestFacade的facade类。解析HTTP请求是一个相当复杂的事情,主要有以下几个部分:读取套接字的输入流解析请求行解析头部解析cookies获取参数列表内容列表内容1,读取套接字的输入流byte[] b原创 2016-01-05 14:41:29 · 235 阅读 · 0 评论 -
《How tomcat works》读书笔记_连接器(3)_Respones
创建HttpResponse对象 HttpResponse类实现了javax.servlet.http.HttpServletResponse。跟随它的是一个叫做HttpResponseFacade的façade类。在前面的例子中创建HttpResponse类中,getWriter方法返回了一个java.io.PrintWriter对象,但是当调用print方法后,这个对象并不会清空缓存,导致部分原创 2016-01-05 15:45:15 · 223 阅读 · 0 评论 -
《How tomcat works》读书笔记_tomcat默认连接器(1)
以上是默认连接器类UML图。 Connector和Container是一对一的关系,从箭头的方向可以看出Connector是知道Container的,但反过来就不成立了。别外需要注意的是和上一章不同,HttpConnector和HttpProcessor是一对多的关系。HttpConnector类它实现了三个接口:org.apache.catalina.Connector,适配Catalina原创 2016-01-06 17:34:22 · 211 阅读 · 0 评论 -
A child container failed during start:org.apache.catalina.LifecycleException
最近在使用Spring时报出了下面的错误,网上查的资料都是说web.xml中的servlet-mapping配置的问题,这种说法也不尽然,我遇到的情况就不是这样。最后的解决办法是导入commons-logging-1.1.3.jar包就可以了严重: A child container failed during startjava.util.concurrent.ExecutionExceptio原创 2015-12-22 23:26:20 · 2325 阅读 · 0 评论 -
《How tomcat works》读书笔记_tomcat默认连接器(2)
创建Request对象 在tomcat默认连接器中request对象是用org.apache.catalina.Request接口来表示的。这个接口由RequestBase类实现,并且它同时也是HttpRequest.接口的父接口。最终的实现类是HttpRequestImpl,它实现了HttpRequest接口。这里还有两个门面类:RequestFacade和HttpRequestFacade。上原创 2016-01-07 15:47:40 · 185 阅读 · 0 评论 -
《How tomcat works》读书笔记_容器(1)
容器模型主要用于为一个servlet处理request对象,并且为Web客户端返回response对象。容器模型由一个org.apache.catalina.Container接口来表示,一般有四种类型的容器:Engine,Host,Context和Wrapper。这一章节主要讨论Context和Wrapper这两种容器,其它的留在后面的章节讨论。这章首先讨论Container接口,以及在容器中使原创 2016-01-12 17:03:00 · 203 阅读 · 0 评论 -
《How tomcat works》读书笔记_容器(2)
Wrapper应用这个应用创建了一个最小的容器模型。 类图如上。SimpleLoader在容器Container中加载一个servlet类的任务由Loader的实现类来完成。这里的实现类为SimpleLoader,这个类知道servlet类的class文件的位置,getClassLoader方法返回一个java.lang.ClassLoader类的实例。SimpleLoader类定义了三个变量原创 2016-01-13 12:24:31 · 197 阅读 · 0 评论 -
《How tomcat works》读书笔记_生命周期
Catalina由很多组件组成,当Catalina启动时,所有组件都需要启用;当Catalina停止时,所有组件也需要停止并在停止之前完成清理工作。比如,当我们停止一个容器时,必须调用所有已加载的servlet的destroy方法,同时会话管理器也需要将session对象存储到辅助存储器中。通过org.apache.catalina.Lifecycle接口可以实现一个启动和停止组件的一致性机制。原创 2016-01-15 13:10:24 · 163 阅读 · 0 评论 -
《How tomcat works》读书笔记_Session Management
Session在servlet中Session对象是由javax.servlet.http.HttpSession接口来表示的。这个接口的实现类为org.apache.catalina.session包中的StandardSession类。然而出于安全考虑管理器并不会将StandardSession实例直接传递给servlet,它会传递一个门面类StandardSessionFacade。原创 2016-03-03 16:29:58 · 207 阅读 · 0 评论 -
《How tomcat works》读书笔记_Session Stores
StoresStors由org.apache.catalina.Store接口表示,它是一个为Manager所管理的Session提供持久化储存的组件。package org.apache.catalina; import java.beans.PropertyChangeListener; import java.io.IOException; public interface原创 2016-03-08 15:44:01 · 192 阅读 · 0 评论 -
《How tomcat works》读书笔记_Application
类似第八章的应用,这里也是使用默认连接器,使用Context为其主容器并关联一个Wrapper容器。唯一的区别是在Context类会持有一个StandardManager实例来管理Session对象。我们使用第三个Sevlet SessionServlet来测试这个应用,这个servlet由名这wrapper1的Wrapper容器来表示。原创 2016-03-11 14:51:07 · 241 阅读 · 0 评论 -
《How tomcat works》读书笔记_一个简单的Servlet容器
这个Servlet容器可以处理简单的servlet和静态资源,通过url请求来判断客户端请求的是什么资源。原创 2015-12-31 14:13:55 · 266 阅读 · 0 评论 -
java.lang.System.getProperty(String key)
java.lang.System.getProperty(String key)用于获取系统的相关属性。System是java.lang包中的一个类,这个类中存在大量和系统打交道的实用方法,而且一般都是类方法,getProperty()就是其中一个比较常用的方法,用于返回系统参数文件中这个方法指定键所代表的值。以上代码中给出了getProperty()方法的一个应用实例。pac原创 2013-05-16 10:03:57 · 262 阅读 · 0 评论 -
Java不覆盖原文件写入
FileWriter和FileOutputStream都提供了很多构造方法。我们以FileOutputStream为例,FileWriter也同理:我们常用的声明方式是:FileOutputStream(File file)创建一个向指定File 对象表示的文件中写入数据的文件输出流。创建一个新 FileDescriptor 对象来表示此文件连接。若是这样写的话,就会将原文件覆盖。原创 2012-08-02 20:16:29 · 12325 阅读 · 1 评论 -
Java 浅谈容器
一,CollectionCollection是一个接口,是一组独立的对象。它提供了一系列了方法(不包括从Object继承而来的方法)。它们也可通过Set或List执行所有的这些操作(List还有额外的功能),Map不是继承自Collection的,所以会另行介绍。以下所讨论的容器均是继承自Collection。1,List和Queue都是继承自Collection,比较简单,在这里不再原创 2012-08-02 23:48:36 · 710 阅读 · 0 评论 -
Log4j 2.0 使用说明(2) 配置文件
在这里我们试着添加配置文件。另外,我们需要注意的是2.0版本中的配置只能为Xml和Json。测试代码为:package com.foo;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class Bar { static Logger logg原创 2012-09-10 11:49:35 · 18479 阅读 · 7 评论 -
Log4j 2.0 使用说明(1) 之HelloWorld
最近刚接触Log4j,由于Log4j推出了2.0版本,而网上关于2.0的资料很少,所在在这里简要介绍下2.0版本的使用。以下是2.0的类图,以便大家对2.0有一个整体的理解。就如我们学习任何一个技术一样,这里我们首先写一个Hello World:1,新建工程TestLog4j2,下载Log4j 2.0有jar包,导入下面两个文件3,编写代码:import原创 2012-09-10 11:19:04 · 5980 阅读 · 4 评论 -
Log4j 2.0 使用说明(3) 之组件及过滤器
测试用代码:package com.test;import java.util.Random;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class TestService { private Logger logger = LogManager原创 2012-09-11 10:28:10 · 5062 阅读 · 4 评论 -
Jena学习笔记(3)——本体推理
一,使用Jena对OWL本体进行查询推理前面在"使用jena持久化OWL本体到MySQL(http://bbs.w3china.org/dispbbs.asp?boardID=2&ID=60494)"中说到了把OWL本体在MySQL中的存取,现在终于能做些简单推理了。要主要规则和查询语句的语法。 使用sparql对本体进行查询1)InfModel是对常规Model的原创 2012-11-15 15:02:02 · 8140 阅读 · 3 评论 -
Jena学习笔记(1)——RDFS,OWL,DAML+OIL等本体操纵
Jena介绍: Jena由 HP Labs(http://www.hpl.hp.com)开发的Java开发工具包, 用于SemanticWeb(语义网)中的应用程序开发;Jana是开源的,在下载的文档中有 Jena的完整代码。Jena框架主要包括: a)以RDF/XML、三元组形式读写 RDF资源描述框架是(RDF)是描述资源的一项标准(在技术上是W3C的推荐标原创 2012-11-15 14:17:04 · 6465 阅读 · 2 评论 -
Jena学习笔记(2)——利用数据库保存本体
注明:本文档是使用Jena2.6.4,数据库为MySQL,数据库驱动版本为mysql-connector-java-5.1.13-bin.jar。1 Jena的数据库接口Jena提供了将RDF数据存入关系数据库的接口,Model、Resource、Query等接口可以用于访问和维护数据库里的RDF数据。在处理数据时,应用程序不必直接操作数据(而是通过Jena的API),也不必知原创 2012-11-15 14:43:46 · 5050 阅读 · 4 评论 -
Java Map遍历的三种方式
最近经常碰到Map遍历的问题,在网上查找资料后,记录下,权当备忘~~~~~~这里给出了三种遍历的方式,注释中已说明各自方式的优点。package edu.hrbeu.cloud.testIterMap;import java.util.Collection;import java.util.Iterator;import java.util.Map;import java.uti原创 2012-12-07 11:59:11 · 654 阅读 · 0 评论 -
servlet中传参方法总结
方法一1开始说第一个问题,路径问题 .主要是form表单对应的action里面的路径和web.xml里面的url-pattern里面的路径下面说明几点(1)web.xml里面的url-pattern里面的servlet映射,/ServletTest这里第一个"/"表示的是工程目录.tomcat规定这里必须是"/"开头的.换句话说,这个"/"表示http://转载 2012-12-15 14:37:37 · 408 阅读 · 0 评论 -
Java中抽象类与接口区别详述
abstract class和interface是Java中对抽象进行定义的两种机制,这两种机制在对抽象定义的支持方面有很大的相似性,有时甚至可以相互替换。因此,对于到底使用哪种机制进行问题的抽象时,很容易产生困惑。1.Java语言中的抽象在面向对象的概念中,所有的对象都是通过类来进行描述的,如果一个类中没有足够的信息来描述一个具体的对象,这样的类就是抽象类(注:这里的抽象类并不是原创 2013-05-16 14:24:04 · 681 阅读 · 0 评论 -
Java线程同步中关键字synchronized详述
synchronized关键可以修饰函数、函数内语句。无论它加上方法还是对象上,它取得的锁都是对象,而不是把一段代码或是函数当作锁。1,当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一段时间只能有一个线程得到执行,而另一个线程只有等当前线程执行完以后才能执行这块代码。2,当一个线程访问object中的一个synchronize原创 2013-05-17 19:45:10 · 12537 阅读 · 1 评论 -
wait()与notify()获取对象监视器(锁)的三种方式
在某个线程方法中对wait()和notify()的调用必须指定一个Object对象,而且该线程必须拥有该Object对象的monitor。而获取对象monitor最简单的办法就是,在对象上使用synchronized关键字。当调用wait()方法以后,该线程会释放掉对象锁,并进入sleep状态。而在其它线程调用notify()方法时,必须使用同一个Object对象,notify()方法调用成功后,原创 2013-05-20 13:58:45 · 4097 阅读 · 0 评论 -
Java对象初始化详解
文章来源:http://mysun.iteye.com/blog/1596959在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。本文试图对Java如何执行对象的初始化做一个详细深入地介绍(与对象初始化相同,类在被加载之后也是需要初始化的,本文在最后也会对类的初始化进行介绍,相对于对象初始化来说,类的初始化要相对简单一些)。 1.Java对象何转载 2013-05-22 10:08:58 · 510 阅读 · 0 评论 -
抽象接口——abstract interface???
关于Abstract Interface与Interface之间的区别,从网查了很多的资料,大部分都是讲这两个之间没有任何的区别。因为,Interface本身就是abstract的的。以下是Java权威书籍中关于这个问题的论述:《Java in nutshell》——"All methods of an interface are implicitly abstract, even i原创 2013-05-20 19:37:16 · 1769 阅读 · 0 评论 -
Java常用修饰符总结
public:可以被任何类访问。final:使用些修饰符的类不可以被继承。abstract:如果要使用abstract类,需要建立一个继承自它的新类,来实现其中的抽象方法。变量:1,Java中没有全局变量,只有方法变量、实例变量(类中非静态变量)、类变量(类中静态变量);2,方法中的变量不可以有访问修饰符,所以访问修饰符只是针对类中定义的变量;3,声明实例变量时,如果没原创 2013-05-16 10:20:15 · 1961 阅读 · 0 评论 -
Java 简单高效处理字符串-删除所有标点
应用:str = str.replaceAll("[\\pP‘’“”]", "");在这里利用的是Unicode编码,Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。大写 P 表示 Unicode 字符集七个字符属性原创 2012-08-02 20:01:25 · 8586 阅读 · 0 评论