用户登录方法1——全jsp方式

逻辑流程图:

 

自己动手写MiniBBS系列(基本篇)之用户登录_休闲

登录验证.jsp代码:

  1. <body> 
  2.    <% 
  3.     String username = request.getParameter("username"); 
  4.     String password = request.getParameter("password"); 
  5.      
  6.     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
  7.      
  8.     Connection ct=DriverManager.getConnection("JDBC:ODBC:mysql","root","asdasd"); 
  9.      
  10.     String ckUserSql="select password from user where username='"+username+"'"
  11.      
  12.     Statement st=ct.createStatement(); 
  13.      
  14.     ResultSet rs= st.executeQuery(ckUserSql); 
  15.      
  16.     if(rs.next()){ 
  17.         if(password.equals(rs.getString(1))) 
  18.             response.sendRedirect("success.jsp"); 
  19.         else 
  20.             response.sendRedirect("fail.jsp"); //password error
  21.     }else 
  22.         response.sendRedirect("fail.jsp"); //user do not exist
  23.     
  24.     %> 
  25.  </body> 

 用户登录方法2—— jsp->servlet->jsp

逻辑流程图:

 

自己动手写MiniBBS系列(基本篇)之用户登录_休闲_02

servlet代码基本与jsp验证代码一致。

那么,这两种方式区别在那里呢?

答:一个是jsp做逻辑判断,一个是servlet做逻辑判断!(废话

这不是废话,我们应该考虑到这jsp和servlet的主要职责分别是什么。jsp本来就是用来做呈现层的,是html中镶嵌部分java代码片段。我们回过头看jsp的登录验证,整个body体中没有一句话是用来给浏览器显示的,这就失去了jsp的优势。并且jsp最终还需要web容器解析成servlet。

所以,我们应该让每一个部分发挥他本体优势,不用servlet做登录界面,也别用jsp做逻辑验证。(虽然他们都可以做到)

 

 用户登录方法3—— jsp->servlet->java class->servlet->jsp

逻辑流程图:

自己动手写MiniBBS系列(基本篇)之用户登录_职场_04

专门设立java类进行数据验证,函数返回验证结果。

当然,我们还应该需要一个专门的类负责链接数据库,执行sql语句。(图中并没有表现出来,上面的代码也不是这么干的,但我们确实应该使用一个类来做这些)

至于为什么要这么做,大家各抒己见。我就不赘述了。