【JavaWeb】练习三

2023-10-30

一、简答题
1>简述servlet的生命周期

第一次访问某个servlet的时候,tomcat容器会创建servlet实例,紧接着会调用init方法进行初始化。然后执行service方法,在父类中的service方法中判断请求是get或post执行相应的doGet或doPost方法。后面再访问的时候,执行service方法,在父类中的service方法中判断请求是get或post执行相应的doGet或doPost方法。当停止服务或重新加载或将项目从tomcat中移除的时候,会执行destroy方法,释放资源,销毁servlet的实例。

2>servlet中的两个init方法

  1. 如果我们直接通过实现Servlet接口来编写一个Servlet类,就需要实现 Servlet接口中定义的5中方法,为了简化Servlet的编写,在javax.servlet包中,给我们提供了一个抽象的类 GenericServlet,它提供了除service()方法外的其他4种方法的简单实现。GenericServlet类定义了一个通用的、不依赖于具体协议的Servlet,它实现了Servlet接口和ServletConfig接口。
  2. 如果我们要编写一个通用的Servlet,只需要从GenericServlet类继承,并实现其中的抽象方法service()。
  • GenericServlet类中,提供了两种重载的init()方法:
    ·public void init(ServletConfig config)throws ServletException
    ·public void init()throws ServletException
  • 第一种init()方法是Servlet接口中init()方法的实现。这种方法中,首先将ServletConfig对象保存在一个transient实例变量中,然后调用第二种不带参数的init()方法。
    通常我们在编写集成自GenericServlet的Servlet类时,只需重写第一种不带参数的init()方法就可以了。如果覆盖了第一种init()方法,那么应该在子类的该方法中,包含一句super.init(config)代码调用。

3>servlet再什么时候创建,servlet是单例的吗

tomcat会在第一次访问的时候创建servlet的对象,然后调用init方法。请求过来后,执行service方法,再service方法中判断请求是get还是post调用相应的doGet或doPost方法。后面再访该servlet的时候,直接实现sevice方法。servlet是单例的。

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

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 {

    }
}
@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");
    }
}
<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>

