• JSP-Servlet


    一、简答题
    1>简述servlet的生命周期
    第一次访问某个servlet的时候,tomcat容器会创建servlet实例,紧接着会调用init方法进行初始化。然后执行service方法,在父类中的service方法中判断请求是get或post执行相应的doGet或doPost方法。后面再访问的时候,执行service方法,在父类中的service方法中判断请求是get或post执行相应的doGet或doPost方法。当停止服务或重新加载或将项目从tomcat中移除的时候,会执行destroy方法,释放资源,销毁servlet的实例
    2>servlet中的两个init方法
    带参的init方法是给tomcat调用的,最开始只有这一个方法,但是程序员有些时候也需要初始化一些信息,如果忘记super.init(config);此时tomcat就每办法初始化servlet,导致servlet无法正常访问。后面夹了一个无参的init方法,无参的给程序员用,带参的给tomcat用。就一句话,如果我们需要初始化的时候,重写无参的init方法。
    3>servlet在什么时候创建,servlet是单例的吗
    tomcat会在第一次访问的时候创建servlet的对象,然后调用init方法。请求过来后,执行service方法,再service方法中判断请求是get还是post调用相应的doGet或doPost方法。后面再访该servlet的时候,直接实现sevice方法。servlet是单例的。

    二、编程题
    model2开发模式 实现 数据展示与删除 页面使用 el+jstl实现
    提交的代码 servlet代码以及 jsp代码 以及 运行结果图
    EmpListServlet

    package com.openlab.action;
    
    import com.openlab.bean.Employees;
    import com.openlab.dao.EmployeeDao;
    import com.openlab.dao.impl.EmployeeDaoImpl;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.List;
    
    public class EmpListServlet extends HttpServlet {
        private EmployeeDao employeeDao = new EmployeeDaoImpl();
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            List<Employees> list = employeeDao.findAll();
            req.setAttribute("list",list);
            req.getRequestDispatcher("emplist.jsp").forward(req,resp);
            
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    EmpDelServlet

    package com.openlab.action;
    
    import com.openlab.dao.EmployeeDao;
    import com.openlab.dao.impl.EmployeeDaoImpl;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    @WebServlet(urlPatterns = "/empdel.do")
    public class EmpDelServlet extends HttpServlet {
        EmployeeDao employeeDao = new EmployeeDaoImpl();
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String id = req.getParameter("id");
            int rows = employeeDao.del(Integer.parseInt(id));
            resp.sendRedirect("emplist.do");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    emplist.jsp

    <%@ page import="java.util.List" %>
    <%@ page import="com.openlab.bean.Employees" %><%--
      Created by IntelliJ IDEA.
      User: 11952
      Date: 2022/7/27
      Time: 0:54
      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</title>
        <link href="bootstrap/static/bootstrap-3.3.7-dist/css/bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="js/jquery-1.12.4.js"></script>
        <script type="text/javascript" src="bootstrap/static/bootstrap-3.3.7-dist/js/bootstrap.js"></script>
    </head>
    <body>
    
        <div style="width: 780px;margin: 0px auto">
            <table class="table table-hover">
                <tr>
                    <td>工号</td>
                    <td>姓名</td>
                    <td>性别</td>
                    <td>住址</td>
                    <td>电话</td>
                    <td>工资</td>
                    <td>操作</td>
                </tr>
                <c:forEach items="${list}" var="emp">
                    <tr>
                        <td>${emp.id}</td>
                        <td>${emp.name}</td>
                        <td>${emp.sex}</td>
                        <td>${emp.address}</td>
                        <td>${emp.phone}</td>
                        <td>${emp.salary}</td>
                        <td>
                            <a href="empdel.do?id=${emp.id}" class="btn btn-danger">删除</a>
                        </td>
                    </tr>
                </c:forEach>
            </table>
        </div>
    </body>
    </html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    STM32WL开发之易智联LORA评估板上定时器TIMER的配置与应用
    【SpringMVC】拦截器&JSR303的使用
    有没有什么比较好的小学教育的论文题目?
    【路径规划-TSP问题】基于遗传算法求解多起点多TSP问题附matlab代码
    如何使用PS做出大小水泡组合文字效果呢
    [JAVAee]spring-Bean对象的执行流程与生命周期
    pytorch的梯度图与autograd.grad和二阶求导
    mysql数据库基本操作中where条件查询
    Interest Rate|笔记
    网桥、路由器和网关有什么区别?
  • 原文地址:https://blog.csdn.net/qq_51552328/article/details/126005668