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 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
登录成功后
只有几个小功能,但里面有挺多细节的问题,代码没问题。