基于javaweb+jsp的学籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

基于javaweb+jsp的学籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

技术框架

JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Layui Ajax

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

适用

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

功能说明

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

document

            <result column="student_major" property="studentMajor" />
            <result column="student_class" property="studentClass" />
            <result column="student_level" property="studentLevel" />
            <result column="student_text" property="studentText" />
    </resultMap>

    <sql id="Base_Column_List">
        `id`,`student_no`,`student_name`,`student_sex`,`student_age`,`student_hometown`,`student_phone`,`student_major`,`student_class`,`student_level`,`student_text`
    </sql>

    <!--新增-->
    <insert id="doCreate" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.demo.vo.Student">
        INSERT INTO `t_student`
        <trim prefix="(" suffix=")" suffixOverrides=",">
                    <if test ='id != null'>`id`,</if>
                    <if test ='studentNo != null'>`student_no`,</if>
                    <if test ='studentName != null'>`student_name`,</if>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">班级:</label>
        <div class="layui-input-block">
            <input type="text" name="studentClass" lay-verify="required|studentClass" class="layui-input" value="${vo.studentClass}">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">学历:</label>
        <div class="layui-input-block">
            <input type="text" name="studentLevel" lay-verify="required|studentLevel" class="layui-input" value="${vo.studentLevel}">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">备注:</label>
        <div class="layui-input-block">
            <textarea type="text" name="studentText" class="layui-input" style="height: 100px;padding-left: 10px;" placeholder="请输入内容......">${vo.studentText}</textarea>
        </div>
    </div>
    //JavaScript代码区域
    layui.use('element', function () {
        let element = layui.element;
    });
</script>
<script type="text/html" id="myToolbar">
    <div class="layui-btn-container">
        <c:if test="${loginUser.userType == '管理员'}"><button class='layui-btn layui-btn-sm' lay-event='add'>添加</button></c:if>
    </div>
