<%@ 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=UTF-8">
<title>用户登陆页面</title>
<style type="text/css">
h1{text-align:left;}
h4{text-align:left;color:red;}
body{background:url(images/1.png)}
a{text-decoration:none;font-size:20px;color:black;}
a:hover{text-decoration:underline;font-size:24px;color:red;}
</style></head>
<body>
<form action="user/userlogin" method="post">
    <h1>用户登陆页面</h1>
    <h4>装饰中......</h4>    
    <hr/>
    <table align="left">
        <tr>
            <td>账号:</td>
            <td><input type="text" name="name" id="name"></td>
        </tr>
        <tr>
            <td>密码:</td>
            <td><input type="password" name="password" id="password"></td>
        </tr>
        <tr>
            <td colspan="1">
            </td>
            <td>
                <input type="submit" value="登陆"/>
                <input type="reset" value="重置"/>
                <a href="register.jsp" target="_blank">注册</a>
            </td>
        </tr>
    </table>
</form>
</body>
</html>package com.bie.dao;import com.bie.po.User;/** 
* @author BieHongLi 
* @version 创建时间:2017年2月21日 上午10:38:40 
* 创建一个接口用于声明用户登陆注册的方法
*/
public interface UserDao {    /***
     * 用户登陆的方法声明
     * @param user
     * @return
     */
    public User login(User user);
    
    /***
     * 用户注册的方法声明
     * @param user
     * @return
     */
    public boolean register(User user);
}
package com.bie.dao.impl;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.bie.dao.UserDao;
import com.bie.po.User;
import com.bie.utils.BaseDao;/** 
* @author BieHongLi 
* @version 创建时间:2017年2月21日 上午10:38:56 

*/
public class UserDaoImpl implements UserDao{    @Override
    public User login(User user) {
        Connection con=null;
        PreparedStatement ps=null;
        ResultSet rs=null;
        try {
            con=BaseDao.getCon();//1:获取数据库的连接
            //2:书写sql语句
            String sql="select * from user where name=? and password=? ";
            ps=con.prepareStatement(sql);//3:预编译
            //4:设置值
            ps.setString(1, user.getName());
            ps.setString(2, user.getPassword());
            rs=ps.executeQuery();//5:执行sql语句
            User users=null;
            if(rs.next()){
                users=new User();
                //从数据库中获取值设置到实体类的setter方法中
                users.setId(rs.getInt("id"));
                users.setName(rs.getString("name"));
                users.setPassword(rs.getString("password"));
                users.setEmail(rs.getString("email"));
                users.setPhone(rs.getString("phone"));
                
                return user;
            }else{
                return null;
            }
            
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }    /***
     * 插入的方法,即注册
     */
    @Override
    public boolean register(User user) {
        String sql="insert into user values(0,?,?,?,?) ";
        List<Object> list=new ArrayList<Object>();
        list.add(user.getName());
        list.add(user.getPassword());
        list.add(user.getEmail());
        list.add(user.getPhone());
        
        boolean flag=BaseDao.addUpdateDelete(sql,list.toArray());
        if(flag){
            return true;
        }else{
            return false;
        }
    }    
}package com.bie.servlet;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.bie.dao.UserDao;
import com.bie.dao.impl.UserDaoImpl;
import com.bie.po.User;
/** 
* @author BieHongLi 
* @version 创建时间:2017年2月21日 上午10:49:44 

*/
@WebServlet("/user/userlogin")
public class UserLoginServlet extends HttpServlet{
    
    private static final long serialVersionUID = 1L;    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        this.doPost(request, response);
    }    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        User user=new User();
        //获取login.jsp页面提交的账号和密码
        String name=request.getParameter("name");
        String password=request.getParameter("password");
        //测试数据
        System.out.println(name+" "+password);
        //获取login.jsp页面提交的账号和密码设置到实体类User中
        user.setName(name);
        user.setPassword(password);
        
        //引入数据交互层
        UserDao dao=new UserDaoImpl();
        User us=dao.login(user);
        //测试返回的值
        System.out.println(us);
        if(us!=null){
            request.setAttribute("info", "登陆成功");
        }else{
            request.setAttribute("info", "登录失败");
        }
        
        request.getRequestDispatcher("/index/info.jsp").forward(request, response);
    }
    
    
    
}
package com.bie.utils;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
/** 
* @author BieHongLi 
* @version 创建时间:2017年2月21日 上午10:01:14 
* 数据交互层dao层
*/
public class BaseDao {    private static String driver="com.mysql.jdbc.Driver";//数据库驱动
    private static String url="jdbc:mysql://localhost:8080/test";//数据库路径,找到对应的数据库
    private static String user="root";//数据库账号
    private static String password="123456";//数据库密码
    
    static{
        driver=ResourceBundle.getBundle("db").getString("driver");
        url=ResourceBundle.getBundle("db").getString("url");
        user=ResourceBundle.getBundle("db").getString("user");
        password=ResourceBundle.getBundle("db").getString("password");
    }
    /*private static String driver="com.mysql.jdbc.Driver";
    private static String url="jdbc:mysql:///test";
    private static String user="root";
    private static String password="123456";*/
    
    /***
     * 连接数据库的方法
     * @return
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public static Connection getCon() throws ClassNotFoundException, SQLException{
        Class.forName(driver);//加载数据库驱动
        System.out.println("测试加载数据库成功");
        Connection con=DriverManager.getConnection(url, user, password);
        System.out.println("测试数据库链接成功");
        return con;
    }
    
    /***
     * 关闭数据库的方法
     * @param con
     * @param ps
     * @param rs
     */
    public static void close(Connection con,PreparedStatement ps,ResultSet rs){
        if(rs!=null){//关闭资源,避免出现异常
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    
    /***
     * 同意增删改的方法
     * @param sql
     * @param arr
     * @return
     */
    public static boolean addUpdateDelete(String sql,Object[] arr){
        Connection con=null;
        PreparedStatement ps=null;
        try {
            con=BaseDao.getCon();//第一步 :连接数据库的操作
            ps=con.prepareStatement(sql);//第二步:预编译
            //第三步:设置值
            if(arr!=null && arr.length!=0){
                for(int i=0;i<arr.length;i++){
                    ps.setObject(i+1, arr[i]);
                }
            }
            int count=ps.executeUpdate();//第四步:执行sql语句
            if(count>0){
                return true;
            }else{
                return false;
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return false;
    }
    
   /* public static void main(String[] args) {
        try {
            BaseDao.getCon();
            System.out.println("测试数据库链接成功");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }*/
    
    
}