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();
					}
		


这里需要注意的就是如何获取当前时间并进行格式化,然后再改写数据库中的相应字段值






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