部门项目源码分享

部门项目源码分享

代码逻辑思维导图

链接:https://pan.baidu.com/s/10Dzu46UOsp7nHmk40gIn_Q?pwd=2t6m
提取码:2t6m
–来自百度网盘超级会员V2的分享

源码分享

后期会根据AJAX和JQuery继续完善,且网站健壮性不强,会出现线程安全问题和遇到主键冲突网站跳转不了的情况,后期也会逐一完善

package bean;

import java.io.Serializable;
import java.util.Objects;

/**
 * @className: bean.Dept
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-23 20:40
 */
public class Dept implements Serializable {
    public static final long serialVersionUID = 100L;

    private int id;
    private int deptNo;
    private String deptName;
    private String deptLoc;

    public Dept(int id, String deptLoc) {
        this.id = id;
        this.deptLoc = deptLoc;
    }

    public Dept() {

    }

    public Dept(int id, int deptNo, String deptName, String deptLoc) {
        this.id = id;
        this.deptNo = deptNo;
        this.deptName = deptName;
        this.deptLoc = deptLoc;
    }

    public int getId() {
        return id;
    }

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

    public int getDeptNo() {
        return deptNo;
    }

    public void setDeptNo(int deptNo) {
        this.deptNo = deptNo;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDeptLoc() {
        return deptLoc;
    }

    public void setDeptLoc(String deptLoc) {
        this.deptLoc = deptLoc;
    }

    @Override
    public String toString() {
        return "Dept{" +
                "id=" + id +
                ", deptNo=" + deptNo +
                ", deptName='" + deptName + '\'' +
                ", deptLoc='" + deptLoc + '\'' +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Dept dept = (Dept) o;
        return id == dept.id && deptNo == dept.deptNo && Objects.equals(deptName, dept.deptName) && Objects.equals(deptLoc, dept.deptLoc);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, deptNo, deptName, deptLoc);
    }
}
package bean;

import jakarta.servlet.ServletContext;
import jakarta.servlet.http.HttpSessionBindingEvent;
import jakarta.servlet.http.HttpSessionBindingListener;

import java.io.Serializable;

/**
 * @className: bean.User
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-30 17:34
 */
public class User implements HttpSessionBindingListener, Serializable {

    private String username;
    private String userpwd;

    public User(String username, String userpwd) {
        this.username = username;
        this.userpwd = userpwd;
    }

