Sevlet用户登录项目分析:
- 首先创建表:
CREATE TABLE User(
id INT primary key,
name VARCHAR(50),
pwd VARCHAR(50)
);
- 其次创建ORM的关系映射
package com.it4.domain;
public class User {
Integer id;
String name;
String pwd;
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
- 再次创建一个静态页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>用户登录</h3>
<form action="http://localhost:8080/Mypro17-Servlet/LoginServlet" method="get">
<h5>用户名:</h5>
<input type="text" placeholder="请输入用户名" name="username"><br/>
<h5>密 码:</h5>
<input type="text" placeholder="请输入密码" name="pwd"><br/>
<!-- submit提交 -->
<br/><input type="submit" value="登录">
</form>
</body>
</html>
- 最后在服务器里创建相应的操作
-
编写一个web.xml的文件
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="false"> <absolute-ordering/> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
-
获取请求参数
package com.it4.login; 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; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取请求参数 String name = request.getParameter("username"); String pwd = request.getParameter("pwd"); System.out.println("name"+name+" pwd"+pwd);
-
使用dbutils链接到数据库当中
-
导入三个jar包分别是:
-
编写一个配置文件db.properties,用于与数据进行链接:
url=jdbc:mysql://localhost:3306/servlet_db?serverTimezone=UTC username=root password=1234 driverClassName=com.mysql.cj.jdbc.Driver
-
创建一个JDBCUitl类。
这个类主要是:
1.加载配置文件
2.获取数据源
3.链接数据库
4.释放资源
package com.it4.util; import java.io.FileInputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.Properties; import javax.sql.DataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; public class JDBCUtil { //使用配置文件进行链接 public static DataSource ds = null; static { try { //1.加载配置文件 Properties p = new Properties(); //获取字节码的目录 String path = JDBCUtil.class.getClassLoader().getResource("db.properties").getPath(); System.out.println(path); FileInputStream in = new FileInputStream(path); p.load(in); ds = DruidDataSourceFactory.createDataSource(p); } catch (Exception e) { e.printStackTrace(); } } //2.获取数据源 public static DataSource getDataSource() { return ds; } public static Connection getConn() { try { //3.链接数据库 return ds.getConnection(); } catch (Exception e) { e.printStackTrace(); } return null; } public static void close(Connection conn,Statement st,ResultSet rs) { //4.释放资源 if (rs !=null) { try { rs.close(); } catch (Exception e) { e.printStackTrace(); } } if (st!=null) { try { st.close(); } catch (Exception e) { e.printStackTrace(); } } if (conn!=null) { try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } }
- 使用dbutils链接到数据库当中
package com.it4.login; import java.io.IOException; import java.sql.SQLException; 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 org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import com.it4.domain.User; import com.it4.util.JDBCUtil; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取请求参数 String name = request.getParameter("username"); String pwd = request.getParameter("pwd"); System.out.println("name"+name+" pwd"+pwd); //2.使用dbutils链接到数据库当中 //获取数据源getDataSource QueryRunner qr = new QueryRunner(JDBCUtil.getDataSource()); String sql="select * from user where name=? and pwd=?"; //sql语句与结果集处理器 User user=null; try { user = qr.query(sql, new BeanHandler<User>(User.class),name,pwd); } catch (SQLException e) { e.printStackTrace(); }
- 检查用户名与密码是否正确以及登录成功与登录失败
package com.it4.login; import java.io.IOException; import java.sql.SQLException; 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 org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import com.it4.domain.User; import com.it4.util.JDBCUtil; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.获取请求参数 String name = request.getParameter("username"); String pwd = request.getParameter("pwd"); System.out.println("name"+name+" pwd"+pwd); //2.使用dbutils链接到数据库当中 //获取数据源getDataSource QueryRunner qr = new QueryRunner(JDBCUtil.getDataSource()); String sql="select * from user where name=? and pwd=?"; //sql语句与结果集处理器 User user=null; try { user = qr.query(sql, new BeanHandler<User>(User.class),name,pwd); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //3.检查用户名与密码是否正确 if (user!=null) { //4.登录成功,显示用户信息 response.getWriter().write("login success ="+ user.getName()); }else { //5.登录失败给一个错误提示 response.getWriter().write("login fail"); } } }
-
-
三个jar包的下载地址:
DbUtils-1.7.jar包:
https://blog.csdn.net/Falling_stars_/article/details/107774630
mysql-connector-java-8.0.20.jar包:
https://blog.csdn.net/Falling_stars_/article/details/107774702
druid-1.1.23.jar包:
https://blog.csdn.net/Falling_stars_/article/details/107774717