</script>
<script>
    function arrayBufferToBase64(buffer) {
        let binary = '';
        let bytes = new Uint8Array(buffer);
        let len = bytes.byteLength;
        for (let i = 0; i < len; i++) {
            binary += String.fromCharCode(bytes[i]);
        }
 */
@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    private StudentMapper studentMapper;


    //@Override
    public boolean insert(Student vo) {
        return this.studentMapper.doCreate(vo) == 1;
    }

    //@Override
    public boolean delete(Collection<Serializable> ids) {
                layer.open({
                    type: 2,
                    area: ['800px', '650px'],
                    fixed: false, //不固定
                    maxmin: true,
                    content: 'noticeGet?id=' + data.id
                });
                obj.update({});//同步更新缓存对应的值
            } else if (layEvent === 'LAYTABLE_TIPS') {
                layer.alert('Hi,头部工具栏扩展的右侧图标。');
            }
        });
        //头工具栏事件
    /**
     * 判断字符串是不是中文
     *
     * @param c
     * @return
     */
    private static boolean isChinese(char c) {
        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
        return (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
                || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
                || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
                || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
                || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
                || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS);
    }

    /**
     * 判断字符串是否是乱码
     *
     * @param strName
     * @return
     */
    public static boolean isMessyCode(String strName) {
        java.util.regex.Pattern p = java.util.regex.Pattern.compile("\\s*|\t*|\r*|\n*");
        java.util.regex.Matcher m = p.matcher(strName);
        String after = m.replaceAll("");
                title: '提示',
                layEvent: 'LAYTABLE_TIPS',
                icon: 'layui-icon-tips'
            }],
            title: '用户列表',
            cols: [
                [
                        {
                            field: 'username',
                            title: '用户名',
                        },
                        {
                            field: 'realName',
                            title: '姓名',
                            templet: vo => (vo = vo.realName) ? '<a href="#" style="color: #009688;">' + vo + '</a>' : '',
                            event: 'info',
                        },
     * @throws IOException
     */
    @RequestMapping("noticeEdit")
    public void edit(HttpServletResponse response, HttpServletRequest request) throws IOException {
        Notice vo = new Notice();
        vo.setId(Long.valueOf(Util.decode(request, "id")));
        vo.setNoticeName(Util.decode(request, "noticeName"));
        vo.setNoticeText(Util.decode(request, "noticeText"));
        vo.setNoticeType(Util.decode(request, "noticeType"));
        vo.setCreateDate(Util.decode(request, "createDate"));
        noticeService.update(vo);
        this.redirectList(request, response);
    }

    /**
     * 获取公告的详细信息(详情页面与编辑页面要显示该公告的详情)并跳转回页面
     *
                搜索:
                <div class="layui-inline">
                    <input class="layui-input" name="search_keyword" id="search_keyword" autocomplete="off" placeholder="姓名">
                    <input type="hidden" class="layui-input" name="searchColumn" id="searchColumn" autocomplete="off" value="real_name">
                </div>
                <button class="layui-btn" data-type="reload">搜索</button>
            </div>
        </div>
        <!-- 内容主体区域 -->
        <table class="layui-hide" id="myData" lay-filter="myTable"></table>
    </div>
</div>
<script src="js/layui/layui.js"/>
<script>
    //JavaScript代码区域
    layui.use('element', function () {
        let element = layui.element;
                $.ajax({
                    type: "GET",
                    dataType: "text",
                    url: "studentDelete?id=" + data.id,
                    success: function () {
                        console.log("已删除!");
                    }
                });
                obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
                //parent.location.reload();//刷新父级页面
                // layer.close(index);
                //parent.location.reload();//刷新父级页面
                layer.msg(data.studentName + ' 删除成功!');
                // });
        params.put("startIndex", 0);
        params.put("pageSize", Long.MAX_VALUE);
        List<User> list = (List<User>) userService.list(params).get("list");
        for (User user : list) {
            if (user.getUsername().equals(username) /*&& user.getPassword().equals(password)*/) {//说明该用户名已存在,必须换个用户名才能注册
                request.getSession().setAttribute("alert_msg", "错误:用户名已存在!");
                request.getRequestDispatcher("register.jsp").forward(request, response);
                return;
            }
        }
        User vo = new User();
        vo.setUsername(username);
        vo.setPassword(password);
        <div class="layui-input-block">
            <textarea type="text" name="studentText" class="layui-input" style="height: 100px;padding-left: 10px;" placeholder="请输入内容......"></textarea>
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button type="submit" class="layui-btn" lay-submit="" lay-filter="submit-button">添加</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>
<script src="js/layui/layui.js" charset="utf-8"></script>
<script>
    layui.use(['form', 'layedit', 'laydate'], function () {
        let form = layui.form, layer = layui.layer, layedit = layui.layedit;
        //创建一个编辑器
        let editIndex = layedit.build('LAY_demo_editor');
        //自定义验证规则
        form.verify({
            content: function (value) {
                layedit.sync(editIndex);
            }
        });

                        fixed: 'right',
                        title: '操作',
                        width: 130,
                        templet: vo => {
                            let flag = ${loginUser.userType == '管理员'};
                            return flag ? '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>' : '';
                        }
                    }
                ]
            ],
        });
        //监听工具条
        table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
            let data = obj.data; //获得当前行数据
            let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
     * @param request
     * @throws IOException
     */
    @RequestMapping("studentDelete")
    public void delete(HttpServletResponse response, HttpServletRequest request) throws IOException {
        Serializable id = Util.decode(request, "id");
        studentService.delete(Arrays.asList(id));
        this.redirectList(request, response);
    }

    /**
     * 编辑学籍
     *
     * @param response

import java.io.Serializable;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

/**
 * Student模块的Service层(业务层)的具体实现类,对StudentService接口中定义的抽象方法作出具体的功能实现
 */
