基于jsp+servlet完成的用户注册
生活随笔
收集整理的這篇文章主要介紹了
基于jsp+servlet完成的用户注册
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?思考 : 需要創建實體類嗎? 需要創建表嗎
|----User? 存在、不需要創建了!表同理、也不需要了
?
1.設計dao接口
package cn.javabs.usermanager.dao;import cn.javabs.usermanager.entity.User;/*** 用戶的dao接口的設計* @author Mryang**/ public interface UserDao {/*** 用戶登錄功能* @param username 參數 為用戶名* @param password 參數 為密碼* @return user*/User login(String username , String password);/*** 用戶注冊* @param user 參數是 用戶對象!!!!!!!* @return 記錄條數 受影響的行數*/int register(User user);}2.UserDaoImpl 實現類
package cn.javabs.usermanager.dao.impl;import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;import cn.javabs.usermanager.dao.UserDao; import cn.javabs.usermanager.entity.User; import cn.javabs.usermanager.exception.UserLoginException; import cn.javabs.usermanager.exception.UserRegisterException; import cn.javabs.usermanager.util.JdbcUtil; /*** userdao的實現類* @author Mryang* 調用 jdbc**靜態方法優于構造方法先執行**/ public class UserDaoImpl implements UserDao {@Overridepublic User login(String username, String password) {try {Connection con = JdbcUtil.getConnection();// 通過con 鏈接創建一個執行SQL語句的對象StatementStatement st = con.createStatement();ResultSet rs = st.executeQuery("select * from user where username = '"+username+"' and password = '"+password+"';");if(rs.next()){// 有數據才執行以下// 類型 對象 = 。。。User user = new User();// rs.getString();//columnIndex 數據庫中表的列號 從0計數 // rs.getString(columnLabel)//columnLabel 數據庫中表的列名// String name = rs.getString("username");//name admin // String pwd = rs.getString("password");//name admin // System.out.println("name:"+name); // System.out.println("pwd:"+pwd); // user.setUsername(name);// 封裝。注入user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));System.out.println("userDao中的user的內容是"+ user);return user;// 已經有了 username和password}else{//沒數據才執行以下return null;}} catch (SQLException e) {throw new UserLoginException();}}@Overridepublic int register(User user) {try {// 獲取鏈接Connection conn = JdbcUtil.getConnection();// 創建執行SQL語句的對象Statement st = conn.createStatement();int row = st.executeUpdate("insert into user(username,password,sex) values ('"+user.getUsername()+"','"+user.getPassword()+"','"+user.getSex()+"')");return row;} catch (SQLException e) {throw new UserRegisterException();}}}3.service接口設計
package cn.javabs.usermanager.service;import cn.javabs.usermanager.entity.User;public interface UserService {/*** 用戶登錄功能* @param username 參數 為用戶名* @param password 參數 為密碼* @return user*/User userLogin(String username , String password);/*** 用戶注冊* @param user* @return*/int userRegist(User user);}
serviceImpl
package cn.javabs.usermanager.service.impl;import cn.javabs.usermanager.dao.UserDao; import cn.javabs.usermanager.dao.impl.UserDaoImpl; import cn.javabs.usermanager.entity.User; import cn.javabs.usermanager.service.UserService;public class UserServiceImpl implements UserService {// 采用多態的形式進行實例化dao UserDao dao = new UserDaoImpl();@Overridepublic User userLogin(String username, String password) {//dao代表的是UserDao 這個接口 // .login 用這個接口中的用戶登錄功能 并且傳了兩個參數給你return dao.login(username, password);}@Overridepublic int userRegist(User user) {return dao.register(user);}}UserServlet
package cn.javabs.usermanager.web.servlet;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import cn.javabs.usermanager.entity.User; import cn.javabs.usermanager.service.UserService; import cn.javabs.usermanager.service.impl.UserServiceImpl;public class UserLoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/** 1 set encoding*/response.setContentType("text/html");response.setCharacterEncoding("utf-8");request.setCharacterEncoding("utf-8");/** 2. get 前臺 的 參數*/String username = request.getParameter("username");String password = request.getParameter("password");/** 3. 將獲取到的用戶名和密碼傳遞給 userService!* 所以 得有 userService 沒有 怎么 辦? 實例化 就有了 */UserService userService = new UserServiceImpl();User u = userService.userLogin(username, password);//u可能為前面傳遞過來的user或是nullif(u == null){response.getWriter().write("您的用戶名或密碼有誤,請檢查!");response.setHeader("Refresh", "5;Url="+ request.getContextPath());}else{request.setAttribute("mark", "用戶登錄成功!");request.getRequestDispatcher("/message.jsp").forward(request, response);}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet( request, response);}}register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>注冊</title></head><body><center><form action="<%=basePath%>servlet/UserRegistServlet" method="post" ><table border="1px" width="438px" ><tr align="center"><td colspan="2"><a href="<%=basePath%>login.jsp">如已有用戶,點擊去登錄</a></td></tr><tr align="center"><td>用戶名</td><td><input type="text" name="username" ></td></tr><tr align="center"><td>密碼</td><td><input type="password" name="password" ></td></tr><tr align="center"><td>性別</td><td>男<input type="radio" name="sex" value="男" checked="checked" >女<input type="radio" name="sex" value="女" ></td></tr><tr align="center"><td colspan="2" ><input type="submit" value="免費注冊" ><input type="reset" value="重置內容" ></td></tr></table> </form></center></body> </html>
轉載于:https://www.cnblogs.com/xiaoxiao5016/p/10598999.html
總結
以上是生活随笔為你收集整理的基于jsp+servlet完成的用户注册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 招商银行信用卡账单如何查询?教你四招轻松
- 下一篇: 19_03_26校内训练[魔法卡片]