0
点赞
收藏
分享

微信扫一扫

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

蓝莲听雨 2022-04-14 阅读 39
javamysql

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

JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript Layui Ajax

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

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

适用

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

                <if test ='id != null'>`id` = #{id},</if>
                <if test ='noticeName != null'>`notice_name` = #{noticeName},</if>
                <if test ='noticeText != null'>`notice_text` = #{noticeText},</if>
                <if test ='noticeType != null'>`notice_type` = #{noticeType},</if>
                <if test ='createDate != null'>`create_date` = #{createDate}</if>
        </set>
        WHERE `id` = #{id}
    </update>

    <!--获取-->
    <select id="findById" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" /> FROM `t_notice` WHERE `id` = #{id}
    </select>

    <!--列表-->
    <select id="findAllSplit" parameterType="java.util.Map" resultMap="BaseResultMap">
                ]
            ],
        });
        //监听工具条
        table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
            let data = obj.data; //获得当前行数据
            let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
            if (layEvent === 'del') { //删除
                // layer.confirm('删除' + data.shiyanshiName + "?", function (index) {
                $.ajax({
                    type: "GET",
                    dataType: "text",
                    url: "shiyanshiDelete?id=" + data.id,
                    success: function () {
                        console.log("已删除!");
                    }
                });
                obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
                //parent.location.reload();//刷新父级页面
                // layer.close(index);
                //parent.location.reload();//刷新父级页面
                layer.msg(data.shiyanshiName + ' 删除成功!');
                // });
                // });
            } else if (layEvent === 'edit') { //编辑
                layer.open({
                    type: 2,
                    area: ['800px', '550px'],
                    fixed: false, //不固定
                    maxmin: true,
                    content: 'shebeiEditPre?id=' + data.id
                });
                obj.update({});//同步更新缓存对应的值
            } else if (layEvent === 'info') { //详情
                layer.open({
                    type: 2,
                    area: ['800px', '650px'],
                    dataType: "text",
                    url: "shebeiDelete?id=" + data.id,
                    success: function () {
                        console.log("已删除!");
                    }
                });
                obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
                //parent.location.reload();//刷新父级页面
                // layer.close(index);
                //parent.location.reload();//刷新父级页面
                layer.msg(data.shebeiName + ' 删除成功!');
                // });
            } else if (layEvent === 'edit') { //编辑
        weixiuService.delete(Arrays.asList(id));
        this.redirectList(request, response);
    }

    /**
     * 编辑维修
     *
     * @param response
     * @param request
     * @throws IOException
     */
    @RequestMapping("weixiuEdit")
    public void edit(HttpServletResponse response, HttpServletRequest request) throws IOException {
        Weixiu vo = new Weixiu();
        vo.setId(Long.valueOf(Util.decode(request, "id")));
        vo.setWeixiuName(Util.decode(request, "weixiuName"));
        vo.setWeixiuShiyanshi(Util.decode(request, "weixiuShiyanshi"));
        vo.setWeixiuBaoxiuren(Util.decode(request, "weixiuBaoxiuren"));
        vo.setWeixiuYuanyin(Util.decode(request, "weixiuYuanyin"));
        vo.setWeixiuZhuangtai(Util.decode(request, "weixiuZhuangtai"));
                </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;
    });
</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>
    </insert>

    <!--批量删除-->
    <delete id="doRemoveBatch" parameterType="java.util.Collection">
        DELETE FROM `t_weixiu` WHERE `id` IN
        <foreach collection="list" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>

    <!--修改-->
    <update id="doUpdate" parameterType="com.demo.vo.Weixiu">
        UPDATE `t_weixiu`
        <set>
                <if test ='id != null'>`id` = #{id},</if>
                <if test ='weixiuName != null'>`weixiu_name` = #{weixiuName},</if>
                <if test ='weixiuShiyanshi != null'>`weixiu_shiyanshi` = #{weixiuShiyanshi},</if>
                <if test ='weixiuBaoxiuren != null'>`weixiu_baoxiuren` = #{weixiuBaoxiuren},</if>
                <if test ='weixiuYuanyin != null'>`weixiu_yuanyin` = #{weixiuYuanyin},</if>
                <if test ='weixiuZhuangtai != null'>`weixiu_zhuangtai` = #{weixiuZhuangtai},</if>
                <if test ='weixiuBaoxiushjjian != null'>`weixiu_baoxiushjjian` = #{weixiuBaoxiushjjian},</if>
                <if test ='weixiuWeixiuren != null'>`weixiu_weixiuren` = #{weixiuWeixiuren},</if>
                <if test ='weixiuWeixiushijian != null'>`weixiu_weixiushijian` = #{weixiuWeixiushijian}</if>
        </set>

    <!--批量删除-->
    <delete id="doRemoveBatch" parameterType="java.util.Collection">
        DELETE FROM `t_notice` WHERE `id` IN
        <foreach collection="list" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>

    <!--修改-->
    <update id="doUpdate" parameterType="com.demo.vo.Notice">
        UPDATE `t_notice`
        <set>
                <if test ='id != null'>`id` = #{id},</if>
                <if test ='noticeName != null'>`notice_name` = #{noticeName},</if>
                <if test ='noticeText != null'>`notice_text` = #{noticeText},</if>
                <if test ='noticeType != null'>`notice_type` = #{noticeType},</if>
                <if test ='createDate != null'>`create_date` = #{createDate}</if>
        </set>
        WHERE `id` = #{id}
    </update>
                            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 参数对应的值)
            if (layEvent === 'del') { //删除
                // layer.confirm('删除' + data.weixiuName + "?", function (index) {
                $.ajax({
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.List;
                ]
            ],
        });
        //监听工具条
        table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
            let data = obj.data; //获得当前行数据
            let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
            if (layEvent === 'del') { //删除
                // layer.confirm('删除' + data.shebeiName + "?", function (index) {
                $.ajax({
                    type: "GET",
                    dataType: "text",
                    url: "shebeiDelete?id=" + data.id,
                    success: function () {
                        console.log("已删除!");
                    }
        vo.setWeixiuBaoxiuren(Util.decode(request, "weixiuBaoxiuren"));
        vo.setWeixiuYuanyin(Util.decode(request, "weixiuYuanyin"));
        vo.setWeixiuZhuangtai(Util.decode(request, "weixiuZhuangtai"));
        vo.setWeixiuBaoxiushjjian(Util.decode(request, "weixiuBaoxiushjjian"));
        vo.setWeixiuWeixiuren(Util.decode(request, "weixiuWeixiuren"));
        vo.setWeixiuWeixiushijian(Util.decode(request, "weixiuWeixiushijian"));
        //调用Service层的增加(insert)方法
        weixiuService.insert(vo);
        this.redirectList(request, response);
    }

    /**
     * 删除维修
     *
     * @param response
     * @param request
     * @throws IOException
     */
    @RequestMapping("weixiuDelete")
    public void delete(HttpServletResponse response, HttpServletRequest request) throws IOException {
        Serializable id = Util.decode(request, "id");
        weixiuService.delete(Arrays.asList(id));
            //  在图形上输出验证码字符,x和y都是随机生成的
            g.drawString(String.valueOf(codeChar), 16 * i + random.nextInt(7), height - random.nextInt(6));
        }
        HttpSession session = request.getSession();
        session.setMaxInactiveInterval(5 * 60);
        //  将验证码保存在session对象中,key为validation_code
        session.setAttribute("validationCode", validationCode.toString());
        g.dispose();//  关闭Graphics对象
        OutputStream os = response.getOutputStream();
        ImageIO.write(image, "JPEG", os);// 以JPEG格式向客户端发送图形验证码
    }

    @RequestMapping("authResetPassword")
    public void resetPassword(HttpServletResponse response, HttpServletRequest request) throws IOException, ServletException {
        String msg;
        User loginUser = (User) request.getSession().getAttribute("loginUser");
        String oldPassword = Util.decode(request, "oldPassword");
        if (!loginUser.getPassword().equals(oldPassword)) {
            msg = "原密码错误!";
        } else {
                        }
                    }
                ]
            ],
        });
        //监听工具条
        table.on('tool(myTable)', function (obj) { //注:tool 是工具条事件名,myTable 是 table 原始容器的属性 lay-filter="对应的值"
            let data = obj.data; //获得当前行数据
            let layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
            if (layEvent === 'del') { //删除
                // layer.confirm('删除' + data.shiyanshiName + "?", function (index) {
                $.ajax({
                    type: "GET",
                    dataType: "text",
        <c:if test="${loginUser!=null}">
            <ul class="layui-nav layui-layout-right">
                <li class="layui-nav-item"><a>${loginUser.username}</a></li>
                <li class="layui-nav-item"><a href="authLogout">退出登录</a></li>
            </ul>
        </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="Shiyanshi_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="shiyanshi_name">
@Controller
@RequestMapping
public class ShebeiController {

    @Autowired
    private ShebeiService shebeiService;

    /**
     * 增加设备
     *
     * @param response
     * @param request
     * @throws IOException
     */
    @RequestMapping("shebeiAdd")
    public void add(HttpServletResponse response, HttpServletRequest request) throws IOException {
        Shebei vo = new Shebei();
        //取出页面传进来的参数
        vo.setShebeiName(Util.decode(request, "shebeiName"));
        vo.setShebeiShiyanshi(Util.decode(request, "shebeiShiyanshi"));
        vo.setShebeiShuliang(Util.decode(request, "shebeiShuliang"));
    public String getWeixiuBaoxiuren() {
        return weixiuBaoxiuren;
    }

    public void setWeixiuBaoxiuren(String weixiuBaoxiuren) {
        this.weixiuBaoxiuren = weixiuBaoxiuren;
    }
    public String getWeixiuYuanyin() {
        return weixiuYuanyin;
    }

    public void setWeixiuYuanyin(String weixiuYuanyin) {
        this.weixiuYuanyin = weixiuYuanyin;
    }
    public String getWeixiuZhuangtai() {
        return weixiuZhuangtai;
    }

运行环境

Java≥6、Tomcat≥7.0、MySQL≥5.5

开发工具

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…均可

适用

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

功能说明

登录、注册、退出、用户模块、公告模块、设备模块、实验室模块、维修模块的增删改查管理

20220319001004

20220319001005

20220319001006

20220319001007

20220319001008

20220319001009

20220319001010

20220319001011

20220319001012

document

举报

相关推荐

0 条评论