效果展示:

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【JavaWeb】练习三 的相关文章

  • github使用,上传,上传失败解决方案----03

    1 首先登上github GitHub Where the world builds software GitHub 发现登不上 在设置中找到代理关掉他或者打开不断切换 我就是这么试的他就可以登录了 2 创建账号 首先创建账号 根据提示下一
  • JSP、JSTL标签

  • SpringMVC的拦截器

    SpringMVC的拦截器 SpringMVC的拦截器 SpringMVC的拦截器 01 SpringMVC拦截器 拦截器的作用 理解 02 SpringMVC拦截器 interceptor和filter区别 理解 记忆 03 Spring
  • Java异常和处理机制

    棒棒有言 追逐梦想的过程就像是一个人在走一条黑暗 幽深而又漫长的隧道 多少次跌倒又爬起 经历了多少个暗无天日的黑夜与白天 一路上沉淀着难以计数的汗水与泪水 不断地自我暗示 只要自己坚持 只要勇敢地一向往前走 就必须能找到出口 必须会看到光明
  • 淘宝官方订单API接口,获取售出的商品订单列表(爬虫数据)

    淘宝 天猫获取售出的商品订单列表 API 返回值说明 seller order list 获取售出的商品订单列表 公共参数 名称 类型 必须 描述 key String 是 调用key 必须以GET方式拼接在URL中 获取Key和secre
  • 关于Form表单中action参数传值的问题

    form中get方法时action属性后面传递参数获取不到原因 浏览器会将表单数据封装为字符串 如controller message method search 然后直接附在表单的 action URL 之后 这两者之间用问号 进行分隔度
  • 手把手教你使用Python网络爬虫获取基金信息

    一 前言 前几天有个粉丝找我获取基金信息 这里拿出来分享一下 感兴趣的小伙伴们 也可以积极尝试 二 数据获取 这里我们的目标网站是某基金官网 需要抓取的数据如下图所示 可以看到上图中基金代码那一列 有不同的数字 随机点击一个 可以进入到基金
  • Servlet接口实现类

    JavaWeb 03 Servlet 02 Servlet接口实现类 1 什么是Servlet接口 有什么用 Servlet接口来自于Servlet规范中的一个接口 这个接口存在于Http服务器所提供的jar包中 Servlet接口的具体位
  • javaweb——Response下载文件

    HttpServletResponse web服务器接收到客户端的http请求 针对这个请求分别创建一个代表请求的HttpServletResponse对象 一个代表响应的HttpServletResponse对象 如果要获取客户端请求过来
  • javatServlet中的cookie设置

    cookie 服务器将一些信息存储在浏览器 本地 当用户再次打开网页时 会自动填充该信息 当浏览器再次发送请求时 会将存储的信息通过请求头的方式发送给服务器端 不需要用户每次都填充某些内容 cookie中理论上来讲 最大存储4KB内容 co
  • java复制文件后保持文件的创建时间不变

    复制后保持文件的创建时间不变 File oldFile new File E test old png File newFile new File E test new png FileCopyUtils copy oldFile newF
  • 利用Java EE相关技术实现一个简单的Web聊天室系统

    利用Java EE相关技术实现一个简单的Web聊天室系统 1 编写一个登录页面 登录信息中有用户名和密码 分别用两个按钮来提交和重置登录信息 2 通过请求指派来处理用户提交的登录信息 如果用户名为本小组成员的名字且密码为对应的学号时 跳转到
  • 细谈JavaWeb中的Request和Response

    文章目录 1 Request和Response的概述 2 Request对象 2 1 Request继承体系 2 2 Request获取请求数据 2 2 1 获取请求行数据 2 2 2 获取请求头数据 2 2 3 获取请求体数据 2 2 4
  • jsp+servlet+ajax实现登录

    该案列使用jsp servlet ajax实现登录 页面简洁大方 弹框都是封装的插件 整体案列采用三层的模式 链接数据库方面用的是dbcp的链接池 数据库时mysql 运行效果如下图 下载地址 jsp servlet ajax实现登录案例
  • 完美解决SpringMVC中org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping 404错误

    错误原因描述 出现该错误的原因主要是无法扫描注册 Controller注解的类的实例进入IOC容器而导致的 从而从一下几个方面来分析 MVC配置文件中 component scan 标签扫描包路径是否正确 且是否误写了排除 Controll
  • 数学建模——论文排版

    目录 一 参考文献的排版 1 三种方案 通常使用方案一 方案一有两种方法 2 参考文献排版要点总结 二 附录的排版 具体方法 补充 代码高亮 三 表格标题自动编号 进阶做法 四 公式编辑软件的介绍 1 LaTeX 较难 有时间可学 2 wo
  • 【JavaWeb】 练习二

    1 gt 实现登录 如果用户名密码错误 转入到登录页面 提示信息 用户名密码错误 2 gt 如果用户不登录 直接访问展示页面 也需要转入到登录页面 提示信息 请先登录在访问 3 gt 实现退出功能 转到登录页面 4 gt 统计查看展示页面的
  • IDEA找不到程序包 和 request.getServletContext()报错Cannot resolve method ‘getServletContext()的解决方法

    重新装了idea和down了项目却一直报错 在调用request getServletContext 的方法时一直报Cannot resolve method getServletContext 的错误 网上查了好多方法 大多数都是在说是s
  • JavaWeb——第五章 Servlet

    第五章 Servlet 一 Servlet简介 1 1 动态资源和静态资源 1 2 Servlet简介 二 Servlet开发流程 2 1 目标 2 2 开发过程 三 Servlet注解方式配置
  • 基于动态代理实现接口耗时计算

    对于动态代理模式 Java的反射机制提供了支持 耗时计算写在主逻辑代码存在很强的耦合性 这里提供了一种解耦合的方式去实现 在Spring框架aop也用了这一技术 登录接口 public class UserServiceImpl imple

