idea實現管理員登錄javaweb

mysql創建db_0106數據庫,

創建表

添加一條數據,id int自增,密碼:爲MD5加密

insert into tb_sys values(null,admin,MD5(123),"系統管理員");

項目目錄結構

com.isoft.db包下

db.properties文件

mysql.driver=com.mysql.jdbc.Driver
mysql.dburl=jdbc:mysql://127.0.0.1:3306/db_0106?userSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT
mysql.loginname=root
mysql.loginpass=root

DBConnection.java

package com.isoft.db;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DBConnection {
    private Connection conn ;
    private static DBConnection newsInstance ;
    public static DBConnection getInstance() {
        if(null == newsInstance) {
            newsInstance = new DBConnection() ;
        }
        return newsInstance ;
    }
    private DBConnection() {
        Properties pros = new Properties() ;
        try {
            pros.load(DBConnection.class.getResourceAsStream("db.properties"));
            Class.forName(pros.getProperty("mysql.driver")) ;
            this.conn = DriverManager.getConnection(
                    pros.getProperty("mysql.dburl") ,
                    pros.getProperty("mysql.loginname") ,
                    pros.getProperty("mysql.loginpass")
            ) ;
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public Connection getConn() {
        return conn;
    }
    public void closeConn() {
        if(null != this.conn) {
            try {
                conn.close();
                conn = null ;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

com.isoft.entity包下

Sys.ava 

package com.isoft.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;

import java.io.Serializable;

public class Sys implements Serializable {
    private Integer id ;
    private String sysname ;
    @JsonIgnore
    private String syspass ;
    private String role ;
    public Sys(){}

    public Sys(Integer id, String sysname, String syspass, String role) {
        this.id = id;
        this.sysname = sysname;
        this.syspass = syspass;
        this.role = role;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getSysname() {
        return sysname;
    }

    public void setSysname(String sysname) {
        this.sysname = sysname;
    }

    public String getSyspass() {
        return syspass;
    }

    public void setSyspass(String syspass) {
        this.syspass = syspass;
    }

    public String getRole() {
        return role;
    }

    public void setRole(String role) {
        this.role = role;
    }

    @Override
    public String toString() {
        return "Sys{" +
                "id=" + id +
                ", sysname='" + sysname + '\'' +
                ", syspass='" + syspass + '\'' +
                ", role='" + role + '\'' +
                '}';
    }
}

com.isoft.Dao包下

SysDao.java

package com.isoft.Dao;

import com.isoft.db.DBConnection;
import com.isoft.entity.Sys;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class SysDao {
    private Connection conn ;
    private PreparedStatement psta ;
    private String sql ;
    public SysDao() {
        conn = DBConnection.getInstance().getConn() ;
    }
    /**
     * 管理員登錄校驗
     */
    public Sys loginCheck(String name , String pass) throws SQLException {
        sql = "select * from tb_sys where sysname=? and syspass=? " ;
        psta = conn.prepareStatement(sql) ;
        psta.setString(1 , name);
        psta.setString(2 , pass);
        ResultSet rs = psta.executeQuery() ;
        Sys sys = null ;
        if(rs.next()) {
            sys = new Sys(rs.getInt(1) , rs.getString(2) , rs.getString(3) ,rs.getString(4)) ;
        }
        rs.close();
        return sys ;
    }
    /**
     * 增加管理員
     */
    public int addSys(String name,String pass) throws SQLException {
        sql="select * from tb_sys where sysname=?";
        psta = conn.prepareStatement(sql) ;
        psta.setString(1 , name);
        ResultSet rs1=psta.executeQuery();
        if(rs1.next()){
            return -1;
        }else {
            sql = "insert into tb_sys(sysname,syspass,role) values(?,?,?)";
            psta = conn.prepareStatement(sql);
            String str = "系統管理員";
            psta.setString(1, name);
            psta.setString(2, pass);
            psta.setString(3, str);
            int rs = psta.executeUpdate();
            return rs;
        }
    }
    /**
     * 修改管理員密碼
     */
    public int changePass(int id,String pass) throws SQLException {
        sql="update tb_sys set syspass=? where id=?";
        psta=conn.prepareStatement(sql);
        psta.setString(1,pass);
        psta.setInt(2,id);
        int rs=psta.executeUpdate();
        return  rs;

    }
}

com.isoft.bean包下

ServerResult.java

package com.isoft.bean;

import java.io.Serializable;

public class ServerResult implements Serializable {
    private Integer errorCode ;
    private String errorMsg ;
    private Object result ;
    public ServerResult(){}

    public ServerResult(Integer errorCode, String errorMsg, Object result) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
        this.result = result;
    }

    public Integer getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(Integer errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

    public Object getResult() {
        return result;
    }

    public void setResult(Object result) {
        this.result = result;
    }

    @Override
    public String toString() {
        return "ServerResult{" +
                "errorCode=" + errorCode +
                ", errorMsg='" + errorMsg + '\'' +
                ", result=" + result +
                '}';
    }
}

com.isoft.filter包下

AuthFilter.java

package com.isoft.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
/*
未登錄用戶不能請求manager目錄下的所有動態資源,動態資源Servlet配置時以.do結尾
登錄用戶將在Session中存儲loginuser屬性
 */
@WebFilter(urlPatterns = {"/manager/*" , "*.do" , "/admin/*"})
public class AuthFilter implements Filter {
    String[] pages ;
    public void destroy() {
    }

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {

        HttpServletRequest request = (HttpServletRequest) req ;
        HttpSession session = request.getSession();
        Object obj = session.getAttribute("loginuser") ;
        if(null == obj) {
            ((HttpServletResponse)resp).sendRedirect(request.getContextPath() + "/Login.html");
            return ;
        }
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig config) throws ServletException {
    }

}

com.isoft.service包下

SysService.java

package com.isoft.service;

import com.isoft.Dao.SysDao;
import com.isoft.Util.MD5Util;
import com.isoft.Util.StringUtil;

import com.isoft.entity.Sys;

import java.sql.SQLException;

public class SysService {
    private SysDao sysDao ;
    public SysService() {
        this.sysDao = new SysDao() ;
    }
    public Sys loginCheck(String name , String pass) {
        if(StringUtil.isEmpty(name) || StringUtil.isEmpty(pass)) {
            return null ;
        }
        try {
            Sys sys = sysDao.loginCheck(name , MD5Util.getMD5(pass)) ;
            return sys ;
        } catch (SQLException e) {
            e.printStackTrace();
            return null ;
        }
    }
    public int addCheck(String name,String pass){
        if(StringUtil.isEmpty(name) || StringUtil.isEmpty(pass)) {
            return -1 ;
        }
        try {
            int rs= sysDao.addSys(name,pass);
            return rs;
        } catch (SQLException e) {
            e.printStackTrace();
            return -1;
        }

    }
    public int changepassCheck(int id,String pass){
        if( StringUtil.isEmpty(pass)) {
            return -1 ;
        }
        try {
            int rs=sysDao.changePass(id,pass);
            return rs;
        } catch (SQLException e) {
            e.printStackTrace();
            return -1;
        }

    }
}

com.isoft.servlet包下

AddSysServlet.java

package com.isoft.servlet;

import com.isoft.Util.JsonUtil;
import com.isoft.entity.Sys;
import com.isoft.service.SysService;

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 javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

@WebServlet( "/sys/AddSysServlet")
public class AddSysServlet extends HttpServlet {
    private SysService sysService ;
    public AddSysServlet() {
        this.sysService = new SysService() ;
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String name = request.getParameter("addsysname") ;
        String pass = request.getParameter("addsyspass") ;
        int rs =sysService.addCheck(name,pass);
//        response.sendRedirect(request.getContextPath()+"/admin/ManagerIndex.html");
        Map<String , Object> map = new HashMap<>() ;
        int errorCode ;
        String errorMsg ;
        if(rs == -1) {
            errorCode = 1;
            errorMsg = " add defeat!" ;
        } else {
            errorCode = 0 ;
            errorMsg = "add seccess!" ;
            // 信息存入Session
        }
        map.put("errorCode" , errorCode) ;
        map.put("errorMsg" , errorMsg) ;
        response.getWriter().print(JsonUtil.obj2JsonStr(map));
    }
}

太多不想複製了,下面有下載鏈接,去copy吧

com.isoft.Util包下

去copy吧

web下的目錄結構

admin內的html爲用戶登錄後可以訪問的頁面

login.html

登錄成功後

只有幾個小功能,但裏面有挺多細節的問題,代碼沒問題。

https://download.csdn.net/download/weixin_41342359/12093179

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章