Servlet学习笔记

news2025/1/12 20:53:07

1.在pom.xml中添加依赖

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <!-- 不会最终打包到服务器中去 -->
        <scope>provided</scope>
    </dependency>
</dependencies>

2.编写实现:
在pom.xml中导入servlet的jar包
编写一个类实现Servlet接口
重写接口中所有的方法,其中service()方法用来处理用户的请求
在类上使用@WebServlet(“/访问地址”)注解指定访问地址,注:前面一定要加上/
修改后可以用右边的绿色箭头重新部署
在这里插入图片描述
在写了实现后点击红色的灯泡,可以自动选择重写override的方法生成
在这里插入图片描述
servlet和service都是由中间件创建和调用的
3.生命周期
一个servlet只会在容器中生成一个对象
在这里插入图片描述
4.设置在启动的时候就加载servlet生成对象:
使用loadOnStartup参数,数字越小越先加载,最小为0

@WebServlet(value = "/demo1",loadOnStartup = 1)

5.httpservlet:

/**
 * 以后只需要继承于HttpServlet,并且重写doGet或doPost方法即可
 * 如果没有重写相应的方法会出现405错误
 */
@WebServlet("/demo3")
public class Demo3HttpServlet extends HttpServlet {

    //处理浏览器发送的get请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("收到GET请求");
    }

    //处理浏览器发送的post请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("收到POST请求");
    }
}

6.url路由匹配:

/**
 * urlPattern配置,有以下四种情况:
 * 1) 精确匹配:访问地址与Servlet地址完全一样  @WebServlet("/Demo4Servlet")
 * 2) 目录匹配:访问某个目录下所有的地址,都会访问这个Servlet   @WebServlet("/user/*")
 * 3) 扩展名匹配:访问某种类型的资源,都可以  @WebServlet("*.do") 注:前面没有/
 * 4) 任意匹配: 任何一个地址都可以访问    @WebServlet("/*")
 *
 * 路径匹配原则:
 *  1) 哪个地址更接近,访问哪个
 *  2) 以/开头的访问地址,比扩展名结尾的访问地址,优先级更高
 *
 *  urlPatterns就是value,就是访问地址
 */
@WebServlet("/demo4")
public class Demo4Servlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("访问demo4...");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

7.编写返回响应

@WebServlet("/demo4")
public class Demo4Servlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("访问demo4...");
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/76079.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot内置tomcat启动过程及原理

作者&#xff1a;李岩科 1 背景 SpringBoot 是一个框架&#xff0c;一种全新的编程规范&#xff0c;他的产生简化了框架的使用&#xff0c;同时也提供了很多便捷的功能&#xff0c;比如内置 tomcat 就是其中一项&#xff0c;他让我们省去了搭建 tomcat 容器&#xff0c;生成 …

和年薪30W的阿里测试员聊过后,才知道自己一直在打杂...

前几天和一个朋友聊面试&#xff0c;他说上个月同时拿到了腾讯和阿里的offer&#xff0c;最后选择了阿里。 阿里内部将员工一共分为了14个等级&#xff0c;P6是资深工程师&#xff0c;P7是技术专家。 其中P6和P7就是一个分水岭了&#xff0c;P6是最接近P7的不持股员工&#x…

JavaScript-DOM操作表格

DOM操作表格的用途 DOM操作表格会在项目做数据展示的时候用到&#xff0c;其余地方使用并不多。 表格内容 <table><thead><tr><th>编号</th><th>姓名</th><th>性别</th><th>年龄</th></tr></thead…

二叉树遍历非递归算法

二叉树遍历非递归算法 文章目录二叉树遍历非递归算法二叉树的遍历一、先序遍历非递归算法算法构思&#xff1a;从先序遍历的递归算法得出循环算法的思路:下面进行框架构建:代码实操:二、中序遍历(左-根-右)非递归算法中序遍历二叉树的过程构建思路:根据以上思路&#xff0c;构建…

vscode 安装clangd插件 替代 c++自带插件

目录 1. 背景 2. 安装clangd 安装前&#xff1a;禁用c插件 2.1 clangd插件名称 2.2 安装 2.3 配置 settings.json 2.4 语言服务器下载 2.5 安装 cmake tools 2.6 设置编译选项 3. 生成 compile_command.json 4. 查看使用效果 1. 背景 vscode c开大家一般用 vscode 自家…

磨金石教育摄影技能干货分享|乡愁摄影作品欣赏

乡愁是是什么&#xff1f; 我们走在异乡的街道上&#xff0c;人声嘈杂的一瞬间&#xff0c; 或许是某个角落&#xff0c;或许是某个人的声音&#xff0c; 让你感到无比的熟悉&#xff0c;在你的记忆深处掀起了一阵阵浪花。 这个熟悉的感觉就是乡愁 它可以是家乡的一棵树 …

JUC(5) : ForkJoinPool | 线程的极致管理

