Welcome to Yumao′s Blog.
Hello Servlet Day04
, 2012年04月24日 , Java Language , 评论 在〈Hello Servlet Day04〉中留言功能已關閉 ,

1、dao的改進
step1 實體類
step2 dao接口
step3 dao實現
step4 工廠
工廠是什麼?
工廠類將一個對象的創建過程對外屏蔽,調用者
不需要了解對象的創建過程,只需要調用工廠類
的相應方法就可獲得符合相應接口規範要求的
對象。

類的加載:
jvm會將內存空間劃分成三部分,分別是
堆、棧、方法區。
jvm在執行java代碼時,如果碰到一個類型
,比如Student,會先檢查方法區當中,有沒
有Student class對象。如果沒有,則調用
ClassLoader(類加載器),ClassLoader會依據
classpath搜索Student.class文件,將該文件轉換
成方法區中的一個對象(即Student class對象)。

2、將中文參數值保存到數據庫
step1
html文件,添加 content=”text/html; charset=UTF-8″>
表單要採用post方式提交。
step2 在servlet類當中,添加
request.setCharacterEncoding(“utf-8″);
step3 將連接數據庫的url改成:
jdbc:mysql://localhost:3306/jd1202db?
useUnicode=true&characterEncoding=utf8
明確告訴jdbc驅動程序,保存在數據庫中的數據
的編碼格式是什麼。

3、一個servlet如何處理多個不同的請求。
1)servlet容器(tomcat)如何處理請求資源路徑?
比如,在瀏覽器地址欄輸入

http://ip:port/appname/abc.html,瀏覽器會將

“/appname/abc.html”作為請求資源路徑放到
請求數據包裡面,發送給servlet容器(tomcat)。
step1 查找webapps下的appname文件夾,找到
web.xml文件,然後比較”/abc.html”與
的配置。
step2 按照如下方式比較:
精確匹配: 要求必須也是/abc.html。
通配符匹配: 使用”*”代表任意的字符。
/*
後綴匹配: 使用*.任意的字符串。
比如:
*.do
表示所有以.do結尾的請求資源路徑都匹配。
step3 容器會將請求資源當作是一件靜態資源,
查找對應的資源文件是否存在,存在,則返回,
不存在,返回404。
2) 讓一個servlet處理多個請求.
step1 該servlet使用後綴匹配模式。
step2 在servlet的service方法裡面,分析
請求資源路徑,依據分析結果採取不同的處理。
//返回請求資源路徑
String request.getRequestURI();
練習:
使用一個servlet(ActionServlet)來實現學生信息
管理。
4、servlet的生命周期及相關的核心類與接口
1)核心類與接口
a,Servlet接口
init(ServletConfig config):容器
在創建一個servlet對象之後,會立即調用
該方法。容器在調用init方法之前,會先
創建一個ServletConfig對象。也就是說,
ServletConfig對象會作為參數傳遞給servlet
對象。
service(ServletRequest request,
ServletResponse response):容器收到客戶端的
請求之後,會調用該方法來處理請求。
destroy(): 容器在銷毀servlet對象之前,會調用
該方法。
b,GenericServlet抽象類(實現了Servlet
接口中的init,destroy方法)
c,HttpServlet抽象類(繼承GenericServlet,
實現了service方法)
d,ServletConfig接口:
//訪問servlet的初始化參數,在web.xml文件當中
//使用配置的參數。
String getInitParamter(String paraName);
如何配置servlet初始化參數?
web.xml中,添加

author tarena
e,ServletRequest是HttpServletRequest的父接口。
ServletResponse是HttpServletResponse的父接口。
2)生命周期
servlet容器如何創建servlet對象,然後分配
其資源,調用其方法完成請求處理,最後銷
毀servlet對象的整個過程。
第一階段: 實例化
當請求到達容器時,容器會先檢查對應的
servlet對象是否存在,如果不存在,則
創建servlet對象,如果存在,不再創建。
第二階段: 初始化
容器接下來,會調用servlet對象的init方法。
該方法只會執行一次,用於初始化。
init方法可以override,建議
override init()。
而不是override init(ServletConfig)
第三階段:就緒
容器調用servlet對象的service方法來處理請求。
第四階段:銷毀

Servlet_Day04.tar
课堂内容

关键字:,

评论已关闭