JDBC+Servlet+JSP+Mysql寫的一個簡單的登錄註冊

一.代碼的結構:

二.用到的開發工具:

         ecliopse、tomcat 7.0、navicat for mysql

       用到的架包:

        mysql-connector-java-5.1.25-bin.jar

三.開發的代碼:

3.1 User類:

package com.demo.bean;

public class User {
    private Integer id;
    private String name;
    private String password;
    private int role;
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public int getRole() {
		return role;
	}
	public void setRole(int role) {
		this.role = role;
	}   
}

3.2 JdbcUtils代碼:

package com.demo.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;


public class JdbcUtils {
   //註冊驅動的工具類
	
	private static String url = null;
	
	private static String user = null;
	
	private static String  password = null;
	
	private static String  dv = null;
	
	static{
		
	   Properties  prop = new Properties();
	   
	   
	   InputStream in = JdbcUtils.class.getResourceAsStream("/a.properties");
	   
	   try {
		prop.load(in);
		
		url  = prop.getProperty("url");
		user = prop.getProperty("user");
		
		password = prop.getProperty("123456");
		
		dv = prop.getProperty("driver");
		
		/*System.out.println("url:"+url);*/
		
		
		//註冊驅動
		  try {
			Class.forName(dv);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
			
	}
	
	

	//獲取連接對象
	public static  Connection getCon() throws SQLException{
		 Connection conn = null;
		 
		 conn = (Connection) DriverManager.getConnection(url, user, password);
		 
		 return  conn;
	}
	
	//關閉的方法
	public static void close(Statement statement,Connection conn){
		   if(statement !=null){
			   try {
				statement.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		   }
		   
		   if(conn !=null){
			   try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		   }
	}
		
	//關閉的方法
		public static void close(PreparedStatement preparedStatement,Connection conn,ResultSet resultSet){
			   if(preparedStatement !=null){
				   try {
					preparedStatement.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			   }
			   
			   if(conn !=null){
				   try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			   }
			   
			   if(resultSet!=null){
				   try {
					resultSet.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			  }
	}
}



3.3 Login.jsp

  

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>登錄界面</title> 
 <style type="text/css">
 	body{
 	    background-image:url(images/timg.jpg);
 	    background-position:center;
            background-repeat:no-repeat;
 	  }
 	
 </style>
  </head>  
    
  <body>  
  <div style="text-align:center;margin-top:120px">  
    <h2>小星的主頁</h2>  
    <form action="LoginServlet" method="post">  
        <table style="margin-left:40%">  
             <marquee width="200"scrolldelay="250">用戶登錄</marquee> 
 
            <tr>  
                <td>登錄名:</td>  
                <td><input name="username" type="text" size="21"></td>  
            </tr>  
            <tr>  
                <td>密碼:</td>  
                <td><input name="password" type="password" size="21"></td>  
            </tr>  
        </table>   
        <input type="submit" value="登錄">  
        <input type="reset" value="重置">   
    </form>  
    <br>  
    <a href="register.jsp">註冊</a>  
    </div>  
  </body>  
</html>  
3.4 LoginServlet代碼

package com.demo.service;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.demo.bean.User;
import com.demo.dao.UserDAO;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	     doPost(request, response);
	   }  
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		UserDAO userDAO=new UserDAO(); 
		User user=userDAO.login(username, password);
		if(user!=null){
			request.getRequestDispatcher("success.jsp").forward(request, response);;
		}else{
			request.getRequestDispatcher("error.jsp").forward(request, response);
		}
		
		
	}
}
3.5 UserDAO代碼:

package com.demo.dao;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.demo.bean.User;
import com.demo.utils.JdbcUtils;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;


public class UserDAO { 
	//數據庫連接對象
	public  User  login(String username,String password) {
	   User u=null;
	   Connection connection =null;
	   PreparedStatement pstmt=null;
	   ResultSet resultSet=null;

	  //賦值
	  try {
		connection=JdbcUtils.getCon();
		  //靜態sql語句
		String sql = "select * from user where name=? and password=?"; 
	    pstmt = (PreparedStatement) connection.prepareStatement(sql);
		pstmt.setString(1, username);
		pstmt.setString(2, password);  
		resultSet = pstmt.executeQuery();
		if(resultSet.next()){
			u=new User();
			u.setName(resultSet.getString("name"));
			u.setPassword(resultSet.getString("password"));
			System.out.println("登錄成功!");
		}else{
			System.out.println("用戶名或者密碼錯誤!");
		}  
	} catch (SQLException e) {
		e.printStackTrace();
	}finally {	
	   JdbcUtils.close(pstmt, connection);	
	}
	 return u;

}
	public void addUser(User user) {
		Connection connection = null;
		PreparedStatement psmt = null;
		try {
			 connection = JdbcUtils.getCon();
			 
			 String sql  ="insert into user(id,name,password,role)values(?,?,?,?);";
			 
			 psmt = (PreparedStatement) connection.prepareStatement(sql);
			 
			 //運用實體對象進行參數賦值
			 psmt.setInt(1, user.getId());
			 psmt.setString(2, user.getName());
			 psmt.setString(3,user.getPassword());
			 psmt.setInt(4, user.getRole());
			 psmt.executeUpdate();		 
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			 JdbcUtils.close(psmt, connection);
		}
	}	
	}

     
    

3.6 Register.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>註冊界面</title>  
    <style type="text/css">
 	body{
 		background-image:url(images/tim.jpg);
 		background-position:center;
        background-repeat:no-repeat;
 	}
 	
 </style>
  </head>      
  <body>  
  <div style="text-align:center;margin-top:120px">  
    <h1 >請註冊</h1>  
    <form action="RegisterServlet" method="post">  
        <table style="margin-left:40%">  
            <caption>用戶註冊</caption>  
            <tr>  
                <td>ID:</td>  
                <td><input name="id" type="text" size="20"></td>  
            </tr>  
            <tr>  
                <td>登錄名:</td>  
                <td><input name="name" type="text" size="20"></td>  
            </tr>  
            <tr>  
                <td>密碼:</td>  
                <td><input name="password" type="password" size="20"></td>  
            </tr>  
             <tr>  
                <td>角色:</td>  
                <td><input name="role" type="text" size="20"></td>  
            </tr>  
        </table>   
        <input type="submit" value="註冊">  
        <input type="reset" value="重置">   
    </form>  
    <br>  
    <a href="login.jsp">登錄</a>  
    </div>  
  </body>  
</html>

3.7 RegisterServlet代碼:

package com.demo.service;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.demo.bean.User;
import com.demo.dao.UserDAO;

/**
 * Servlet implementation class RegisterServlet
 */
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
			doPut(request, response);
     }  
	

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");	
		request.setCharacterEncoding("utf-8");  
         int id=Integer.valueOf(request.getParameter("id"));  
         String name=request.getParameter("name");  
         String password=request.getParameter("password");
         int role=Integer.valueOf(request.getParameter("role"));
         User user=new User();
         user.setId(id);
         user.setName(name);
         user.setPassword(password);
         user.setRole(role);
         UserDAO userDAO=new UserDAO(); 
         userDAO.addUser(user);
         System.out.println("註冊成功");
         request.getRequestDispatcher("login.jsp").forward(request, response);
	}
}
    

3.8 數據庫表:

 

  四.頁面的效果:

    4.1登錄界面:

    

   4.2 註冊頁面:

    


 



發佈了43 篇原創文章 · 獲贊 24 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章