一、前言 前文介绍了线程的异步编排工具类 CompletableFuture 的使用&#xff0c;使用它能够很好的完成线程任务的编排工作&#xff0c;但同时&#xff0c;我们也注意到&#xff0c;其使用的默认线程池是 ForkJoinPool.commonPool() 的方法。则这个线程池是共用的&#xff0c;…

一个普通前端的2022年终总结:多病的一年

多病 用一个词总结我的2022 &#xff0c;毫无疑问是【多病】。 翻看挂号记录&#xff0c;今年累计跑了19次医院&#xff0c;除去定期的脱发复查、尿常规复查外&#xff0c;其他还得了皮肤病、急性咽炎、筋膜炎、结膜炎、肾结石、慢性胃炎、胸闷&#xff0c;体验过了无法忍受的…

基于java+springmvc+mybatis+jsp+mysql的网络作者与美工交流平台

项目介绍 本次设计任务是要设计一个网络作者与美工交流平台&#xff0c;通过这个系统能够满足网络作者与美工交流信息的管理及版主的网络作者与美工交流信息管理功能。系统的主要功能包括&#xff1a;主页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;版主管理&#…

text文本属性

text文本属性 源代码 color color属性用于定义文本的颜色&#xff0c;有预定义的颜色值(red, blue, yellow)、十六进制(#FF0000, #FF6600,#29D794)、RBG代码(rgb(255,0,0)或rgb(100%,0%,0%)) text-align text-align属性用于设置元素内文本的水平对…

R语言对BRFSS数据探索回归数据分析

执行摘要 最近我们被客户要求撰写关于BRFSS的研究报告&#xff0c;包括一些图形和统计输出。该项目包括探索一个现实世界的数据集-CDC的2013年 行为风险因素监视系统 -并针对三个 选择的研究问题创建报告。 选择的研究问题及其各自的结果是&#xff1a; 被访者对其健康状况…

Redis框架(一):Redis入门和Jedis连接池

Redis入门和Jedis连接池&#xff1a;基本介绍实例Demo源码分析SpringCloud章节复习已经过去&#xff0c;新的章节Redis开始了&#xff0c;这个章节中将会回顾Redis 主要依照以下几个原则 基础实战的Demo和Coding上传到我的代码仓库在原有基础上加入一些设计模式&#xff0c;st…

c#扩展方法

1、前言: 通常,我们想要向一个类型中添加方法,可以通过以下两种方式: 修改源代码。 在派生类中定义新的方法。 但是以上方法并不是万能的,我们并不能保证拥有一个类型的源码,也并不能保证这个类型可以让我们继承(如结构,枚举,String等等)。但是C#提供了一个办法,…

教你如何写一个符合自己需求的小程序日历组件

1|0 前言 很多时候&#xff0c;我们生活中会有各种打卡的情况&#xff0c;比如 keep 的运动打卡、单词的学习打卡和各种签到打卡或者酒店的入住时间选择&#xff0c;这时候就需要我们书写一个日历组件来处理我们这种需求。 但是更多时候&#xff0c;我们都是网上找一个插件直…

【HBase】【一】windows搭建源码开发环境

目录环境配置1. Windows安装Cygwin2. 安装ProtocolBuffers3. 启动zookeeper4. 搭建Hadoop环境5. 编译Hbase源码6. 启动HRegionServer7. 启动HMaster8. 启动HShell客户端环境配置 系统&#xff1a;windows10 IDE: Eclipse hadoop: 3.3.4 hbase: 2.4.15 java: 17 1. Window…

pytest学习——pytest插件的7种用法

1.pytest-repeat 重复跑 安装包 pip install pytest-repeat第一种用法&#xff1a; 装饰器 pytest.mark.repeat(次数) 示例代码 import pytest pytest.mark.repeat(5) def test_001(): assert 12 if __name__ __main__: pytest.main([-sv,__file__])第二种用法&#xff1a…

[附源码]Python计算机毕业设计SSM基于数据挖掘的毕业生离校信息系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 Ma…

基于牛顿方法在直流微电网潮流研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;本科计算机专业&#xff0c;研究生电气学硕…

拆解理想汽车Q3财报:收入增速继续下滑,年内两次更换首席技术官

12月9日&#xff0c;理想汽车&#xff08;NASDAQ:LI、HK:02015&#xff09;发布截至2022年9月30日止季度&#xff08;即2022年第三季度&#xff09;的未经审计财务业绩。财报显示&#xff0c;理想汽车2022年第三季度的收入为93.42亿元&#xff0c;同比增加20.2%&#xff0c;低于…

(九)Vue之侦听/监听/监视属性

文章目录普通实现监视属性实现Vue里配置监视属性Vue外配置监视属性配置属性immediate配置deep&#xff08;深度监视&#xff09;配置普通监视监视多级结构中某个属性的变化监视多级结构中所有属性的变化监视属性简写watch配置简写$watch配置简写监视属性vs计算属性Vue学习目录上…