一、要实现的功能

   1.登录页面有用户名和密码的验证,用户名和密码不能为空,长度在一定范围之内。

   2.用户登录后,将用户的登录信息保存在session中。

   3.注重安全性,不能在地址栏输入地址就能直接访问。

二、实现思路

   1.登录页面用javascript验证。

   2.用户的登录信息是从数据库中查询得到的,当我们执行数据库查询后,我们是通过ResultSet来读取这些查询结果的,我们不能直接把结果放到session中,所以我们要用其他方式来存储这些查询到的结果,我能想到的就是用HashMap了,但是怎样把通过ResultSet得出的查询结果转化为一个Map类型呢,这个时候不要想的太复杂了,刚开始的时候我就想的太复杂了,想想HashMap存储数据的方式,key-value键值对的方式来存储数据的,我们只要选择一个适合的Key就好了,在做的时候我直接把用户名当作key把passwor作为value方法哦map中,然后把map放到session中,这样能行,但是这个key选择的不好,如果我们也需要把用户名也保存在session中,那我们应改用什么来作为用户名的key呢,所以我们可以把数据库中 password这一列的列名作为key,password作为value,同理如果我们需要把用户名放到session中我们可以先把用户名这一列的列名作为HashMap的key,用户名作为value来存储数据。

3.安全问题就很简单了,大家都知道get方式来提交密码是很不安全的,那我们就用post方式来提交用户名和密码就行了,当取出用户名和密码的时候判断一下提交的方式是不是post就行了。

三、代码

1.先贴出登录页面的js   

 

 
  
  1. <script type="text/javascript">  
  2.         function checkForm(){  
  3.             var name = documemnt.getElementById("name").value;  
  4.             var password = document.getElementById("pwd").value;  
  5.             if(name==""||null==name||name.length<5||name.length>20){  
  6.                 alert("用户名不能为空,且长度在5到20个字符之间");   
  7.                 return false;         
  8.             }  
  9.             if(password==""||null==password||password.length<5||password.length>16){  
  10.                 alert("密码不能为空,且长度在5到16个字符之间");  
  11.                 return false;  
  12.             }  
  13.             return true;  
  14.         }  
  15.     </script>