随机推荐

  • ChatGPT介绍世界杯历史与编写足球游戏python程序

    ChatGPT聊天机器人最近非常流行 是由OpenAI于本月发布的 花了一点时间注册了一个账号 如有需要帮助注册的可以随时与我交流 注册过程相对有一些复杂 除了常规的聊天对话功能之外 ChatGPT聊天机器具备强大的文本生成能力 例如博客
  • html5 key键值屏蔽,javascript键值对中的key为变量

    javascript键值对中的key是可以为变量的 比如js json对象定义的时候也有可能key就是变量的 我们就可以这样做 js代码如下 var userJson 假如userId就是一个js变量 var userId getUserI
  • 代码+步骤GM(1,1)灰色预测模型-案例长江水质综合评价赛题-级比检测C的确定-matlab完整代码附送

    GM 1 1 灰色预测模型 案例长江水质综合评价赛题第三题 matlab完整代码附送 1 对长江近两年多的水质情况做出定量的综合评价 并分析各地区水质的污染状况 2 研究 分析长江干流近一年多主要污染物高锰酸盐指数和氨氮的污染源主要在哪些地
  • 动态代理的过程

    package com jd calculator import java lang reflect InvocationHandler import java lang reflect Method import java lang re
  • java类里面再定一个类_java类的里面可以再定义一个类吗 java里可不可以在一个...

    java类里面还可以定义一个类 即内部类 java内部类分为 成员内部类 静态嵌套类 方法内部类 匿名内部类 内部类的共性 1 内部类仍然是一个独立的类 在编译之后内部类会被编译成独立的 class文件 但是前面冠以外部类的类名和 符号 2
  • 边缘计算开源框架EdgeXFoundry的部署应用开发(三)设备服务开发

    边缘计算开源框架EdgeXFoundry的部署应用开发 三 设备服务开发 使用SDK开发真实设备接入服务 着手编写一个温湿度设备接入 准备相关文件及目录 脚本可选 用于单文件编译测试 编写温湿度设备接入设备服务 功能框架 设备名的解析 配置
  • Python3,10行代码,训练聊天机器人,咱也能让机器人说多国语言。

    这里写目录标题 1 引言 2 代码实战 2 1 安装 2 2 ChatterBot介绍 2 2 实战 3 总结 1 引言 小屌丝 鱼哥 你还欠我点东西 小鱼 额 我还欠南北呢我 小屌丝 你确定不欠啊 小鱼 这还有确定 这是必须 一定 以及肯
  • Ai-WB2模组与手机建立基于Gatt的连接,实现在UART-Bluetooth LE透传模式下传输数据

    目录 前言 一 准备工作 二 使用步骤 1 正确烧录固件验证上电信息 2 配置蓝牙信息 3 手机打开nRF Connect连接蓝牙 4 数据传输 1 手机上报发送数据给模块 模块接收到的数据通过串口打印 2 模块发送数据至手机 联系我们 前
  • 时间格式化及操作(moment.js篇)

    moment js 获取当前时间 返回当前时间moment 时间对象 moment moment new Date 返回当前时间毫秒数 moment valueOf Date now new Date getTime new Date va
  • windows配置DNS

    文章目录 DNS SERVICE配置工作任务 1 安装及配置 DNS 服务 2 创建必要的ChinaSkills cn正向区域 添加必要的域名解析记录 3 配置TXT记录 配置主时间控制服务记录 配置域名反向PTR 4 为当前域网络创建反向
  • Leetcode——长度最小的子数组 / 最短无序连续子数组 / 和为k的连续子数组

    1 长度最小的子数组 1 暴力 使用两个 for 循环 一个 for 循环固定一个数字比如 m 另一个 for 循环从 m 的下一个元素开始累加 当和大于等于 s 的时候终止内层循环 顺便记录下最小长度 class Solution pub
  • fpga ram初始化文件coe与mif

    在FPGA设计中ram是最常用的ip 一般工程中会用到多个ram 使用文件初始化ram 可以为调试带来很多便利 下面就分别介绍一下 使用coe初始化xilinx fpga ram和使用mif文件初始化intel fpga ram的方法 xi
  • 机器学习第十章利用k-均值聚类算法对未标注数据进行分组

    文章目录 引言 10 1k 均值聚类算法 10 2使用后处理来提高聚类性能 10 3二分k 均值算法 10 4小结 引言 聚类是一种无监督的学习 它将相似的对象归到同一个簇中 簇内的对象越相似 聚类的效果越好 K 均值 K means K
  • unity读取Json文件

    这里说的unity读取Json文件 简单来说就是在发布或者未发布时场景里有些数据是通过读取一个或多个外部文件来方便进行操作的 这样做有什么好处呢 就是发布之后方便修改而无需重复再打包 话不多说 1 首先你需要新建一个类 using Syst
  • 计算机地址怎么填写,电脑服务器名称或地址怎么填

    使用宽带路由器的话一般建议手工指定电脑的IP地址和DNS等参数 下面学习啦小编为大家整理了电脑服务器名称或地址怎么填写的内容 欢迎参阅 正确填写电脑IP地址和DNS参数名称 如果你使用的是Windows 2000或Windows XP系统
  • ztree自定义图标(iconSkin,iconClose,iconOpen)

    设计图 先放上ztree的api http www treejs cn v3 api php 首先是ztree的初始化 js文件的初始化 var obj name 福建省 id 1 iconOpen openurl iconClose cl
  • 云原生服务无状态(Stateless)特性的实现

    文章目录 为何要使用无状态服务 无状态服务的实现方法 1 会话状态外部化 2 负载均衡 3 自动伸缩 4 容器编排 5 数据存储 6 安全性 示例 使用Spring Boot实现无状态服务 结论 欢迎来到云计算技术应用专栏 云原生服务无状态
  • Java数组(复习)

    Java数组 数组 数组是指一种容器 可以用来存储同种数据类型的多个值 数组容器在存储数据的时候 需要结合隐士转换考虑 例如 int类型的数组容器 可以存储byte short int类型的数组 double类型的数组可以存储 byte s
  • 如何取消edge浏览器最新版,新增标签页的广告呢?

    今天我打开edge浏览器 快乐的写我的代码 突然发现 新建标签页的时候竟然这样 简直气煞我也 我不允许简洁的生活出现这种事 难道我又要换回谷歌 但是谷歌不能在线备份书签 我已经丢了很多次啦 于是我找到了这个 使用edge官方的插件库安装之后
  • 【JavaWeb】练习三

    一 简答题 1 gt 简述servlet的生命周期 第一次访问某个servlet的时候 tomcat容器会创建servlet实例 紧接着会调用init方法进行初始化 然后执行service方法 在父类中的service方法中判断请求是get