    public User() {
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getUserpwd() {
        return userpwd;
    }

    public void setUserpwd(String userpwd) {
        this.userpwd = userpwd;
    }

    @Override
    public void valueBound(HttpSessionBindingEvent event) {
        ServletContext application = event.getSession().getServletContext();
        Object count = application.getAttribute("count");
        if (count != null) {
            int afCount = (Integer) count;
            afCount++;
            application.setAttribute("count",afCount);
        }else {
            application.setAttribute("count",1);
        }
    }

    @Override
    public void valueUnbound(HttpSessionBindingEvent event) {
        ServletContext application = event.getSession().getServletContext();
        int count = (Integer)application.getAttribute("count");
        count--;
        application.setAttribute("count", count);
    }

}
package servlet;

import bean.Dept;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import util.DBUtil;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * @className: servlet.DeptServlet
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-23 20:37
 */
@WebServlet({"/dept/list", "/dept/detail", "/dept/modify", "/dept/add", "/dept/del"})
public class DeptServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String requestServletPath = request.getServletPath();
        if ("/dept/list".equals(requestServletPath)) {
            doList(request, response);
        }else if ("/dept/detail".equals(requestServletPath)) {
            doDetail(request, response);
        }else if ("/dept/modify".equals(requestServletPath)) {
            doModify(request, response);
        }else if ("/dept/add".equals(requestServletPath)) {
            doAdd(request, response);
        }else if ("/dept/del".equals(requestServletPath)) {
            doDel(request, response);
        }
    }

    private void doDel(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String id = request.getParameter("id");
        Connection conn = null;
        PreparedStatement ps = null;
        int update = 0;
        try {
            conn = DBUtil.getConnection();
            String sql = "DELETE FROM dept WHERE id = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,id);
            update = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn,ps);
        }
        if (update == 1) {
            response.sendRedirect(request.getContextPath() + "/dept/list");
        }
    }

    private void doAdd(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String deptName = request.getParameter("dept_name");
        String deptNo = request.getParameter("dept_no");
        String deptLoc = request.getParameter("dept_loc");
        Connection conn = null;
        PreparedStatement ps = null;
        int update = 0;
        try {
            conn = DBUtil.getConnection();
            String sql = "INSERT INTO dept(dept_name,dept_no,dept_loc) VALUES(?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1,deptName);
            ps.setString(2,deptNo);
            ps.setString(3,deptLoc);
            update = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn,ps);
        }
        if (update == 1) {
            response.sendRedirect(request.getContextPath() + "/dept/list");
        }
    }

    private void doModify(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException{
        String id = request.getParameter("id");
        String deptName = request.getParameter("dept_name");
        String deptNo = request.getParameter("dept_no");
        String deptLoc = request.getParameter("dept_loc");
        Connection conn = null;
        PreparedStatement ps = null;
        int update = 0;
        try {
            conn = DBUtil.getConnection();
            String sql = "UPDATE dept SET dept_name = ?, dept_no = ?, dept_loc = ? WHERE id = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,deptName);
            ps.setString(2,deptNo);
            ps.setString(3,deptLoc);
            ps.setString(4,id);
            update = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn,ps);
        }
        if (update == 1) {
            response.sendRedirect(request.getContextPath() + "/dept/list");
        }
    }

    private void doDetail(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String id = request.getParameter("id");
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        Dept dept = null;
        try {
            conn = DBUtil.getConnection();
            String sql = "SELECT dept_no,dept_name,dept_loc FROM dept WHERE id = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,id);
            rs = ps.executeQuery();
            if (rs.next()) {
                int deptNo = rs.getInt(1);
                String deptName = rs.getString(2);
                String deptLoc = rs.getString(3);
                dept = new Dept(Integer.parseInt(id), deptNo, deptName, deptLoc);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn,ps,rs);
        }
        request.setAttribute("deOne",dept);
        request.getRequestDispatcher("/" + request.getParameter("f") + ".jsp").forward(request, response);
    }

    private void doList(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        List<Dept> list = new ArrayList<>();
        try {
            conn = DBUtil.getConnection();
            String sql = "SELECT id,dept_loc FROM dept";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                int id = rs.getInt(1);
                String deptLoc = rs.getString(2);
                Dept dept = new Dept(id, deptLoc);
                list.add(dept);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn,ps,rs);
        }
        request.setAttribute("depts",list);
        request.getRequestDispatcher("/list.jsp").forward(request, response);
    }
}
package servlet;

import bean.User;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;

import java.io.IOException;

/**
 * @className: servlet.ThingFilter
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-30 17:29
 */

public class ThingFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;
        HttpSession session = request.getSession(false);
        if (session != null && session.getAttribute("user") != null) {
            chain.doFilter(request, response);
        } else {
            response.sendRedirect(request.getContextPath());
        }
    }
}
package servlet;

import bean.User;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import util.DBUtil;

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

/**
 * @className: bean.UserServlet
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-25 18:11
 */
