1. 程式人生 > 其它 >使用者登入和顯示所有使用者

使用者登入和顯示所有使用者

這幾天跟著老師的思路再走了一邊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;
    }
}