Day13--JavaWeb学习之Servlet后端渲染界面

基于Day12中登录页面实现的修改,这里实现的是如果登录成功,跳到LoginSuccess页面中展示后端查询到数据库中的信息,并实现在浏览器实现插入数据和删除数据(mybaits)。

当输入账号密码正确后进入LoginSuccess页面,通过resp.getWriter来编写后端需要渲染的页面。

数据删除:

后端渲染数据展示的页面

在数据展示页面增加删除操作按钮,让点击后跳转到**@WebServlet("/DelUser"),真正实现数据删除的地方**

java 复制代码
@WebServlet("/LoginSuccess")
public class LoginSuccess extends HttpServlet {
    //收参数
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        List<Student> info = (List<Student>) req.getAttribute("AllInfo");
        PrintWriter wr = resp.getWriter();
        wr.write("<!DOCTYPE html>");
        wr.println("<html>");
        wr.println("<head>");
        wr.write("</head>");
        wr.println("<body>");
        wr.write("<table cellpadding='2' cellspacing='2' center='100%' border='1'>");
        wr.write("<tr><th>学号</th><th>姓名</th><th>性别</th><th>年龄</th><th>专业</th><th>操作</th></tr>");
        wr.write("<tr><a href='Insert'>信息录入</a></tr>");
        for (int i = 0; i < info.size(); i++) {
            wr.write("<tr>");
            wr.write("<td>" + info.get(i).getSno() + "</td>");
            wr.write("<td>" + info.get(i).getName() + "</td>");
            wr.write("<td>" + info.get(i).getSex() + "</td>");
            wr.write("<td>" + info.get(i).getAge() + "</td>");
            wr.write("<td>" + info.get(i).getMajor() + "</td>");
            wr.write("<td> <a onclick=\"if(confirm('确认删除吗?'))return true;return false;\" " +
                    "href=DelUser?Sno="+ info.get(i).getSno()+">删除</a></td>");
            wr.write("</tr>");
        }
        wr.write("</table>");

        wr.println("</body>");
        wr.println("</html>");

    }
}

实现执行删除的操作代码:

java 复制代码
@WebServlet("/DelUser")
public class DelUser extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");
        String Sno = req.getParameter("Sno");
        System.out.println("Sno = " + Sno);
        GetMapper getMapper = new GetMapper();
        getMapper.delete(Integer.valueOf(Sno));
        ArrayList<Student> stu = getMapper.selectAll();
        req.setAttribute("AllInfo", stu);
        if (!stu.isEmpty()) {
            req.getRequestDispatcher("LoginSuccess").forward(req, resp);
        }
    }
}

数据的插入:

后端渲染数据插入的页面

java 复制代码
@WebServlet("/Insert")
public class Insert extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter wr = resp.getWriter();
        wr.println("<html>");
        wr.println("<head>");
        wr.println("<title>Servlet Insert</title>");
        wr.println("</head>");
        wr.println("<body>");
        wr.println("<h1>Servlet Insert </h1>");
        wr.write("<div class='container'> " +
                "<form action='InsertOk'>"+
                "学号:<input type='text' name='sno'><br>" +
                "姓名:<input type='text' name='name'><br>" +
                "性别:<input type='text' name='sex'><br>" +
                "年龄:<input type='text' name='age'><br>" +
                "专业:<input type='text' name='major'><br>"+
                "<button>提交添加</button>" +
                "</form>"+
                "</div>");
        wr.println("</body>");
        wr.println("</html>");
    }
}

后端处理数据插入的代码:

java 复制代码
@WebServlet("/InsertOk")
public class InsertOk extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=utf-8");

        String major = req.getParameter("major");
        String age = req.getParameter("age");
        String sex = req.getParameter("sex");
        String name = req.getParameter("name");
        String sno = req.getParameter("sno");
        Student student = new Student(Integer.valueOf(sno),name,sex,Integer.valueOf(age),major);
        GetMapper getMapper = new GetMapper();
        getMapper.insert(student);
        ArrayList<Student> stu = getMapper.selectAll();
        req.setAttribute("AllInfo", stu);
        if (!stu.isEmpty()) {
            req.getRequestDispatcher("LoginSuccess").forward(req, resp);
        }
    }
}
相关推荐
安当加密3 小时前
达梦数据库TDE透明加密解决方案:构建高安全数据存储体系
网络·数据库·安全
于小汐在咯3 小时前
词根学习笔记 | Agri系列
笔记·学习
霜绛4 小时前
Unity:Json笔记——Json文件格式、JsonUtlity序列化和反序列化
学习·unity·json·游戏引擎
Jabes.yang5 小时前
Java求职面试实战:从Spring Boot到微服务架构的技术探讨
java·数据库·spring boot·微服务·面试·消息队列·互联网大厂
我命由我123455 小时前
Excel - Excel 列出一列中所有不重复数据
经验分享·学习·职场和发展·word·powerpoint·excel·职场发展
璞致电子5 小时前
fpga开发板ZYNQ 璞致 PZ7010/7020 邮票孔核心板简介-ZYNQ7000系列小系统学习板
linux·嵌入式硬件·学习·fpga开发·fpga·fpga开发板·xilinx开发板
阿巴~阿巴~6 小时前
Redis 核心文件、命令与操作指南
数据库·redis·缓存·客户端·服务端
koping_wu6 小时前
【Redis】用Redis实现分布式锁、乐观锁
数据库·redis·分布式
abcefg_h6 小时前
关系型数据库与非关系型数据库
数据库·nosql
Miki Makimura6 小时前
Reactor 模式实现:从 epoll 到高并发调试
运维·服务器·c++·学习