Servlet实现登录注册

网友投稿 904 2022-11-01

Servlet实现登录注册

Servlet实现登录注册

1.注册页面register.html

注册页面

新用户注册

USER REGISTER

已有账户?立即登录

2.登录页面 login.html

userName:
password :

3.实体类

package cn.frame.domin;public class User { private String username; private String password; private String Email; private String name; private String tel; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return Email; } public void setEmail(String email) { Email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; }}

4.Dao层UserDao类

package cn.frame.dao;import cn.frame.domin.User;import java.sql.*;public class UserDao { private static final String driver="com.mysql.cj.jdbc.Driver"; private static final String url="jdbc:mysql://localhost:3306/rg_log?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false"; private static String username="root"; private static String password="hao20001010"; public static void insert(User user) throws SQLException { String sql="insert into rgister values(?,?,?,?,?)"; Connection connection = null; PreparedStatement statement = null; try { //加载驱动 Class.forName(driver); connection = DriverManager.getConnection(url, username, password); //创建预编译的Statement statement = connection.prepareStatement(sql); //设置参数 statement.setString(1,user.getUsername()); statement.setString(2,user.getPassword()); statement.setString(3,user.getEmail()); statement.setString(4,user.getName()); statement.setString(5,user.getTel()); statement.executeUpdate(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }finally { statement.close(); connection.close(); } } public boolean select(String username2,String password2) throws SQLException { Connection connection=null; Statement statement=null; String username1; String password1; String sql="select username,password from rgister"; try { ResultSet rs = null; Class.forName(driver); connection = DriverManager.getConnection(url, username, password); statement= connection.createStatement(); rs=statement.executeQuery(sql); while (rs.next()) { username1 = rs.getString("username"); password1 = rs.getString("password"); if (username1.equals(username2) && password1.equals(password2)) { return true; } } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { statement.close(); connection.close(); } return false; }}

5.Servlet控制层(RegistServlet类,LoginServlet类,FailServlet类,SuccessServlet类)

package cn.frame.web.servlet;import cn.frame.dao.UserDao;import cn.frame.domin.User;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.javax.servlet.javax.servlet.java.io.IOException;import java.sql.SQLException;@WebServlet("/register")public class RegistServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); String Email = request.getParameter("Email"); String name = request.getParameter("name"); String tel = request.getParameter("tel"); //SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); //Date date=format.parse(date); User user = new User(); user.setUsername(username); user.setPassword(password); user.setEmail(Email); user.setName(name); user.setTel(tel); try { UserDao.insert(user); } catch (SQLException e) { e.printStackTrace(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}

package cn.frame.web.servlet;import cn.frame.dao.UserDao;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.javax.servlet.javax.servlet.java.io.IOException;import java.sql.SQLException;@WebServlet("/login")public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); UserDao userDao=new UserDao(); try { if (userDao.select(username,password)){ request.getRequestDispatcher("/success").forward(request,response); }else { request.getRequestDispatcher("/fail").forward(request,response); } } catch (SQLException e) { e.printStackTrace(); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}

package cn.frame.web.servlet;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.javax.servlet.javax.servlet.java.io.IOException;@WebServlet("/fail")public class FailServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.getWriter().write("登录失败,用户名或密码错误"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}

package cn.frame.web.servlet;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.javax.servlet.javax.servlet.java.io.IOException;@WebServlet("/success")public class SuccessServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); response.getWriter().write("恭喜你登录成功!"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); }}

6、总结

第一步:编写前端页面代码(register.html,login.html) 第二步:编写代码实现与数据库的交互(UserDao类) 第三步:使用Servlet接收表单数据(RegistServlet类,LoginServlet类) 第五步:将图片中的分隔线去掉,对于注册,可以将Servlet接收的数据封装到实体类User中,然后调用Dao层类中编写的insert()方法集合即可;对于登录可以通过调用Dao层类中编写的select()方法与接收的表单数据进行比对即可 重点在于第五步的使用

所用的技术: Servlet、JDBC

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:动态代理-JDK
下一篇:spring-基于xml的aop开发-快速入门
相关文章

 发表评论

暂时没有评论,来抢沙发吧~