目录

案例需求

案例架构

开发工具

项目结构

需要的jar包

数据库表结构

案例实现

1、创建一个动态的web项目

2、创建前端页面login.html

3、创建User实体类(User中的属性名要和数据库中的字段名保持一致)

4、创建数据库连接工具类

5、创建Dao层(数据访问对象)

6、测试数据库是否连接成功

7、创建servlet

案例测试


案例需求

1、在浏览器中访问login.html页面,输入用户名以及密码;

2、以post的方式把数据提交到后台验证;

3、如果用户名和密码与数据库中的用户信息一致,则登陆成功,否者登陆失败,并在控制台打印相关信息;

案例架构

Servlet学习之简单登陆案例

开发工具

Eclipse、Tomcat

项目结构

Servlet学习之简单登陆案例

需要的jar包

Servlet学习之简单登陆案例

 

数据库表结构

Servlet学习之简单登陆案例

 

案例实现

1、创建一个动态的web项目

Servlet学习之简单登陆案例

Servlet学习之简单登陆案例

注: 1:项目名称,遵循驼峰命名法

        2:Tomcat版本,我上一篇博客写的很清楚哦!

        3:web版本,这里选择3.0

Servlet学习之简单登陆案例

创建项目成功

2、创建前端页面login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登陆</title>
</head>
<body>
	<form action="userLogin" method="post">
		<input type="text" placeholder="请输入用户名" name="username"><br>
		<input type="password" placeholder="请输入密码" name="password"><br>
		<input type="submit" value="提交"><br>
	</form>
</body>
</html>

3、创建User实体类(User中的属性名要和数据库中的字段名保持一致)

package com.java9.bean;

public class User {
	private int id;
	private String username;
	private String password;
	public User() {
		super();
	}
	
	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}

	public User(int id, String username, String password) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}
	
}

4、创建数据库连接工具类

在创建数据库连接工具类之前创建druid.properties文件,里面保存了数据库的连接信息,该文件放在src目录下面

driverClassName=com.mysql.jdbc.Driver    //数据库加载驱动

url=jdbc:mysql://localhost:3306/javatest    //连接数据库的名称

username=root                            //用户名

password=123456                    //密码

initialSize=5

maxActive=10

maxWait=3000

 数据库连接工具类

package com.java9.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

public class JDBCUtils {
	
	public static DataSource ds = null;
	
	static {
		
		try {
			
			Properties prop = new Properties();
			
			InputStream inStream =  JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");

			prop.load(inStream);
			
			ds = DruidDataSourceFactory.createDataSource(prop);
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection() throws SQLException {
		
		return ds.getConnection();
	}
	
	public static DataSource getDataSource() {
		return ds;
	}
}

5、创建Dao层(数据访问对象)

package com.java9.dao;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import com.java9.bean.User;
import com.java9.utils.JDBCUtils;

public class UserLoginDao {
	
	JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
	
	public User userLogin(User user) {
		
		try {
			String sql = "select * from user where username = ? and password = ?";	
		
			user = template.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class),user.getUsername(),user.getPassword());

		} catch (DataAccessException e) {
			// TODO Auto-generated catch block
			return null;
		}
	
		return user;
	}
}

6、测试数据库是否连接成功

package com.java9.test;

import org.junit.Test;

import com.java9.bean.User;
import com.java9.dao.UserLoginDao;

public class UserLoginTest {
	
	@Test
	public void userLogin() {
		
		User user = new User("zhangsan","123");
		
		UserLoginDao dao = new UserLoginDao();
		
		User userLogin = dao.userLogin(user);
		
		System.out.println(userLogin);
		
	}
}

7、创建servlet

UserLoginServlet.java

package com.java9.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.java9.bean.User;
import com.java9.dao.UserLoginDao;

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		User user = new User();
		
		user.setUsername(request.getParameter("username"));
		user.setPassword(request.getParameter("password"));
		
		System.out.println(user);
		
		UserLoginDao dao = new UserLoginDao();
		
		User userLogin = dao.userLogin(user);
		
		System.out.println(userLogin);
		
		if (userLogin == null) {
			
			request.getRequestDispatcher("/LoginFailure").forward(request, response);
		}else {
			request.setAttribute("user", user);
			request.getRequestDispatcher("/LoginSuccess").forward(request, response);
		}
	}

}

LoginSuccess.java 

package com.java9.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.java9.bean.User;

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		User user = (User) request.getAttribute("user");
		System.out.println("登陆成功!!!!欢迎"+user.getUsername()+"用户");
	}

}

LoginFailure.java

package com.java9.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;

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("登陆失败!!!!");
		request.getRequestDispatcher("login.html").forward(request, response);
	}

}

案例测试

前端输入用户信息(这里我们输入正确的数据),点击提交

Servlet学习之简单登陆案例

提交后,会将数据提交到后台

Servlet学习之简单登陆案例

我们到后台去查看是否登陆成功

Servlet学习之简单登陆案例

童鞋们可以测试下错误的登陆信息,加油!!!!!

相关文章: