0
点赞
收藏
分享

微信扫一扫

基于javaweb+jsp的校园家教兼职信息管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)

fbd4ffd0717b 2022-04-13 阅读 35
javamysql

JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Bootstrap Ajax

基础JSP+Servlet或JSP+SSM(Spring、SpringMVC、MyBatis)框架或JSP+SSM+Maven(pom.xml)框架或SpringBoot…均可

开发工具:eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

                    确认要删除该学员记录吗?
                    <div class="form-group hidden">
                        <label class="control-label">(hidden)</label>
                        <input type="hidden" class="form-control" name="action" value="delete">
                        <input type="text" class="form-control" name="id" id="delete-id">
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-pill btn-warning" data-dismiss="modal">取消</button>
                    <button type="submit" class="btn btn-pill btn-info">删除</button>
                </div>
            </form>
        </div>
    </div>
</div>

</body>
<script>
    $('#modal-delete').on('show.bs.modal', function (event) {
        let button = $(event.relatedTarget);
        let id = button.data('id');
        let modal = $(this);
        modal.find('#delete-id').val(id);
    })

    $('#modal-edit').on('show.bs.modal', function (event) {
        let button = $(event.relatedTarget);
        let id = button.data('id');
            <form action="UserServlet">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    <h4 class="modal-title">删除用户</h4>
                </div>
                <div class="modal-body">
                    确认要删除该用户记录吗?
                    <div class="form-group hidden">
                        <label class="control-label">(hidden)</label>
                        <input type="hidden" class="form-control" name="action" value="delete">
                        <input type="text" class="form-control" name="id" id="delete-id">
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-pill btn-warning" data-dismiss="modal">取消</button>
                        modal.find('#edit-jiaoyuanNeirong').val(vo.jiaoyuanNeirong);
                        modal.find('#edit-jiaoyuanPrice').val(vo.jiaoyuanPrice);
                        modal.find('#edit-jiaoyuanDate').val(vo.jiaoyuanDate);
                        for (let val of "空闲/已预定".split('/')) {
                            if (val == vo.jiaoyuanStatus) {
                                modal.find('#edit-jiaoyuanStatus_' + vo.jiaoyuanStatus).prop("checked", true);
                            } else {
                                modal.find('#edit-jiaoyuanStatus_' + vo.jiaoyuanStatus).removeAttr("checked");
                            }
                        };
                        modal.find('#edit-jiaoyuanText').val(vo.jiaoyuanText);
            }
        })
    })
    $('#modal-info').on('show.bs.modal', function (event) {
        let button = $(event.relatedTarget);
        let id = button.data('id');
        let modal = $(this);
        $.ajax({
            url: 'JiaoyuanServlet?action=get&id=' + id,
            type: "get",
            success: function (voString) {
                let vo = eval('(' + voString + ')');
                modal.find('#info-jiaoyuanName').text(vo.jiaoyuanName);
                modal.find('#info-jiaoyuanAge').text(vo.jiaoyuanAge);
                modal.find('#info-jiaoyuanSex').text(vo.jiaoyuanSex);
                modal.find('#info-jiaoyuanXueli').text(vo.jiaoyuanXueli);
                modal.find('#info-jiaoyuanPhone').text(vo.jiaoyuanPhone);
                modal.find('#info-jiaoyuanNeirong').text(vo.jiaoyuanNeirong);
    function editCheck() {
        //根据ID获取值
        if (document.getElementById("edit-username").value.trim().length == 0) {
            alert("用户名不能为空");
            return false;
        }
        if (document.getElementById("edit-password").value.trim().length == 0) {
            alert("密码不能为空");
            return false;
        }
        if (document.getElementById("edit-realName").value.trim().length == 0) {
            alert("姓名不能为空");
            return false;
        }
        if (document.getElementById("edit-userPhone").value.trim().length == 0) {
            alert("手机不能为空");
            return false;
        }
        return true;
    }
</script>
</html>
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    }

    //@Override
    public Xueyuan get(Serializable id) {
        Xueyuan vo = null;
        try {
            Connection c = Util.getConnection();
            Statement s = c.createStatement();
            String sql = "select * from `t_xueyuan` where id = " + id;
            ResultSet rs = s.executeQuery(sql);
            if (rs.next()) {
                vo = new Xueyuan();
                vo.setId(rs.getLong("id"));
                vo.setXueyuanName(rs.getString("xueyuan_name"));
                vo.setXueyuanAge(rs.getString("xueyuan_age"));
                vo.setXueyuanSex(rs.getString("xueyuan_sex"));
                vo.setXueyuanPhone(rs.getString("xueyuan_phone"));
                vo.setXueyuanNeirong(rs.getString("xueyuan_neirong"));
                vo.setXueyuanDate(rs.getString("xueyuan_date"));
                vo.setXueyuanPrice(rs.getString("xueyuan_price"));
                                modal.find('#edit-jiaoyuanSex_' + vo.jiaoyuanSex).prop("checked", true);
                            } else {
                                modal.find('#edit-jiaoyuanSex_' + vo.jiaoyuanSex).removeAttr("checked");
                            }
                        };
                        modal.find('#edit-jiaoyuanXueli').val(vo.jiaoyuanXueli);
                        modal.find('#edit-jiaoyuanPhone').val(vo.jiaoyuanPhone);
                        modal.find('#edit-jiaoyuanNeirong').val(vo.jiaoyuanNeirong);
                        modal.find('#edit-jiaoyuanPrice').val(vo.jiaoyuanPrice);
                        modal.find('#edit-jiaoyuanDate').val(vo.jiaoyuanDate);
                        for (let val of "空闲/已预定".split('/')) {
                            if (val == vo.jiaoyuanStatus) {
                                modal.find('#edit-jiaoyuanStatus_' + vo.jiaoyuanStatus).prop("checked", true);
                            } else {
                                modal.find('#edit-jiaoyuanStatus_' + vo.jiaoyuanStatus).removeAttr("checked");
            vo.setJiaoyuanText(Util.decode(request, "jiaoyuanText"));
            JiaoyuanService jiaoyuanService = new JiaoyuanServiceImpl();
            //调用Service层更新方法(update),更新记录
            jiaoyuanService.update(vo);
            this.redirectList(request, response);
        } else if ("get".equalsIgnoreCase(action) || "editPre".equalsIgnoreCase(action)) {//根据主键ID,查询详情信息并跳转到详情页面或编辑页面
            Serializable id = Util.decode(request, "id");//取出页面传入的主键,用于查询详情
            JiaoyuanService jiaoyuanService = new JiaoyuanServiceImpl();
            Jiaoyuan vo = jiaoyuanService.get(id);
            response.getWriter().println(com.alibaba.fastjson.JSONObject.toJSONString(vo));
        } else {//默认去列表页面
            this.redirectList(request, response);
        }
    }

    /**
     * 处理Get请求
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
        //根据ID获取值
        if (document.getElementById("edit-xueyuanName").value.trim().length == 0) {
            alert("学员姓名不能为空");
            return false;
        }
        if (document.getElementById("edit-xueyuanAge").value.trim().length == 0) {
            alert("性别不能为空");
            return false;
        }
        if (document.getElementById("edit-xueyuanPhone").value.trim().length == 0) {
            alert("联系方式不能为空");
            return false;
        }
        if (document.getElementById("edit-xueyuanNeirong").value.trim().length == 0) {
            alert("学习内容不能为空");
            return false;
        }
        if (document.getElementById("edit-xueyuanDate").value.trim().length == 0) {
            alert("期望时间不能为空");
            return false;
        }
        if (document.getElementById("edit-xueyuanPrice").value.trim().length == 0) {
            alert("期望价格不能为空");
            return false;
        }
        return true;
    }
        </div>
    </div>
</div>

<!-- info -->
<div class="modal fade" id="modal-info" tabindex="-1" role="dialog"
     aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <form>
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    <h4 class="modal-title">教员</h4>
                </div>
                <div class="modal-body">
                    <button type="submit" class="btn btn-pill btn-warning">提交</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- info -->
<div class="modal fade" id="modal-info" tabindex="-1" role="dialog"
     aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <form>
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    <h4 class="modal-title">学员</h4>
                </div>
                <div class="modal-body">
                    <table class="table table-striped table-hover" style="font-size: 15px;">
                        <tr>
                            <td style="width: 15%;">学员姓名:</td>
                            <td><b id="info-xueyuanName"></b></td>
                        </tr>
                        <tr>
                            <td style="width: 15%;">性别:</td>
                            <td><b id="info-xueyuanAge"></b></td>
        params.put("searchColumn", searchColumn);//要查询的列
        params.put("keyword", keyword);//查询的关键字
        XueyuanService xueyuanService = new XueyuanServiceImpl();
        Map<String, Object> map = xueyuanService.list(params);
        request.getSession().setAttribute("list", map.get("list"));

        Integer totalRecord = (Integer) map.get("totalCount");//根据查询条件取出对应的总记录数,用于分页
        String pageNum = Util.decode(request, "pageNum");//封装分页参数
        com.demo.util.PageBean<Object> pb = new com.demo.util.PageBean(Integer.valueOf(pageNum != null ? pageNum : "1"), totalRecord);
        params.put("startIndex", pb.getStartIndex());
        params.put("pageSize", pb.getPageSize());
        List list = (List) xueyuanService.list(params).get("list");//根据分页参数startIndex、pageSize查询出来的最终结果list
        pb.setServlet("XueyuanServlet");
        pb.setSearchColumn(searchColumn);
        pb.setKeyword(keyword);
        pb.setList(list);
        request.getSession().setAttribute("pageBean", pb);
        request.getSession().setAttribute("list", pb.getList());
    function addCheck() {
        //根据ID获取值
        if (document.getElementById("add-xueyuanName").value.trim().length == 0) {
            alert("学员姓名不能为空");
            return false;
        }
        if (document.getElementById("add-xueyuanAge").value.trim().length == 0) {
            alert("性别不能为空");
            return false;
        }
        if (document.getElementById("add-xueyuanPhone").value.trim().length == 0) {
            alert("联系方式不能为空");
            return false;
        }
        if (document.getElementById("add-xueyuanNeirong").value.trim().length == 0) {
                        <tr>
                            <td style="width: 15%;">创建时间:</td>
                            <td><b id="info-createDate"></b></td>
                        </tr>
                    </table>
                    <br>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-pill btn-warning" data-dismiss="modal">关闭</button>
                </div>
            </form>
        </div>
    </div>
</div>

<!-- edit -->
<div class="modal fade" id="modal-edit" tabindex="-1" role="dialog"
     aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <form action="NoticeServlet" onsubmit="return editCheck()">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    <h4 class="modal-title">更新公告</h4>
                </div>
import java.util.Map;
import java.util.Random;

//@WebServlet("/AuthServlet")
public class AuthServlet extends HttpServlet {
    @Override
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //过滤编码
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        String action = Util.decode(request, "action");
        if ("login".equalsIgnoreCase(action)) {//登录
            String username = Util.decode(request, "username");
            String password = Util.decode(request, "password");

            String validationCode = Util.decode(request, "validationCode");
            if (validationCode != null && !validationCode.equals(request.getSession().getAttribute("validationCode"))) {//验证码不通过
                request.getSession().setAttribute("alert_msg", "错误:验证码不正确!");
                request.getRequestDispatcher("login.jsp").forward(request, response);
                return;
            }

            c.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return vo;
    }

    //@Override
    public Map<String, Object> list(Map<String, Object> params) {
        List<User> list = new ArrayList();
        int totalCount = 0;
        String condition = "";
        String sqlList;
        if (params.get("searchColumn") != null && !"".equals(params.get("searchColumn"))) {
            condition += " and `" + params.get("searchColumn") + "` like '%" + params.get("keyword") + "%'";
        }
        try {
            Connection c = Util.getConnection();
            PreparedStatement ps;
            ResultSet rs;
<body>
<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                <span class="sr-only">校园家教兼职信息管理系统</span> <span class="icon-bar"></span>
                <span class="icon-bar"></span> <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">校园家教兼职信息管理系统</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#">欢迎:<span style="color: yellow">${loginUser.username}</span></a></li>
                <li><a href="AuthServlet?action=logout">退出</a></li>
            </ul>
        </div>
    </div>
</nav>

<div class="container-fluid">
    <div class="row">
        <div class="col-sm-3 col-md-2 sidebar">
                    <c:when test="${fn:length(vo.xueyuanText) > 19}">
                        <c:out value="${fn:substring(vo.xueyuanText, 0, 19)}..."/>
                    </c:when>
                    <c:otherwise>
                        <c:out value="${vo.xueyuanText}"/>
                    </c:otherwise>
                </c:choose>
                </td>
                            <th style="text-align: center;">
                                <button class="btn btn-pill btn-warning btn-sm" data-id="${vo.id}"
                                        data-toggle="modal" data-target="#modal-info">详情
                                </button>
                                <button class="btn btn-pill btn-default btn-sm"
                                                <c:if test="${loginUser.userType != '管理员'}">disabled="disabled" title="没有权限!!!"</c:if>
                                        data-id="${vo.id}"
                                        data-toggle="modal" data-target="#modal-edit">编辑
                                </button>
                                <button class="btn btn-pill btn-info btn-sm" <c:if test="${loginUser.userType != '管理员'}">disabled="disabled" title="没有权限!!!"</c:if> data-id="${vo.id}"
                                        data-toggle="modal" data-target="#modal-delete">删除
                                </button>
                            </th>
                        </tr>
    </div>
</div>

</body>
<script>
    $('#modal-delete').on('show.bs.modal', function (event) {
        let button = $(event.relatedTarget);
        let id = button.data('id');
        let modal = $(this);
        modal.find('#delete-id').val(id);
    })

    $('#modal-edit').on('show.bs.modal', function (event) {
        let button = $(event.relatedTarget);
        let id = button.data('id');
        let modal = $(this);
        $.ajax({
            url: 'NoticeServlet?action=get&id=' + id,
            type: "get",
            success: function (voString) {
                let vo = eval('(' + voString + ')');
                        modal.find('#edit-id').val(vo.id);
                        modal.find('#edit-noticeName').val(vo.noticeName);
                        modal.find('#edit-noticeText').val(vo.noticeText);
                        modal.find('#edit-noticeType').val(vo.noticeType);
                        modal.find('#edit-createDate').val(vo.createDate);
                        </tr>
                    </c:forEach>
                    </tbody>
                </table>
            </div>
            <div style="float: right;padding-right: 10px;color: #515151;"><jsp:include page="split.jsp"/></div>
        </div>
    </div>
</div>

<!-- add -->
<div class="modal fade" id="modal-add" tabindex="-1" role="dialog"
     aria-labelledby="myModalLabel">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <form action="XueyuanServlet" onsubmit="return addCheck()">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"
                            aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                    <h4 class="modal-title" id="myModalLabel">增加学员</h4>
                </div>
                <div class="modal-body">
                    <div class="form-group hidden">
                        <label class="control-label">(hidden)</label>
                        <input type="text" class="form-control" name="action" value="add">
                    </div>
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);//Get请求和Post请求的处理是一样的,所以把request、response转交给Post方法就好
    }

    /**
     * 根据参数,查询出条例条件的记录集合,最后将数据返回给调用处或者将数据集合设置到session域里,再跳转到对应的列表页面
     *
     * @param request
     * @param response
     */
    private void redirectList(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //查询列和关键字
        String searchColumn = Util.decode(request, "searchColumn");
        String keyword = Util.decode(request, "keyword");
     *
     * @return 如果连接成功则返回连接对象,如果连接失败返回null
     */
    public static Connection getConnection() throws Exception {
        Class.forName(DBDRIVER);
        return DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
    }
    /**
     * 测试连接是否成功
     *
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) {
        try {
            Connection conn = Util.getConnection();
            System.out.println("数据库连接成功!!!");
            conn.close();
        } catch (Exception e) {

运行环境

Java≥6、Tomcat≥7.0、MySQL≥5.5

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

技术框架

JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Bootstrap Ajax

基础JSP+Servlet或JSP+SSM(Spring、SpringMVC、MyBatis)框架或JSP+SSM+Maven(pom.xml)框架或SpringBoot…均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

登录、注册、退出、用户模块、公告模块、教员模块、学员模块的增删改查管理

20220319005324

20220319005325

20220319005326

20220319005327

20220319005328

20220319005329

20220319005330

20220319005331

20220319005332

20220319005333

20220319005334

document

举报

相关推荐

0 条评论