@WebServlet({"/user/login","/user/logout"})
public class UserServlet extends HttpServlet {
    // 升级方向
    // 数据表 -> 前端页面(页面流转) -> servlet完成 -> 错误页面 -> session机制 -> 安全退出

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String servletPath = request.getServletPath();
        if ("/user/login".equals(servletPath)) {
            doLogin(request, response);
        }else if ("/user/logout".equals(servletPath)) {
            doLogout(request, response);
        }
    }

    private void doLogout(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException{
        HttpSession session = request.getSession(false);
        session.invalidate();
        Cookie username = new Cookie("username", "");
        Cookie userpwd = new Cookie("userpwd", "");
        username.setPath(request.getContextPath());
        userpwd.setPath(request.getContextPath());
        username.setMaxAge(0);
        userpwd.setMaxAge(0);
        response.addCookie(username);
        response.addCookie(userpwd);
        response.sendRedirect(request.getContextPath());
    }

    private void doLogin(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 1.获取信息
        String username = request.getParameter("username");
        String userpwd = request.getParameter("userpwd");
        // 2.连接数据库
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String path = null;
        boolean login = false;
        try {
            conn = DBUtil.getConnection();
            String sql = "SELECT * FROM user WHERE username = ? AND userpwd = ?";
            ps = conn.prepareStatement(sql);
            ps.setString(1,username);
            ps.setString(2,userpwd);
            rs = ps.executeQuery();
            login = rs.next();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(conn,ps,rs);
        }
        // 判断是否登录成功
        if (login) {
            path = "/dept/list";
            HttpSession session = request.getSession();
            User user = new User(username,userpwd);
            session.setAttribute("user",user);
            if ("true".equals(request.getParameter("pass"))) {
                Cookie username1 = new Cookie("username", username);
                Cookie userpwd1 = new Cookie("userpwd", userpwd);
                username1.setMaxAge(60);
                userpwd1.setMaxAge(60);
                username1.setPath(request.getContextPath());
                userpwd1.setPath(request.getContextPath());
                response.addCookie(username1);
                response.addCookie(userpwd1);
            }
        }else {
            path = "/error.jsp";
        }
        response.sendRedirect(request.getContextPath() + path);
    }
}
package servlet;

import bean.User;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import util.DBUtil;

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

/**
 * @className: bean.WelcomeServlet
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-25 21:49
 */
@WebServlet("/welcome")
public class WelcomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Cookie[] cookies = request.getCookies();
        String username = null;
        String userpwd = null;
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                if ("username".equals(cookie.getName())) {
                    username = cookie.getValue();
                }else if ("userpwd".equals(cookie.getName())) {
                    userpwd = cookie.getValue();
                }
            }
        }
        if (username != null && userpwd != null) {
            Connection conn = null;
            PreparedStatement ps = null;
            ResultSet rs = null;
            boolean login = false;
            try {
                conn = DBUtil.getConnection();
                String sql = "SELECT * FROM user WHERE username = ? AND userpwd = ?";
                ps = conn.prepareStatement(sql);
                ps.setString(1, username);
                ps.setString(2, userpwd);
                rs = ps.executeQuery();
                login = rs.next();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                DBUtil.close(conn, ps, rs);
            }
            if (login) {
                HttpSession session = request.getSession();
                User user = new User(username,userpwd);
                session.setAttribute("user",user);
                response.sendRedirect(request.getContextPath() + "/dept/list");
            }
        }else {
            response.sendRedirect(request.getContextPath() + "/index.jsp");
        }
    }
}
package util;

import javax.sql.DataSource;
import java.sql.*;


/**
 * @className: util.DBUtil
 * @description:
 * @author: 江骏杰
 * @create: 2022-07-17 23:12
 */
