一、什麼是Servlet Servlet 運行在服務端的Java小程式, 是sun公司提供一套規範(介面) 主要功能: 用來處理客戶端請求 響應給瀏覽器的動態資源 servlet的實質就是java代碼, 通過java的API動態的向客戶端輸出內容 以後寫的程式就不在是在本地執行了。 而是編譯成位元組碼 ...
一、什麼是Servlet
Servlet 運行在服務端的Java小程式,
是sun公司提供一套規範(介面)
主要功能:
用來處理客戶端請求
響應給瀏覽器的動態資源
servlet的實質就是java代碼,
通過java的API動態的向客戶端輸出內容
以後寫的程式就不在是在本地執行了。
而是編譯成位元組碼
放到伺服器上來去執行。
編寫程式時, 不需要有main函數了。
因為寫完後
就把編寫的程式編譯成位元組碼,
放到伺服器上面
當前發送就一個請求的時候
伺服器就會按照一定規則調用編寫的代碼
二、Servlet快速入門
1.創建一個web工程名為:MyServlet
2.在JavaResource中src下
創建一個包名稱為com.myxq.servlet
3.在創建的servlet包當中
創建一個class文件起名為FirstServlet
4.進入該class實現一個Servlet介面,
實現它未實現的方法
重點看service方法
在該方法當中寫入一句話進行輸出
5.在web.xml當中進行配置
6.啟動伺服器訪問:
localhost:8080/MyServlet/firstServlet
就會自動執行創建的servlet中service方法
三、servlet內部機制
想要弄清楚這個問題
就必須得要先瞭解什麼反射
四、類的載入時機
當程式要使用某個類時
如果該類還未被載入到記憶體中
系統會通過
載入,連接,初始化
三步來實現對這個類進行初始化
載入
就是指將class文件讀入記憶體
併為之創建一個Class對象。
任何類被使用時
系統都會建立一個Class對象。
連接
驗證 是否有正確的內部結構
並和其他類協調一致
準備 負責為類的靜態成員分配記憶體,
並設置預設初始化值
初始化
初始化成員變數等等
類的載入時機
創建類的實例
訪問類的靜態變數,或者為靜態變數賦值
調用類的靜態方法
初始化某個類的子類
使用反射方式
來強制創建某個類或介面
對應的java.lang.Class對象
五、類載入器
什麼是類載入器classLoader
負責將.class文件載入到記憶體中,
併為之生成對應的Class對象。
雖然我們不需要關心類載入機制,
但是瞭解這個機制
我們就能更好的理解程式的運行。
類載入器可分為:
根類載入器
也被稱為引導類載入器
負責Java核心類的載入
比如System,String等。
在JDK中JRE的lib目錄下rt.jar文件中
擴展類載入器
負責JRE的擴展目錄中jar包的載入。
在JDK中JRE的lib目錄下ext目錄
系統類載入器
負責在JVM啟動時
載入來自java命令的class文件
以及classpath環境變數
所指定的jar包和類路徑
六、什麼是反射
創建一個對象的三個階段
1.源文件階段 .java的文件
2.位元組碼階段 .class
3.創建對象階段 new 對象
內省:
在運行時能夠獲取
JavaBean當中的
屬性名稱和get與set
反射:
JAVA反射機制是在運行狀態中
對於任意一個類
都能夠知道這個類
所有屬性和方法;
對於任意一個對象
都能夠調用它的
任意一個方法和屬性;
這種動態獲取的信息
以及動態調用對象的方法的功能
稱為java語言的反射機制。
想要使用反射,
就必須得要獲取位元組碼文件
獲取位元組碼:
1.Object類的getClass()方法
2.靜態屬性class
3.Class類中靜態方法