* 使用者登入案例需求:
1.編寫login.html登入頁面
username & password 兩個輸入框
2.使用druid資料庫連線池技術,操作mysql,day14資料庫中user表
3.使用jdbctemplate技術封裝jdbc
5.登入失敗跳轉到failservlet展示:登入失敗,使用者名稱或密碼錯誤
一、編寫login.html頁面
這個很簡單,注意
"/day14_test/loginservlet" method="post">
action 要設定成能跳轉的路徑
二、使用druid連線庫連線池技術
這個是重點難點,連線的步驟我必須要背出來,學jdbc時是看的尚矽谷宋紅康的教程,黑馬這個老師教的可能和他有些出入,待會要複習的時候我會看黑馬的jdbc教程。
1.建立連線第一步:先定義乙個連線池物件:
private
static datasource ds;
這個時候該連線池為空,因為還沒獲取。
2.接下來獲取連線池物件
public
static datasource getdatasource01()
建立乙個獲取連線池方法,再用druid工廠建立連線池,用靜態**塊1.載入配置檔案2.初始化連線池物件:
properties pro =
newproperties()
;inputstream is = jdbcutils.
class
.getclassloader()
.getresourceasstream
("druid.properties");
pro.
load
(is)
;ds = druiddatasourcefactory.
createdatasource
(pro)
;
注意有異常要用try,catch我就不複製過來了
3.獲取連線connection物件
public
static connection getconnection01()
throws sqlexception
注意:這步在改程式中沒用到過,我把這行注釋了不影響結果,連線池不需要手動獲取連線物件嗎?還是說這一步是給多使用者同時使用做的?
用druid需要匯入jar包。
三、使用jdbctemplate技術封裝jdbc
1.這一步的操作是mvc中的c,需要對資料庫進行操作了
先宣告jdbctemplate物件公用:
private jdbctemplate template =
newjdbctemplate
(jdbcutils.
getdatasource01()
);
2.接下裡編寫sql語句,呼叫query方法
因為需要把結果封裝成乙個物件,方法queryforobject就很適合
public user login
(user loginuser)
異常的處理省略,返回的是乙個完整的user物件,即通過登入時輸入的使用者名稱和密碼得到了在資料庫中對應的user。
3.接下裡不急寫**,資料庫連線步驟到此已經完全結束了,先測試一下資料庫是否成功連線
public
void
test01()
密碼錯誤的話會拋異常,所以需要在userdao中加限定條件,捕獲到那個異常,返回null,否則返回正常資料庫中的值。
四、開始編寫loginservlet
1.設定編碼:
request.
setcharacterencoding
("utf-8"
);
2.獲取請求引數,也就是介面輸入返回的訊息:
string loginusername = request.
getparameter
("username");
string loginpassword = request.
getparameter
("password"
);
得到了這個訊息後,和資料庫中的資料對比,和測試方法類似
3.如果成功,也就是正常返回乙個user物件,那麼:
request.
setattribute
("user"
,user)
;
儲存該物件,然後跳轉頁面:
request.
getrequestdispatcher
("/successservlet").
forward
(request,response)
;
值得注意的是,這裡是跳轉而不是重定向,所以位址列的內容都不會變,還是這個:
在successservlet中,給頁面寫一句話,先設定編碼
response.
setcontenttype
("text/html;charset=utf-8"
);
然後獲取域中儲存的user物件,並輸出使用者名稱
user user =
(user)request.
getattribute
("user");
response.
getwriter()
.write
(user.
getusername()
+",歡迎您"
);
4.如果失敗
request.
getrequestdispatcher
("/failservlet").
forward
(request,response)
;
直接跳轉到failservlet中,同上。
至此,使用者登入案例完畢。
python案例 使用者登入
要求 輸入使用者名稱密碼 認證成功後顯示歡迎資訊 輸錯三次後鎖定 1 usr bin env python 2 coding utf 8 3 4 5 使用者登陸功能例項 6 1 獲取db檔案中所有的使用者資訊 7 2 比較使用者資訊 8 如果使用者名稱不存在,則直接退出 9 如果使用者名稱存在 10...
使用者登入案例 涉及web JDBC
使用者登入案例 案例需要 使用者登入案例需求 1.編寫login.html登入頁面 username password 兩個輸入框 2.使用druid資料庫連線池技術,操作mysql,day14資料庫中user表 3.使用jdbctemplate技術封裝jdbc 5.登入失敗跳轉到failservl...
oracle特定使用者登入失敗案例
昨晚收到開發的郵件,說使用pl sql dev登入資料庫時,出現如下錯誤,要求處理下 看到這個錯誤我也比較鬱悶,沒碰到過這種情況。於是手工建立了乙個測試使用者scott,發現遠端登入沒有問題的。此時考慮應該是資料庫中有些使用者限制了登入的。再看錯誤編號 ora 20001,oracle保留的異常錯誤...