Servlet实现登录注册
生活随笔
收集整理的這篇文章主要介紹了
Servlet实现登录注册
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.注冊頁面register.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>注冊頁面</title><script type="text/javascript">function sub(){alert("注冊成功!");}</script><style>*{margin: 0px;padding: 0px;box-sizing: border-box;}body{background: url("img/timg.jpg") no-repeat center;background-size: 100%;}.rg_layout{width: 900px;height: 620px;border: 5px solid #F3E2A9;background-color: white;/* 讓div水平居中*/margin: auto;margin-top: 15px;}.rg_left{float: left;margin: 20px;}.rg_left > p:first-child{color: #FFBF00;font-size: 20px;}.rg_left>p:last-child{color: #A4A4A4;font-size: 20px;}.rg_center{float: left;width: 500px;}.rg_right{float: right;margin:20px;}.rg_right p{font-size:13px;}.rg_right p a{color: #FFBF00;}.td_left{width: 100px;text-align: right;height: 30px;}.td_right{padding: 20px;}#username,#password,#Email,#name,#tel,#checked{width: 250px;height: 30px;border:1px solid #A4A4A4 ;border-radius:5px;padding-left:8px;}/*#checked{*//* width: 120px;*//*}*//*#img_check{*//* height:30px;*//* vertical-align: middle;*//*}*/#btn_sub{width: 100px;height: 30px;background-color: #0080FF;border: 1px solid #0080FF;}</style> </head> <body> <div class="rg_layout"><div class="rg_left"><p>新用戶注冊</p><p>USER REGISTER</p></div><div class="rg_center"><div class="rg_form"><form action="/register" method="post"><table><tr><td class="td_left"><label for="username">用戶名</label></td><td class="td_right"><input type="text" name="username" id="username" placeholder="請輸入用戶名"></td></tr><tr><td class="td_left"><label for="password">密碼</label></td><td class="td_right"><input type="password" name="password" id="password" placeholder="請輸入密碼"></td></tr><tr><td class="td_left"><label for="Email">郵箱</label></td><td class="td_right"><input type="email" name="Email" id="Email" placeholder="請輸入郵箱"></td></tr><tr><td class="td_left"><label for="name">姓名</label></td><td class="td_right"><input type="text" name="name" id="name" placeholder="請輸入真實姓名"></td></tr><tr><td class="td_left"><label for="tel">手機號</label></td><td class="td_right"><input type="number" name="tel" id="tel" placeholder="請輸入手機號"></td></tr><tr><td colspan="2" align="center"><input type="submit" id="btn_sub" value="注冊" onclick="sub()"></td></tr></table></form></div></div><div class="rg_right"><p>已有賬戶?<a href="login.html">立即登錄</a></p></div> </div> </body>2.登錄頁面 login.html
<!DOCTYPE html> <html> <head><meta charset="utf-8"><title></title><style type="text/css">* {margin: 0px;}body{background-image: url("img/login.png");background-size: 100%;}.box{width: 400px;height: 300px;margin:200px auto;display:block;position: relative;}.btn_style{width: 100px;height: 30px;display: block;position:absolute;text-decoration:none;text-align:center;line-height:30px;color: #fff;background-color: #058;}#btn_reset:HOVER {background-color: #047;}#btn_login:hover{background-color: #047;}#btn_reset{right:50px;}#btn_login{margin-left: 50px;}</style><script type="text/javascript">function register() {window.location.href="register.html";}</script></head> <body> <div align="center" class="box"><form id="form"method="post" action="/login">userName:<input type="text" name="username" id="username" placeholder="請輸入用戶名"/><br>password :<input type="password" name="password" id="password" placeholder="請輸入密碼"/><br/><tr><td><input class="btn_style" id="btn_login" type="submit" value="登錄"></td><td><input type="button" id="btn_reset" class="btn_style" value="注冊" onclick="register()"></td></tr></form></div> </body> </html>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);//創建預編譯的Statementstatement = 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.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import 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.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import 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.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import 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.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import 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
總結
以上是生活随笔為你收集整理的Servlet实现登录注册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mybatis-day1入门案例
- 下一篇: 动态代理-JDK