使用者登入和顯示所有使用者
阿新 • • 發佈:2022-03-15
這幾天跟著老師的思路再走了一邊javaweb專案,今天是最簡單的登入顯示所有的專案,之前考試和小測的時候沒有認真做過,而且也是找的模板就簡單的套用,其中的跳轉關係,分類,程式碼邏輯都看不懂,只知道一味的套模板,這些天一直學習,有些收穫;(但是資料庫顯示到servlet中文顯示?的原因還是沒找到,資料庫的中文顯示過來一直為?
package com.qf.servletProject.dao; import com.qf.servletProject.entity.Admin; import java.util.List; //訪問介面 public interface Admindao {public int insert(Admin admin); public int delete(String username); public int update(Admin admin); public Admin select(String username); public List<Admin> selectAll(); }
package com.qf.servletProject.entity; public class Admin { private String username; private String password;private String phone; private String address; public Admin(){} @Override public String toString() { return "Admin{" + "username='" + username + '\'' + ", password='" + password + '\'' + ", phone='" + phone + '\'' + ", address='" + address + '\'' + '}'; }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 getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Admin(String username, String password, String phone, String address) { this.username = username; this.password = password; this.phone = phone; this.address = address; } }
package com.qf.servletProject.service; import com.qf.servletProject.entity.Admin; import java.util.List; public interface AdminService { public Admin login(String username, String password); public List<Admin> showAllAdmin(); }
package com.qf.servletProject.service; import com.qf.servletProject.dao.Admindao; import com.qf.servletProject.dao.impl.AdminDaoImpl; import com.qf.servletProject.entity.Admin; import com.qf.servletProject.utils.DBUtils; import java.util.List; public class AdminServiceImpl implements AdminService { private Admindao admindao=new AdminDaoImpl(); @Override public Admin login(String username, String password) { Admin result=null;//用於返回物件 try { DBUtils.begin(); Admin admin=admindao.select(username); if (admin!=null){ if (admin.getPassword().equals(password)){ result=admin; } } DBUtils.commit();//提交 } catch (Exception e) { DBUtils.rollback(); e.printStackTrace(); } return result; } @Override public List<Admin> showAllAdmin() { List<Admin> admins=null;//返回先制空 try { DBUtils.begin(); admins=admindao.selectAll(); DBUtils.commit(); } catch (Exception e) { DBUtils.rollback(); e.printStackTrace(); } return admins;//返回值給servlet } }
package com.qf.servletProject.servlet; import com.qf.servlet.HttpsServlet; import com.qf.servletProject.entity.Admin; import com.qf.servletProject.service.AdminService; import com.qf.servletProject.service.AdminServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; @WebServlet(value = "/login") public class login extends HttpsServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); //1.收參 String username=req.getParameter("username");//接受頁面傳來的資料 String password=req.getParameter("password"); //2.呼叫業務邏輯 AdminService adminService=new AdminServiceImpl(); Admin admin=adminService.login(username,password); //3.處理結果 PrintWriter printWriter=resp.getWriter(); if (admin!=null){ //相應給客戶端結果頁面,成功 printWriter.println("<html>"); printWriter.println("<head>"); printWriter.println("<meta charset='UTF-8'>"); printWriter.println("<title>結果頁面</title>"); printWriter.println("<head>"); printWriter.println("<body>"); printWriter.println("<h1>登陸成功<h1>"); printWriter.println("</body>"); printWriter.println("</html>"); }else { //失敗 printWriter.println("<html>"); printWriter.println("<head>"); printWriter.println("<meta charset='UTF-8'>"); printWriter.println("<title>結果頁面</title>"); printWriter.println("<head>"); printWriter.println("<body>"); printWriter.println("<h1>登陸失敗<h1>"); printWriter.println("</body>"); printWriter.println("</html>"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }
package com.qf.servletProject.servlet; import com.qf.servlet.HttpsServlet; import com.qf.servletProject.entity.Admin; import com.qf.servletProject.service.AdminService; import com.qf.servletProject.service.AdminServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.List; @WebServlet(value = "/showall") public class ShowAllAdmin extends HttpsServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { PrintWriter printWriter=resp.getWriter(); req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); //獲取邏輯業務層的處理結果 AdminService adminService=new AdminServiceImpl(); List<Admin> admins=adminService.showAllAdmin(); if (admins!=null){ printWriter.println("<html>"); printWriter.println("<head>"); printWriter.println("<meta charset='UTF-8'>"); printWriter.println("<title>結果頁面</title>"); printWriter.println("<head>"); printWriter.println("<body>"); printWriter.println("<table>"); printWriter.println("<tr>"); printWriter.println("<td>username</td>"); printWriter.println("<td>password</td>"); printWriter.println("<td>phone</td>"); printWriter.println("<td>address</td>"); printWriter.println("</tr>"); for (Admin admin:admins){//迴圈遍歷 每遍歷一次拿到一個admin物件 printWriter.println("<tr>"); printWriter.println("<td>"+admin.getUsername()+"</td>"); printWriter.println("<td>"+admin.getPassword()+"</td>"); printWriter.println("<td>"+admin.getPhone()+"</td>"); printWriter.println("<td>"+admin.getAddress()+"</td>"); printWriter.println("</tr>"); } printWriter.println("</body>"); printWriter.println("</html>"); } else{ printWriter.println("沒有哦"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); } }
package com.qf.servletProject.utils; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DBUtils { private static DruidDataSource ds;//建立連線池 private static final ThreadLocal<Connection> THREAD_LOCAL=new ThreadLocal<>(); static { Properties properties=new Properties(); InputStream inputStream=DBUtils.class.getResourceAsStream("/database.properties"); try { properties.load(inputStream); ds=(DruidDataSource) DruidDataSourceFactory.createDataSource(properties); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection(){ Connection connection=THREAD_LOCAL.get(); try { if (connection==null){ connection=ds.getConnection(); THREAD_LOCAL.set(connection); } } catch (SQLException e) { e.printStackTrace(); } return connection; } public static void begin(){ Connection connection=null; try { connection=getConnection(); connection.setAutoCommit(false); } catch (SQLException e) { e.printStackTrace(); } } public static void commit(){ Connection connection=null; try { connection=getConnection(); connection.commit(); } catch (SQLException e) { e.printStackTrace(); }finally { closeAll(connection,null,null); } } public static void rollback(){ Connection connection=null; try { connection=getConnection(); connection.rollback(); } catch (SQLException e) { e.printStackTrace(); }finally { closeAll(connection,null,null); } } public static void closeAll(Connection connection, Statement statement, ResultSet resultSet){ try { if (resultSet!=null){ resultSet.close(); } if (statement!=null){ statement.close(); } if (connection!=null){ connection.close(); THREAD_LOCAL.remove(); } } catch (SQLException e) { e.printStackTrace(); } } }
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/companydb?useUnicode=true&characterEncoding=UTF-8 username=root password=1234
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登陸介面</title> </head> <body> <form action="/servletlianxi_war_exploded/login" method="post"> 使用者名稱:<input type="text" name="username"><br> 密碼:<input type="password" name="password"><br> <input type="submit" value="登入"> </form> </body> </html>
)
package com.qf.servletProject.dao.impl; import com.qf.servletProject.dao.Admindao; import com.qf.servletProject.entity.Admin; import com.qf.servletProject.utils.DBUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import java.sql.SQLException; import java.util.List; public class AdminDaoImpl implements Admindao { private QueryRunner queryRunner=new QueryRunner(); @Override public int insert(Admin admin) { return 0; } @Override public int delete(String username) { return 0; } @Override public int update(Admin admin) { return 0; } @Override public Admin select(String username) { try { Admin admin= queryRunner.query(DBUtils.getConnection(),"select * from admin where username=?;",new BeanHandler<Admin>(Admin.class),username); return admin; } catch (SQLException e) { e.printStackTrace(); } return null; } @Override public List<Admin> selectAll() { try { List<Admin> admins= queryRunner.query(DBUtils.getConnection(),"select * from admin",new BeanListHandler<Admin>(Admin.class)); return admins; } catch (SQLException e) { e.printStackTrace(); } return null; } }