public class DBUtil {
    public static DataSource dataSource = null;
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection("jdbc:mysql://43.142.25.180:3306/dep_db","root","Hello_world_123!!~~~");
    }
    public static void close(Connection conn, Statement statement) {
        try {
            if (statement != null)
                statement.close();
            if (conn != null)
                conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public static void close(Connection conn, Statement statement, ResultSet resultSet) {
        try {
            // 先关小的
            if (resultSet != null)
                resultSet.close();
            if (statement != null)
                statement.close();
            if (conn != null)
                conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
         version="5.0">
    <welcome-file-list>
        <welcome-file>welcome</welcome-file>
    </welcome-file-list>
    <filter>
        <filter-name>thing</filter-name>
        <filter-class>servlet.ThingFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>thing</filter-name>
        <url-pattern>/dept/*</url-pattern>
    </filter-mapping>
</web-app>
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/7/23
  Time: 20:17
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>添加数据页面</title>
</head>
<body>
    <form action="${pageContext.request.contextPath}/dept/add" method="post">
        部门编号:<input type="text" name="dept_no"><br>
        部门名称:<input type="text" name="dept_name"><br>
        部门地址:<input type="text" name="dept_loc"><br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="确认添加">
    </form>
</body>
</html>
<%@ page import="bean.Dept" %><%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/7/23
  Time: 20:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>详情页面</title>
</head>
<body>
    <hr>
    编号:&nbsp;&nbsp;${deOne.id}
    部门编号:${deOne.deptNo}
    部门名字:${deOne.deptName}
    部门地址:${deOne.deptLoc}
    <hr>
    <center><a href="${pageContext.request.contextPath}/dept/list">返回</a></center>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/7/25
  Time: 20:14
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>失败页面</title>
</head>
<body>
    <h1 align="center">账号或密码错误,<a href="${pageContext.request.contextPath}">请重新登录</a></h1>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/7/23
  Time: 20:08
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>后台页面</title>
  </head>
  <body>
    <H1 ALIGN="center">欢迎使用后台页面</H1>
    <h2 align="center">登录</h2>
    <hr>
    <form action="${pageContext.request.contextPath}/user/login" method="post">
      <center>用户名:<input type="text" name="username"></center><br>
      <center>密码:&nbsp;&nbsp;&nbsp;<input type="password" name="userpwd"></center><br>
      <center><input type="submit" value="登录">&nbsp;&nbsp;&nbsp;&nbsp;是否1分钟免登录<input type="radio" name="pass" value="true"></center>
    </form>
    <hr>
  </body>
</html>
<%@ page import="bean.Dept" %>
<%@ page import="java.util.ArrayList" %><%--

  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/7/23
  Time: 20:10
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>列表页面</title>
    <base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">
</head>
<body>
    <script type="text/javascript">
        del = function (id) {
            if (window.confirm("亲,真的要删除嘛,删除不可恢复哦!")) {
                window.location.href = "${pageContext.request.contextPath}/dept/del?id=" + id;
            }
        }
    </script>
    <h3 align="center">欢迎${username}回来,当前在线人数:${count}</h3>
    <table align="center">
        <tr>
            <th>记录编号</th>
            <th>部门地址</th>
            <th>操作</th>
        </tr>
        <c:forEach items="${depts}" var="dept">
            <tr>
                <td>${dept.id}</td>
                <td>${dept.deptLoc}</td>
                <td>
                    <a href="javascript:void(0)" οnclick="del(${dept.id})">删除数据</a>&nbsp;&nbsp;&nbsp;
                    <a href="dept/detail?id=${dept.id}&f=modify">修改数据</a>&nbsp;&nbsp;&nbsp;
                    <a href="dept/detail?id=${dept.id}&f=detail">数据详情</a>&nbsp;&nbsp;&nbsp;
                </td>
            </tr>
        </c:forEach>
    </table>
    <center><a href="add.jsp">添加数据</a></center>
    <center><a href="user/logout">安全退出</a></center>
</body>
</html>
<%@ page import="bean.Dept" %><%--
  Created by IntelliJ IDEA.
  User: asus
  Date: 2022/7/23
  Time: 20:22
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>修改页面</title>
</head>
<body>
    <form action="<%=request.getContextPath()%>/dept/modify" method="post">
        <input type="text" name="id" value="${deOne.id}" hidden>
        部门编号:<input type="text" name="dept_no" value="${deOne.deptNo}" readonly><br>
        部门名称:<input type="text" name="dept_name" value="${deOne.deptName}"><br>
        部门地址:<input type="text" name="dept_loc" value="${deOne.deptLoc}"><br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="确认修改">
    </form>
</body>
</html>
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪哇土著、JOElib

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值