JavaWeb实现用户登录与注册 JavaWeb实战之用Servlet+JDBC实现用户登录与注册
油炸冰可乐 人气:0想了解JavaWeb实战之用Servlet+JDBC实现用户登录与注册的相关内容吗,油炸冰可乐在本文为您仔细讲解JavaWeb实现用户登录与注册的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:JavaWeb实现用户登录,JavaWeb实现用户注册,JavaWeb,Servlet,JavaWeb,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); } } }
加载全部内容