DispatcherServlet
Html
a標(biāo)簽
target屬性設(shè)置哪個目標(biāo)進(jìn)行跳轉(zhuǎn)
self : 表示當(dāng)前頁面
blank: 新頁面
列表
無序:ul ?; 有序:ol
iframe : 內(nèi)簽標(biāo)簽
Servlet
post下,要設(shè)置字符集編碼,不然會亂碼
繼承關(guān)系
繼承關(guān)系
Servlet 接口
GenericServlet 抽象類
http.HttpServlet ?抽象子類
相關(guān)方法:
Servlet接口
void init(config) -- 初始化方法
void service(request,response) -- 服務(wù)方法
void destory() -- 銷毀方法
GenericServlet 抽象類:
void service(request,response) ?-- 仍然是抽象的
http.HttpServlet ?抽象子類
void service(resquest,respon) ?-- 不是抽象的
生命周期
servlet 是單例線程不安全的;盡量不要在servlet中定義成員變量。如果不得不定義成員變量,那么不要去:1 不要去不要去修改成員變量的值。2 不要根據(jù)成員變量的值做一些邏輯判斷。
Http
http是無狀態(tài)的:無法區(qū)分是同一個客戶端還是不同客戶端發(fā)送過來的;通過seesion id,跟蹤技術(shù)來分別;
請求包含了三部分:請求行、請求消息頭、請求主體: 普通的get方式請求-query string;post方式--form data;json格式--request
服務(wù)器內(nèi)部轉(zhuǎn)發(fā)以及客戶端重定向
服務(wù)器內(nèi)部轉(zhuǎn)發(fā):request.getRequestDispatcher("....").forward(request,response);
一次請求響應(yīng)的過程,對于客戶端而言,內(nèi)部經(jīng)過了多少次轉(zhuǎn)發(fā),客戶端是不知道的
客戶端重定向:reson.sendRedirect("....");
兩次請求,url有變化,客戶端是知道的。
作用域
page : 現(xiàn)在幾乎不用
requeset (一次請求響應(yīng)范圍):
session (一次會話范圍):
application(整個應(yīng)用程序范圍) :?
頁數(shù)問題

MVC
優(yōu)化
原問題:通過swtich(operate) {} ?來寫,導(dǎo)致代碼量過長
解決:反射
DispatcherServlet ?類