jsp之記錄用戶登錄的總次數以及記錄用戶最後一次登錄的時間

其實剛開始是不知道怎麼去做的,百度了一堆,結果都是沒有用的,


網上的結果不是說用session記錄就是說用cookie記錄,還有的用application(訪問次數??服務員關閉的時候消亡)  但注意~


其實上面的辦法都是行不通的,因爲他們都有生命週期,像cookie有些瀏覽器還會禁用,因此,不能用他們來記錄變化的值!那用什麼呢??


不錯,數據庫,可以用數據庫來記錄變化的值。所以,你需要先在數據庫中建表,假設有兩個字段分別爲:total_login_count(登錄總次數,int型)   和 last_login_time(最後登錄時間,datetime型) ,開始解說:


1. 記錄用戶的登錄總次數:


拿用戶登錄來說,用戶每登錄一次我們就需要將數據庫中的相應字段值加 1,代碼如下:

					String sql ="update testuser set total_login_count = total_login_count+1 where username ='"+uname+"';";
try {
						conns.insert(sql);
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						System.out.println("數據更新錯誤");
						e.printStackTrace();
					}
注意:上面的conns.insert(sql)是博主自己封裝的代碼,你按照普通連接做就行了。

還有需要注意的一點就是(博主在這裏還浪費了半天時間,果然人蠢的無法~-~):在java代碼中對數據庫進行操作,當涉及到字符串的操作時(比如上面的uname,是從表單中提取的字符串),使用數據庫查詢的時候就需要加單引號(其實對於mysql中的所有字符都是要加單引號,比如select* from std where stdname='靜靜')希望各位博友會不會栽跟頭


2.記錄用戶最後的登錄時間

道理跟上面是一樣的,用戶在登錄之後將取得系統時間並改寫數據庫中相應字段的值:

Date date = new Date();  //獲取當前時間
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化爲:年月日 時分秒 以匹配數據庫相應字段的類型
		String datetime = sdf.format(date);
							String sql2 = "update testuser set last_login_time = '"+datetime+"' where username ='"+uname+"';";
try {
						conns.insert(sql2);
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						System.out.println("數據更新錯誤");
						e.printStackTrace();
					}
		


這裏需要注意的就是如何獲取當前時間並進行格式化,然後再改寫數據庫中的相應字段值






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章