黑马程序员IDEA版JAVA基础班\JavaWeb部分视频\2-10Request和Response\第5节 request登录案例
程序员文章站
2022-05-18 20:53:58
用户登录案例需求: 1.编写login.html登录页面 username & password 两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表 3.使用JdbcTemplate技术封装JDBC 4.登录成功跳转到SuccessServlet展示:登录成 ......
用户登录案例需求:
1.编写login.html登录页面
username & password 两个输入框
2.使用druid数据库连接池技术,操作mysql,day14数据库中user表
3.使用jdbctemplate技术封装jdbc
4.登录成功跳转到successservlet展示:登录成功!用户名,欢迎您
5.登录失败跳转到failservlet展示:登录失败,用户名或密码错误登录案例分析:
1. 创建项目,导入html页面,配置文件,jar包
1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <title>title</title> 6 </head> 7 <body> 8 <form action="" method="post"> 9 用户名:<input type="text" name="username"> <br> 10 密码:<input type="password" name="password"><br> 11 12 <input type="submit" value="登录"> 13 14 </form> 15 </body> 16 </html>
把login.html复制到web文件夹中。
把druid的配置文件复制到src文件夹中。
driverclassname=com.mysql.cj.jdbc.driver url=jdbc:mysql://localhost:3306/day14?characterencoding=utf-8&servertimezone=gmt%2b8 username=root password=root initialsize=5 maxactive=10 maxwait=3000 minidle=1
项目依赖的.jar包文件放在lib文件夹中,全部一起复制到新建的web-inf文件里。
【单元测试】junit-4.12使用报java.lang.noclassdeffounderror: org/hamcrest/selfdescribing错误
所以现在有两个办法解决: 1.junit版本降到4.10 2.导入hamcrest-core-1.3.jar
2. 创建数据库环境
mysql本地已经安装配置好8.0.17版本,图形化操作软件使用navicat12。
create database day14; use day14; create table user( id int primary key auto_increment, username varchar(32) unique not null, password varchar(32) not null );
3. 创建包cn.itcast.domain,创建类user
4. 创建包cn.itcast.util,编写工具类jdbcutils
1 package cn.itcast.util; 2 3 import com.alibaba.druid.pool.druiddatasourcefactory; 4 5 import javax.sql.datasource; 6 import java.io.ioexception; 7 import java.io.inputstream; 8 import java.sql.connection; 9 import java.sql.sqlexception; 10 import java.util.properties; 11 12 13 /** 14 * jdbc工具类 使用durid连接池 15 */ 16 public class jdbcutils { 17 18 private static datasource ds ; 19 20 static { 21 22 try { 23 //1.加载配置文件 24 properties pro = new properties(); 25 //使用classloader加载配置文件,获取字节输入流 26 inputstream is = jdbcutils.class.getclassloader().getresourceasstream("druid.properties"); 27 pro.load(is); 28 29 //2.初始化连接池对象 30 ds = druiddatasourcefactory.createdatasource(pro); 31 32 } catch (ioexception e) { 33 e.printstacktrace(); 34 } catch (exception e) { 35 e.printstacktrace(); 36 } 37 } 38 39 /** 40 * 获取连接池对象 41 */ 42 public static datasource getdatasource(){ 43 return ds; 44 } 45 46 47 /** 48 * 获取连接connection对象 49 */ 50 public static connection getconnection() throws sqlexception { 51 return ds.getconnection(); 52 } 53 }
5. 创建包cn.itcast.dao,创建类userdao,提供login方法
1 package cn.itcast.dao; 2 3 import cn.itcast.domian.user; 4 import cn.itcast.util.jdbcutils; 5 import org.springframework.dao.dataaccessexception; 6 import org.springframework.jdbc.core.beanpropertyrowmapper; 7 import org.springframework.jdbc.core.jdbctemplate; 8 9 /** 10 * 操作数据库中user表的类 11 */ 12 public class userdao { 13 14 //声明jdbctemplate对象共用 15 private jdbctemplate template = new jdbctemplate(jdbcutils.getdatasource()); 16 17 /** 18 * 登录方法 19 * @param loginuser 只有用户名和密码 20 * @return user包含用户全部数据,没有查询到,返回null 21 */ 22 public user login(user loginuser){ 23 try { 24 //1.编写sql 25 string sql = "select * from user where username = ? and password = ?"; 26 //2.调用query方法 27 user user = template.queryforobject(sql, 28 new beanpropertyrowmapper<user>(user.class), 29 loginuser.getusername(), loginuser.getpassword()); 30 31 32 return user; 33 } catch (dataaccessexception e) { 34 e.printstacktrace();//记录日志 35 return null; 36 } 37 } 38 }编写测试类,检测数据库连接池的响应。
1 package cn.itcast.test; 2 3 import cn.itcast.dao.userdao; 4 import cn.itcast.domian.user; 5 import org.junit.test; 6 7 public class userdaotest { 8 9 10 11 @test 12 public void testlogin(){ 13 user loginuser = new user(); 14 loginuser.setusername("superbaby"); 15 loginuser.setpassword("123"); 16 17 18 userdao dao = new userdao(); 19 user user = dao.login(loginuser); 20 21 system.out.println(user); 22 } 23 }
okey
上一篇: Python 入门之 软件开发规范