項目需求:
實現用戶登錄
實現用戶退出
實現用戶注冊
功能分析:
用戶登錄:
根據用戶名和密碼查詢用戶信息。查到則登錄成功,查不到則登錄失敗。
用戶退出:
銷毀session
用戶注冊:
將用戶注冊信息插入數據庫
數據庫設計:
用戶表:t_user
用戶id uid
用戶名 uname
用戶密碼 pwd
用戶性別 sex
用戶年齡 age
出生日期 birthday
SQL語句設計:
用戶登錄
select * from t_user where uname=? and pwd=?
用戶注冊
insert into t_user values(default,?,?,?,?,?)
代碼實現:
略
問題:
現在我們一個請求或者一個獨立的業務邏輯都單獨進行一個Servlet的創建進行請求處理。
但是一個網站的功能是非常的多,如果每個都創建單獨的Servlet進行處理,這樣造成
Servlet過多。造成資源浪費。
解決:
服務器在接收到瀏覽器發送的請求后,會調用對應的Servlet進行請求處理。
然后調用Servlet中的Service方法進行處理。
我們將不同功能的處理封裝成對應的方法。
在service方法中調用其對應的功能處理方法進行請求處理。
這樣Servlet我們只需要一個。
新的問題:
如何在service方法中實現根據請求動態的調用其功能處理方法呢?
解決:
使用反射。
注意:
請求中需要附帶要執行的方法名稱。
JSP+Servlet項目總結和期望:
總結:
1、套用模板進行頁面快速構建
在自己的項目中創建jsp文件
然后將模板中的前端代碼賦值到自己的jsp文件中
將靜態資源賦值到webRoot下
2、mvc開發流程
m:model service dao pojo
v:view jsp js css html
c:controller servlet
3、servlet+jsp+jdbc 的開發流程
1、瀏覽器發起請求直接給jsp
2、瀏覽器發送功能請求給servlet,servelet調用service.service進行業務邏輯處理,
service調用dao,dao層進行數據庫操作(jdbc).dao 層將處理結果返回給service
service再將結果返回給servlet,或者繼續轉發重定向給其他servlet繼續處理,
請求轉發或者重定向給jsp,jsp做出頁面響應
4、request和session作用域使用
request:請求轉發的數據流轉載體
session:重定向的數據流轉載體(當時session可以解決同一個用戶的不同請求的數據庫共享問題)。
5、瀏覽器發送請求到服務器的方式(重點)
from表單提交:action數據提交地址,method,數據提交方式
超鏈接標簽:href:為數據提交地址,可以直接使用?拼接請求數據,類似from表單的get方式
js中的window.location.href:為數據提交地址,可以直接使用?拼接請求數據,類似from表的get
注意:
使用以上請求方式發起的請求,瀏覽器在接收到響應內容后,會將原有的內容覆蓋,顯示響應結果
6、baseServlet的抽取使用
反射
抽象類