@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
        </c:if>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <ul class="layui-nav layui-nav-tree" lay-filter="test">
                <!-- 侧边栏 -->
                <jsp:include page="menu.jsp">
                    <jsp:param value="active" name="Notice_active"/>
                </jsp:include>
            </ul>
        </div>
    </div>

    <div class="layui-body">
        <div class="search_style" style="padding-top: 10px;padding-left: 15px;">
            <div class="searchTable">
                搜索:
                <div class="layui-inline">
                    <input class="layui-input" name="search_keyword" id="search_keyword" autocomplete="off" placeholder="标题">
                    <input type="hidden" class="layui-input" name="searchColumn" id="searchColumn" autocomplete="off" value="notice_name">
                </div>
                <button class="layui-btn" data-type="reload">搜索</button>
            </div>
        </div>
        <!-- 内容主体区域 -->
        return userPhone;
    }

    public void setUserPhone(String userPhone) {
        this.userPhone = userPhone;
    }
    public String getUserText() {
        return userText;
    }

    public void setUserText(String userText) {
        this.userText = userText;
    }
    public String getUserType() {
        return userType;
    }

    public void setUserType(String userType) {
        this.userType = userType;
    }
}
package com.demo.util;

import org.springframework.web.servlet.HandlerInterceptor;

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于servlet+jsp+mysql开发的JavaWeb学生成绩管理系统,可以实现对学生信息、课程信息和成绩信息的管理。系统的主要功能包括学生信息的添加、修改、删除和查询,课程信息的添加、修改、删除和查询,成绩信息的录入、修改、删除和查询等。同时,系统还可以生成各种报表,如学生信息报表、课程信息报表、成绩信息报表等,方便管理员进行数据分析和决策。系统的开发需要掌握JavaWeb开发技术、ServletJSP的使用、MySQL数据库的操作等知识。 ### 回答2: JavaWeb学生成绩管理系统是一项基于servletjspmysql开发的管理信息系统,旨在为教育管理部门和教师提供一个便利的平台,帮助他们轻松地管理和分析学生成绩和课程信息。 该系统涵盖了学生信息管理、课程信息管理、成绩管理、教师信息管理、管理员信息管理五个模块。在学生信息管理模块,管理员可以添加、修改及删除学生信息,同时可对学生信息进行查询和导出等操作;在课程信息管理模块,管理员可以添加、修改及删除课程信息,同时可对课程信息进行查询和导出等操作。 在成绩管理模块,管理员可以将学生从课程中添加进去,对学生的成绩进行管理、修改及删除等操作。同时,该模块内置了成绩分析和统计功能,使得教师可以使用统计图表看到平均分、最高分、最低成绩等信息,以更好地了解学生的学习情况。 在教师信息管理模块,管理员可以添加、修改及删除教师信息,同时可对教师信息进行查询和导出等操作。教师可以使用该模块对自己授课的课程进行成绩管理并进行统计分析。 在管理员信息管理模块,管理员可以对自己的账号信息进行管理,包括修改密码、添加、删除及修改管理员信息等操作。 总体来说,JavaWeb学生成绩管理系统通过servletjspmysql等技术的应用,实现了对学生成绩、课程等信息进行全方位管理,并且使得数据的统计、排序、查询等功能更加的便捷和高效,为教育管理和学习提供了极大的便利。 ### 回答3: 基于servlet jsp mysql开发javaweb学生成绩管理系统是一种非常实用的系统,可以帮助管理者和学生更好地进行成绩管理。通过该系统,管理者可以随时查看学生的成绩情况,对学生进行动态管理,帮助学生更好地提高成绩。同时,学生也可以随时了解自己在课程中的成绩和提升方向,方便自我调整和完善。 该系统采用了servlet jsp mysql技术进行开发,具有以下优点: 1. 通过servlet技术,可以实现后台数据传输和处理,确保系统的稳定性和安全性; 2. 通过jsp技术,可以实现动态网页的生成和展示,提供更好的用户体验;同时,jsp还可以方便地进行数据查询和修改操作; 3. 通过mysql作为数据库,可以实现数据的存储和管理,确保数据的完整性和可靠性;同时,mysql还具有较高的性能和扩展性,可以满足系统的快速增长。 在实现该系统时,需要进行以下步骤: 1. 分析需求,确定系统的功能和界面设计; 2. 设计数据库结构,确定数据表和字段; 3. 编写servletjsp代码,实现数据的查询、修改和展示功能; 4. 联调测试,确保系统的稳定性和可用性; 5. 部署上线,让用户可以随时使用系统。 总之,基于servlet jsp mysql技术开发javaweb学生成绩管理系统,可以有效提高学生的成绩和帮助管理者更好地管理学生成绩,是一种非常实用和有用的系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值