目录
3、创建User实体类(User中的属性名要和数据库中的字段名保持一致)
案例需求
1、在浏览器中访问login.html页面,输入用户名以及密码;
2、以post的方式把数据提交到后台验证;
3、如果用户名和密码与数据库中的用户信息一致,则登陆成功,否者登陆失败,并在控制台打印相关信息;
案例架构
开发工具
Eclipse、Tomcat
项目结构
需要的jar包
数据库表结构
案例实现
1、创建一个动态的web项目
注: 1:项目名称,遵循驼峰命名法
2:Tomcat版本,我上一篇博客写的很清楚哦!
3:web版本,这里选择3.0
创建项目成功
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);
}
}
案例测试
前端输入用户信息(这里我们输入正确的数据),点击提交
提交后,会将数据提交到后台
我们到后台去查看是否登陆成功
童鞋们可以测试下错误的登陆信息,加油!!!!!