JavaWeb实战之用Servlet+JDBC实现用户登录与注册
一、前言
使用到的技术栈:
(1)JDBC
(2)Servlet
(3)MySQL
二、准备工作
(1)书城用户数据库与表创建
(2)编写用户类对象JavaBean
(3)编写JdbcUtils对数据库进行交互(使用德鲁伊数据库连接池)
(4)编写web层
最终编写好的第二阶段登陆注册文件结构为
- dao中定义了基础的操作数据库代码,具体功能有
1.Insert、update、delete(修改)
2.查询一个对象(返回一个对象)
3.查询一个数组对象(数组返回多个对象)
4.返回某一个特定值对象(返回一个值)
- pojo中定义着与数据库用户表类
- service中定义着需要实现的用户业务
1.用户注册
2.用户登录
3.用户姓名查询
- test中编写对JDBC、UserDao、UserServiceImplTest的测试
- utils中编写JDBC工具类
1.获取数据库连接
2.关闭数据库连接
- web中编写两个Servlet程序
1.登录请求
2.注册请求
三、编写web层
(1)用户注册请求
使用Servlet进行注册表单处理,需要提前设置base标签为工程路径
- 在RegisterServlet类让它继承HttpServlet
- 重写doPost请求方法
- 在web.xml中配置Servlet与Servlet-mapping
- 在HTML页面表单action处配置操作,同时method为post请求
- 拿到表单中出现的用户信息,然后:
1.检查验证码是否正确(第一阶段写死验证码为abcd)
2.检查数据库中是否存在该用户姓名
可用,向数据库中进行注册同时跳转登录页面
不可用,再次跳转注册页面
以上的处理模块,借助在service中编写好的UserServiceImpl实现类进行实现,UserServiceImpl又借助了UserDao进行实现;
(2)用户登录
使用Servlet进行登录表单处理,也需要提前设置base标签为工程路径
- 在LoginServlet类让它继承HttpServlet
- 重写doPost请求方法
- 在web.xml中配置Servlet与Servlet-mapping
- 在HTML页面表单action处配置操作,同时method为post请求
- 拿到表单中出现的用户信息,然后:
1.获取HTML页面提交的表单
2.检查数据库中是否存在一个用户名与密码都与获取相同的对象
有,跳转成功页面
没有,提示用户输入错误,重新跳转登录页面
package wzy.web; import wzy.dao.UserDao; import wzy.pojo.User; import wzy.service.UserService; import wzy.service.impl.UserServiceImpl; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class loginServlet extends HttpServlet { private UserService userService = new UserServiceImpl(); @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 实现用户登录 String username = req.getParameter("username"); String password = req.getParameter("password"); User user = userService.login(new User(null, username, password, null)); if (user != null) { // 登陆成功 req.getRequestDispatcher("/pages/user/login_success.html").forward(req,resp); } else { // 登陆失败 req.getRequestDispatcher("/pages/user/login.html").forward(req,resp); } } }
package wzy.web; import wzy.pojo.User; import wzy.service.UserService; import wzy.service.impl.UserServiceImpl; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class RegisterServlet extends HttpServlet { private UserService userService = new UserServiceImpl(); @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String password = req.getParameter("password"); String email = req.getParameter("email"); String code = req.getParameter("code"); // 2、检查 验证码是否正确 === 写死,要求验证码为:abcde if (code.equalsIgnoreCase("abcde")){ // 3、检查 用户名是否可用 if (userService.existsUsername(username)){ System.out.println("用户名[" + username + "]已存在"); // 跳转到登陆页面 req.getRequestDispatcher("/pages/user/regist.html").forward(req,resp); }else { // 可用 userService.registerUser(new User(null,username,password,email)); req.getRequestDispatcher("/pages/user/regist_success.html").forward(req,resp); } }else { System.out.println("验证码 ["+code+"] 错误"); req.getRequestDispatcher("/pages/user/regist.html").forward(req,resp); } } }
到此这篇关于JavaWeb实战之用Servlet+JDBC实现用户登录与注册的文章就介绍到这了,更多相关JavaWeb实现用户登录与注册内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Springboot Thymeleaf实现HTML属性设置
这篇文章主要介绍了Springboot Thymeleaf实现HTML属性设置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2007-11-11Java Big Number操作BigInteger及BigDecimal类详解
这篇文章主要为大家介绍了Java Big Number操作BigInteger及BigDecimal类详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-07-07Java如何获取List<String>中的String详解
工作了这么长时间了,一直没有记录的习惯,以至于导致我即便是查过的东西总会忘记,下面这篇文章主要给大家介绍了关于Java如何获取List<String>中String的相关资料,需要的朋友可以参考下2022-02-02SpringMVC接收java.util.Date类型数据的2种方式小结
这篇文章主要介绍了使用SpringMVC接收java.util.Date类型数据的2种方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-08-08Springboot中com.mysql.cj.jdbc.Driver在yml文件中爆红的原因解读
这篇文章主要介绍了Springboot中com.mysql.cj.jdbc.Driver在yml文件中爆红的原因解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-05-05
最新评论