用户登录案例需求:
- 编写login.html登录页面
username & password 两个输入框 - 使用Druid数据库连接池技术,操作mysql,day14数据库中user表
- 使用JdbcTemplate技术封装JDBC
- 登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您
- 登录失败跳转到FailServlet展示:登录失败,用户名或密码错误
案例要求:就是在登陆页面输入用户名和密码,然后到后台数据库去匹配,如果有则显示登陆成功,没有则登陆失败。
思想:
1、首先编写login.html登陆页面在web包下,包括用户名、密码、登陆按钮
2、创建一个User表,填写一些数据
3、用户通过login页面提交信息,到Servlet(这里定义为LoginServlet)
1、设置编码(UTF-8)
2、获取username和password
3、将username和password封装成一个User对象(因为操作数据库的动作,相对来说是一个独立的过程,一般不会放在Servlet中执行,会用一个单独的类来完成数据的连接(这里定义为UserDao),这个类里面就定义一些方法,判断是不是对的)
4、调用UserDao的login方法查询,获取返回值User对象
使用Druid数据库连接池,操作mysql;使用JDBCTemplate封装JDBC
5、判断User是否为null,
是:登陆失败—>FailServlet
否:登陆成功:将用户信息存起来request域,转发SuccessServlet
使用JDBCTemplate封装JDBC的步骤
1.导入jar包
2.创建JdbcTemplate对象。依赖于数据源DataSource
JdbcTemplate template = new JdbcTemplate(ds);
3.调用JdbcTemplate的方法来完成CRUD的操作
出错:
解决:
Userdao.java
改为
改后不报错:
但是不管是输入的用户名和密码正确与否都会出现:
检查user的获取情况,发现Userdao.java里的返回的总是null
解决:
login.html,没有设置name属性,所以找不到
<form action="/day15/loginServlet" method="post">
用户名:<input type="text" placeholder="请输入用户名" name="username"><br>
密码:<input type="text" placeholder="请输入密码" name="password"><br>
<input type="submit" value="提交" >
</form>
OK啦啦啦