Javaweb初学

您所在的位置:网站首页 jsp怎么做注册登录界面 Javaweb初学

Javaweb初学

2024-01-26 09:57| 来源: 网络整理| 查看: 265

@【JSP+Servlet+JDBC】登录注册

**登录页面设计** 1,数据库设计与连接 user表, 2,前端设计 登录页面 login.jsp yes --->success.jsp no ---->error.jsp 注册页面 register.jsp yes --->success.jsp no ---->error.jsp 3,后端设计 登录--->loginServlet.java 注册--->rigsterServlet.java

效果展示

在这里插入图片描述 在这里插入图片描述

页面十分简单,主要是我为了学习http与后端以及数据库连接。

1,数据库连接

1.注册驱动: Class.forName("com.mysql.jdbc.Driver"); 2.获取连接

Connection con = DriverManager.getConnection(url , username , password ) ;

3.创建一个preparedStatement

PreparedStatement pstmt = con.prepareStatement(sql) ;

4.执行SQL语句

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;

JDBCUtils.java

package com.company.utils; import java.io.IOException; import java.io.InputStream; import java.sql.*; import java.util.Properties; public class JDBCUtils { public JDBCUtils(){} private static String driverClass; private static String url; private static String username; private static String passward; private static Connection con; static { try { InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("config.properties"); Properties prop = new Properties(); prop.load(is); driverClass = prop.getProperty("driverClass"); url = prop.getProperty("url"); username = prop.getProperty("username"); passward = prop.getProperty("password"); Class.forName(driverClass); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection(){ try { con = DriverManager.getConnection(url,username,passward); } catch (SQLException e) { e.printStackTrace(); } return con; } public static void close(Connection con, Statement sta, ResultSet rs){ if (con != null){ try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } if (sta != null){ try { sta.close(); } catch (SQLException e) { e.printStackTrace(); } } if (rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Connection con, Statement sta){ if (con != null){ try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } if (sta != null){ try { sta.close(); } catch (SQLException e) { e.printStackTrace(); } } } }

配置文件config.properties 用来存放自己的数据库连接信息

driverClass = com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/studentmanger username = root password = root

之后在UserDao类调用JDBCUtils方法就可以实现连接数据库,对数据库进行增删改查。

**

2.前端页面设计

** login.jsp

登录 账号: 密码: 没有账号,点击注册

Register.jsp

注册页面 账号: 密码:

前端页面通过action="xxxServlet"连接后端,对登录和注册分别进行处理。

3.后端servlet

后端总共包括bean层、Dao层、servlet层。(因为功能比较简单,省略了service层) 在这里插入图片描述

bean层:定义User类 User.java

package com.company.bean; public class User { private Integer id; private String username; private String password; public User() { } public User(Integer id, String username, String password) { this.id = id; this.username = username; this.password = password; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } 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; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }

Dao层:BaseDao+UserDao BaseDao:一个接口,Basedao里写泛用性较强的抽象方法,比如数据库的增删改查,其他dao层接口继承basedao,对方法进行重写,可减少代码的重复,以追求高内聚低耦合。 BaseDao.java

package com.company.dao; import java.util.List; public BaseDao { public boolean add(E e); public void delete(E e); public void update(E e); public boolean findbone(String username, String passward); public List findall(); }

UserDao.java 继承BaesDao方法,增删改查方法(只写了部分会用到的,部分没写)

package com.company.dao; import com.company.bean.User; import com.company.utils.JDBCUtils; import java.sql.*; import java.util.ArrayList; import java.util.List; public class UserDao implements BaseDao{ JDBCUtils jdb = new JDBCUtils(); @Override public boolean add(User user) { Connection con = null; PreparedStatement stat = null; int i = 0; try{ con = JDBCUtils.getConnection(); stat = con.prepareStatement("INSERT INTO user VALUES(?,?,?)"); stat.setString(1,null); stat.setString(2, user.getUsername()); stat.setString(3, user.getPassword()); i = stat.executeUpdate(); System.out.println(i); }catch (Exception e){ e.printStackTrace(); }finally { JDBCUtils.close(con, stat); } if(i>0){ return true; }else { return false; } } @Override public void delete(User user) { Connection con = null; Statement stat = null; try{ con = JDBCUtils.getConnection(); stat = con.createStatement(); String sql = "DELETE FROM user WHERE id='"+user.getId()+"'"; stat.executeUpdate(sql); }catch (Exception e){ e.printStackTrace(); }finally { JDBCUtils.close(con, stat); } } @Override public void update(User o) { } @Override public boolean findbone(String username, String passward) { Connection con = null; PreparedStatement stat = null; ResultSet rs = null; boolean result = false; try { con = JDBCUtils.getConnection(); stat = con.prepareStatement("SELECT *FROM user WHERE username = ? and passward = ?"); stat.setString(1, username); stat.setString(2, passward); rs = stat.executeQuery(); if (rs.next()) { result = true; } else { result = false; } } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.close(con, stat, rs); } return result; } @Override public List findall() { Connection con = null; Statement stat = null; ResultSet rs = null; ArrayList list = new ArrayList(); try{ con = JDBCUtils.getConnection(); stat = con.createStatement(); String sql = "SELECT *FROM user"; rs = stat.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); User user = new User(id, name,null); list.add(user); } }catch (Exception e){ e.printStackTrace(); }finally { JDBCUtils.close(con, stat, rs); } return list; } }

servlet层 LoginServlet.java

package com.company.servlet; import com.company.dao.UserDao; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "LoginServlet", value = "/LoginServlet") public class LoginServlet extends HttpServlet { UserDao userDao = new UserDao(); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String passward = request.getParameter("passward"); System.out.println(passward); System.out.println(username); if(userDao.findbone(username,passward)){ response.sendRedirect(request.getContextPath()+"/success.jsp"); }else{ response.sendRedirect(request.getContextPath()+"/error.jsp"); } } }

Register.java

package com.company.servlet; import com.company.bean.User; import com.company.dao.UserDao; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; @WebServlet(name = "RegisterServlet", value = "/RegisterServlet") public class RegisterServlet extends HttpServlet { UserDao userDao = new UserDao(); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String passward = request.getParameter("passward"); User user = new User(null,username,passward); if(userDao.add(user)){ response.sendRedirect(request.getContextPath()+"/success.jsp"); System.out.println("用户注册成功"); }else{ response.sendRedirect(request.getContextPath()+"/error.jsp"); System.out.println("用户注册失败"); } } }

结束了,欢迎大家积极提出建议,一起讨论。 在这里插入图片描述 https://pan.baidu.com/s/12FoLk1iNO9N4VwveCnVRsA?pwd=ad3f 提取码:ad3f



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3