jsp+mysql+servlet的登入

來源:互聯網
上載者:User

標籤:

登入代碼
  •  entity類
package com.wy.entity;public class User {private int id;private String username;private String password;private String email;public int getId() {return id;}public void setId(int 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;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}
  •  userDao介面
package com.wy.dao;import com.wy.entity.User;public interface UserDao { //儲存使用者資訊public void save(User user);//登入介面public User login(String username,String password);//根據使用者名稱查詢使用者方法介面public boolean findByName(String username);}
  •  userDaoImpl(介面的實現)
package com.wy.daoImpl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import com.wy.dao.UserDao;import com.wy.db.DBUtils;import com.wy.entity.User;public class UserDaoImpl implements UserDao {@Override//儲存public void save(User user) {// TODO Auto-generated method stubConnection conn = null;PreparedStatement ps = null;try {//串連資料庫conn = DBUtils.getConnection();//SQL語句ps = conn.prepareStatement("insert into user(username,password,email)values(?,?,?)");//給使用者屬性動態設定ps.setString(1, user.getUsername());ps.setString(2, user.getPassword());ps.setString(6, user.getEmail());ps.executeUpdate();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{//關閉資料庫連接DBUtils.close1(ps, conn);}}@Overridepublic User login(String username, String password) {// TODO Auto-generated method stubConnection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=DBUtils.getConnection();ps=conn.prepareStatement("select * from user where username=? and password=?");ps.setString(1, username);ps.setString(2, password);rs=ps.executeQuery();if(rs.next()){User user=new User();user.setId(rs.getInt("id"));user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));user.setEmail(rs.getString("email"));}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBUtils.close2(rs, ps, conn);}return null;}@Overridepublic boolean findByName(String username) {// TODO Auto-generated method stubConnection conn=null;PreparedStatement ps=null;ResultSet rs=null;try {conn=DBUtils.getConnection();ps=conn.prepareStatement("select * from user where name=?");ps.setString(1, username);rs=ps.executeQuery();if(rs.next()){user.setUsername(rs.getString("username"));user.setPassword(rs.getString("password"));}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{DBUtils.close2(rs, ps, conn);}return false;}}
  •  資料庫的設定
package com.wy.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DBUtils { //資料庫的串連設定static String url="jdbc:mysql://localhost:3306/java";static String user="root";static String password="wy123";static{try {//載入資料庫驅動Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {// TODO: handle exceptione.printStackTrace();}}/** * 建立串連 * @throws SQLException * */public static Connection getConnection() throws SQLException{Connection conn=DriverManager.getConnection(url, user, password);return conn;}/** * 資料庫關閉操作1:PreparedStatement ps,Connection conn * */public static void close1(PreparedStatement ps,Connection conn){if(ps!=null){try {ps.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}if(conn!=null){try {conn.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}}/** * 資料庫關閉操作2:ResultSet rs,PreparedStatement ps,Connection conn * */public static void close2(ResultSet rs,PreparedStatement ps,Connection conn){if(rs!=null){try {rs.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}close1(ps, conn);}}
  •  登入Servlet(LoginServlet)
package com.wy.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 com.wy.daoImpl.UserDaoImpl;import com.wy.entity.User;public class LoginServlet extends HttpServlet{ //doPost方法@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//擷取jsp頁面參數String username=request.getParameter("username");String password=request.getParameter("password");//執行個體化userDaoImpl,該類中為介面的實現方法UserDaoImpl userDaoImpl=new UserDaoImpl();//根據得到的參數資訊查詢資料庫中的使用者名稱以及密碼是否匹配User user=userDaoImpl.login(username, password);//匹配結果是否為空白,即該使用者是否存在if(user!=null){request.getSession().setAttribute("user", user);request.getRequestDispatcher("message.jsp").forward(request ,response);}else {request.setAttribute("message", "使用者名稱或密碼錯誤!!!");request.getRequestDispatcher("message.jsp").forward(request, response);}}}

這次登入的心得體會:在最開始的時候看了一些基礎的Servlet視頻進行的學習,對於它的頁面跳轉有一些瞭解,但是並具體的功能實現。敲代碼我覺得是最快的瞭解語言的方式,這次的登入做完後比剛開始要更加瞭解Servlet,就如同在剛開始的時候我都不太理解如何區分executeUpdate與executeQuery,所以在去敲的時候有專門去查它們的區別然後再去使用就知道為什麼去用它,要去研究它的用法,個人認為比看書要好一些。代碼肯定還需要去不斷的完善,新人也還在摸索更適合自己的學習道路,希望大家多多指教

jsp+mysql+servlet的登入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.