原创 實現並配置一個簡單的Servlet

Servlet 是一些遵從Java Servlet API的Java類,這些Java類可以響應請求。儘管Servlet可以響應任意類型的請求,但是它們使用最廣泛的是響應web方面的請求。 Servlet必須部署在Java serv

原创 Java NIO 詳解---Buffer與Channel

一.NIO 和BIO的比較 NIO是jdk1.4開始提供的一種新的IO方式。原來的 I/O 庫(在 java.io.*中) 與 NIO 最重要的區別是數據打包和傳輸的方式。原來的 I/O 以流的方式處理數據,而 NIO

原创 mysql的架構、併發和事務簡介

mysql的架構很靈活,通過配置可以適應於不同的使用場景,但同時也會帶來選擇上的困惑,所以需要了解mysql的設計思想,以便做出合理的選擇。 mysql最重要 與衆不同的設計是它的存儲引擎架構,這種架構設計將查詢處理(query

原创 Servlet中的ServletContext和ServletConfig詳解

ServletContext和ServletConfig是Servlet中比較重要的兩個概念,在Java Web開發的很多時候都會碰到這兩個對象,下面就詳細的介紹下他們。 1.ServletContext ServletCon

原创 Listener、Filter以及Servlet中的url-pattern

1.Listener 1) 概念以及分類 Listener,監聽器,可以實現對ServeltContext生命週期中初始化和銷燬的監聽,也可以實現對ServletContextAttribute、ServletRequestA

原创 Jetty源碼分析之NIO實現的Connector:SelectChannelConnector

Connector在Jetty中是負責接收客戶端請求,然後爲每個請求分配一個對請求進行處理的線程,並且負責將處理完得到的響應發送給客戶端。總共有兩種類型的Connector,基於Socket的阻塞Connector,代表類是SocketC

原创 spring整合mybatis

現在很多項目都是基於Spring框架進行開發的,這種情況下如果仍然按照上面的方式來配置使用mybatis則會有很多的不方便。好在針對Spring框架mybatis也提供了配置方案,主要是通過一系列的mybatis-spring-xxx.j

原创 Jetty源碼分析之線程池:QueuedThreadPool

前面分析Jetty整體架構的時候介紹過Jetty的三大組件:Acceptor、Handler和ThreadPool;前兩者工作的時候都是需要線程的,而所需的線程正是從ThreadPool中獲取的。這篇文件就是來分析ThreadPool的一

原创 mysql索引詳解

索引(在mysql中也叫鍵(key))是數據庫用來快速找到記錄的一種數據結構。索引對於良好的性能非常關鍵,特別是當表中數據量越來越大的時候,索引對性能的影響就越來越明顯了。在數據量較少並且負載較低的時候,不良的索引對性能的影響還不明顯,但

原创 Jetty源碼閱讀---Jetty的類加載器WebAppClassLoader

前面介紹了java中類加載的一般模型:雙親委派模型,這個模型適用於大多數類加載的場景,但對於web容器卻是不適用的;這是因爲servlet規範對web容器的類加載做了一些規定,簡單的來說有以下幾條: 1.WEB-INF/classes和

原创 Jvm類加載機制詳解--類加載的幾個階段

虛擬機把描述類的數據從Class文件加載到內存,並對數據進行校驗、轉換解析和初始化,最終形成可以被虛擬機直接使用的Java類型,這就是虛擬機類加載機制。在Java語言中,類的加載、連接和初始化過程都是在程序運行期間完成的,這是java作爲

原创 Java 動態代理原理及其在mybatis中的應用

代理是一種基本的設計模式,代理模式的主要作用是爲其他對象(被代理的對象,下面稱爲原對象)提供一種代理以控制對這個對象的訪問。在某些情況下,一個對象不想或者不能直接引用另一個對象,而代理對象可以在客戶端和目標對象之間起到中介的作用。代理對象

原创 Jetty源碼分析之WebAppContext

WebAppContext即Web Application ContextHandler,表示一個Web應用的上下文,是上篇文章介紹的ContextHandler的一個子類,也是實際中應用的ContextHandler。先來看下類圖:

原创 Jvm類加載機制詳解---類加載器及雙親委託模型

前面介紹了類加載的幾個過程,實際中這些過程大部分都是由虛擬機本身去執行的,我們沒有辦法去改變或影響這些過程的執行。但是虛擬機團隊將類加載階段第一步中的”通過一個類的全限定名來獲取描述該類的二進制字節流”這個動作放到虛擬機外部去實現,以便讓

原创 Java Class類及反射機制

首先要分清楚Class類和關鍵詞class的不同,雖然Class類名稱上和class很相似,但兩者其實沒有什麼關聯。Class類也是一個Java類,它也可以實例化得到對象,與普通類不一樣的是Class類中存儲的是其它類的類型信息。而這些類