Servlet登录实例(二)

接上一篇,Servlet登录实例(二)。

我用的是sql Sever 2008数据库,那么sql Server的登录方式需要设置成账号密码登录方式。相关参考文章:http://blog.csdn.net/ailo555/article/details/4698546

修改登录方式后,还需要一些准备工作:首先需要下载一个sqljdbc驱动文件。双击执行可以得到一个文件夹,将文件夹里面的sqljdbc4.jar复制到项目下面的WebContent->WEB-INF->lib下面。之后就可以编写连接到数据库的java文件了。

这是一个连接数据库的函数。其中需要注意的是sqlserver的驱动一定要写对。

public static Connection getConnection() {
		Connection conn = null;
 
		try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;
                                DatabaseName=test01","sa","123456");
		}catch(Exception e){
			e.printStackTrace();
		}
		return conn;
		
	}


接下来就介绍一下JDBC的事务:

事务是并发控制的基本单位,一个操作序列,不可分割的整体。可以维护数据的完整性,永久性的对数据库进行修改。

事务的四个特征:

原子性:事务中包含的操作是一个逻辑单元,这些操作的执行状态是一样的。

一致性: 事务开始之前和事务结束以后数据库都处于一致性状态。数据的完整性约束没有被破坏。

隔离性: 对数据库进行修改的事务是彼此隔离的。事务是独立的,不会以任何形式 影响到其他事务。

持久性:事务完成之后对于事务的修改是永久的。

其中最大的优势就是我们可以利用事务回滚来保持数据的完整性。如下就是一个事务的调用,可以使得在对数据库的数据进行操作时保持数据的完整性。

public static void main(String[] args) {
		Connection conn = null;
		try {
			conn= getConnection();
			conn.setAutoCommit(false);
			
			insertUserData(conn);
			insertAddressData(conn);
			
			conn.commit();
		} catch (SQLException e) {
			System.out.println("=======捕获到SQL异常========");
			e.printStackTrace();
			
			try{
				conn.rollback();
				System.out.println("=======事务回滚成功=======");
			}catch(Exception e2){
				e2.printStackTrace();
			}finally {
				try {
					if(conn!=null) {
						conn.close();
					}
				}catch(Exception e3) {
					e3.printStackTrace();
				}
			}
		}
	}


连接上数据库之后,写一个CheckUserDao方法来执行登录校验的逻辑,调用数据库访问逻辑,来判断用户是否获取成功,成功的话则返回一个布尔值true,否则返回false。


接下来是写一个控制层的Servlet文件。这里调用CheckUserService的结果,将用户导航到不同的页面。登录成功进入success.jsp页面,登陆失败进入error.jsp页面。然后添加CheckServlet的配置信息。


    CheckServlet
    Servlet.CheckServlet
  
  
    CheckServlet
    /checkServelet
  

最后编写好前端的jsp文件即可。主要是三个页面,login.jsp文件,success.jsp页面以及 error.jsp页面

在写整个Servlet登录实例,我参考的是极客学院的相关教程

Servlet概述:http://www.jikexueyuan.com/course/584.html

Servlet编程实例:http://www.jikexueyuan.com/course/597.html

JDBC编程:http://www.jikexueyuan.com/course/487.html


当然,因为极客学院的教程用的是MySQL数据库,而我用的是SQL数据库,所以还参考了很多别的资料,就不一一列举。


你可能感兴趣的:(servlet)