Servlet 3.0 注解开发

news2024/11/25 20:41:03

文章目录

  • Servlet3.0注解开发
  • 修改idea创建注解的servlet模板
    • 内容讲解
  • 关于servlet3.0注解开发的疑问_配置路径省略了属性urlPatterns
    • 内容讲解
    • 内容小结

在这里插入图片描述


Servlet3.0注解开发

【1】问题

说明:之前我们都是使用web.xml进行servlet映射路径的配置。这样配置的弊端:web.xml中具有非常多个配置信息,显得非常臃肿并且容易出错。

【2】解决问题

使用 web.xml 配置映射路径的方式属于servlet2.5的技术。

从 Servlet3.0(tomcat7往上都支持Servlet3.0) 开始引入注解配置访问servlet取代了web.xml配置。

<!--  TODO:想使用注解开发导入的Servlet依赖必须是3.0以上的      -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

【3】配置步骤:

1.在包上右键---new---servlet(create new Servlet)
2.输入类名
3.在方法体内输入逻辑代码
4.在浏览器地址栏中输入访问的路径

【4】实现

1.在包上右键—new—servlet(create new Servlet)

在这里插入图片描述

2.输入类名

在这里插入图片描述

3.在方法体内输入逻辑代码

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("/annoDemo01Servlet")
public class AnnoDemo01Servlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("注解开发");
    }
}

4.在浏览器地址栏中输入访问的路径访问即可


修改idea创建注解的servlet模板

内容讲解

1.File----Settings

在这里插入图片描述

2.找到 servlet 的模板,按照如下修改

在这里插入图片描述

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
@javax.servlet.annotation.WebServlet("/${Entity_Name}")
public class ${Class_Name} extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {
            doGet(request,response);
}

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, java.io.IOException {

}
}

关于servlet3.0注解开发的疑问_配置路径省略了属性urlPatterns

内容讲解

正常我们在 WebServlet 注解中配置的路径赋值给属性 urlPatterns,但是urlPatterns不能省略的,在一个注解中,如果含有多个属性,并且每个属性都有默认值,此时给value赋值可以省略value属性。

在这里插入图片描述

注意啦:在 WebServlet 注解中 value 等同于 urlPatterns 属性。

在这里插入图片描述

内容小结

  1. 在WebServlet注解中value等同于urlPatterns属性,实际开发中我们实际上省略的是value属性

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;
/*
    1.从servlet3.0开始使用注解@WebServlet取代了在web.xml配置servlet开发
    2.@WebServlet注解常见属性:
        1) String name() default ""; name = "demo01AnnoServlet" 相当于web.xml中的标签:
            <servlet-name>demo01AnnoServlet</servlet-name>
            在注解开发中可以不书写该属性name
        2) String[] urlPatterns() default {};urlPatterns = "/demo01AnnoServlet"相当于web.xml中的标签:
            <url-pattern>/demo01AnnoServlet</url-pattern>
        3)在注解@WebServlet中属性value等同于属性urlPatterns,定义value属性的原因是我们在使用servlet注解开发的时候可以省略value属性,
            @WebServlet("/demo01AnnoServlet") 省略了value
 */
//@WebServlet(value = "/demo01AnnoServlet",name = "demo01AnnoServlet")
//@WebServlet(urlPatterns = "/demo01AnnoServlet")
//@WebServlet(value = "/demo01AnnoServlet")
@WebServlet("/demo01AnnoServlet")
public class Demo01AnnoServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("注解开发servlet,是不是很爽");
    }
}

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

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

相关文章

如何把网页的图片批量下载?3批量下载方法有详细步骤

如何把网页的图片批量下载&#xff1f;在浏览网页时&#xff0c;我们经常会遇到内容丰富、图片繁多的页面&#xff0c;无论是欣赏美图集、研究设计案例&#xff0c;还是收集教学素材&#xff0c;这些图片往往都是宝贵的资源。然而&#xff0c;一张张手动保存不仅耗时费力&#…

Linux中SPI

参考资料 https://www.cnblogs.com/aaronLinux/p/6219146.html1.SPI 2.SPI传输 2.1传输示例 首先&#xff0c;CS0拉低选中的SPI Flash , 然后在每个时钟周期&#xff0c; DO输出对应的电平。 SPI FLASH会在每个时钟的上升沿读取D0的电平。2.2SPI模式 根据SCK的电平以及数据在…

状态机模型

文章目录 一、大盗阿福二、股票买卖 IV三、股票买卖 V四、设计密码4.1kmp题目4.2设计密码 一、大盗阿福 题目链接 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int N 1e5 10; int f[N][2]; int main() {int…

用户统计开发思路

1. 需求分析 所谓用户统计&#xff0c;实际上统计的是用户的数量。通过折线图来展示&#xff0c;上面这根蓝色线代表的是用户总量&#xff0c;下边这根绿色线代表的是新增用户数量&#xff0c;是具体到每一天。所以说用户统计主要统计两个数据&#xff0c;一个是总的用户数量&…

我开源了一个短视频应用(Go+React)|DouTok2.0 项目介绍

前言 大家好&#xff0c;这里是白泽&#xff0c;拖更了一段时间&#xff0c;抱歉。在 DouTok2.0 可以初步允许大家接入开发之后&#xff0c;这篇文章才得以出炉。 DouTok&#xff1a;一个开源的 web 端的短视频应用&#xff0c;采用微服务架构&#xff0c;包含前后端&#xff…

JavaEE初阶---网络原理之TCP篇(二)

文章目录 1.断开连接--四次挥手1.1 TCP状态1.2四次挥手的过程1.3time_wait等待1.4三次四次的总结 2.前段时间总结3.滑动窗口---传输效率机制3.1原理分析3.2丢包的处理3.3快速重传 4.流量控制---接收方安全机制4.1流量控制思路4.2剩余空间大小4.3探测包的机制 5.拥塞控制---考虑…

玩转HF/魔搭/魔乐社区

下载依赖 下载指定文件 玩转HF/魔搭/魔乐社区 1. 闯关任务 &#x1f600;Hello大家好&#xff0c;这节课为大家带来“玩转HF/魔搭/魔乐社区”的课程&#xff0c;课程任务请访问闯关任务 2. 课程内容 &#x1f600;Hello大家好&#xff0c;欢迎来到书生大模型实战营第四期…

ReactNative Fabric渲染器和组件(5)

ReactNative Fabric渲染器和组件 简述 Fabric是ReactNative中新架构最核心的模块&#xff0c;本章我们会来了解一下自定义一个Fabric组件&#xff0c;然后在JS文件中声明之后如何&#xff0c;是怎么映射到原生构建一个View的。 关于Fabric架构理念官网已经有说明了&#xff0…

DataSophon集成ApacheImpala的过程

注意: 本次安装操作系统环境为Anolis8.9(Centos7和Centos8应该也一样) DataSophon版本为DDP-1.2.1 整合的安装包我放网盘了: 通过网盘分享的文件&#xff1a;impala-4.4.1.tar.gz等2个文件 链接: https://pan.baidu.com/s/18KfkO_BEFa5gVcc16I-Yew?pwdza4k 提取码: za4k 1…

计算机网络-MSTP概述

一、RSTP/STP的缺陷与不足 前面我们学习了RSTP对于STP的一些优化与快速收敛机制。但在划分VLAN的网络中运行RSTP/STP&#xff0c;局域网内所有的VLAN共享一棵生成树&#xff0c;被阻塞后的链路将不承载任何流量&#xff0c;无法在VLAN间实现数据流量的负载均衡&#xff0c;导致…

字节青训-兔群繁殖之谜

问题描述 生物学家小 R 正在研究一种特殊的兔子品种的繁殖模式。这种兔子的繁殖遵循以下规律&#xff1a; 每对成年兔子每个月会生育一对新的小兔子&#xff08;一雌一雄&#xff09;。新生的小兔子需要一个月成长&#xff0c;到第二个月才能开始繁殖。兔子永远不会死亡。 小 R…

uniapp写移动端,适配苹果手机底部导航栏,ios安全区问题,苹果手机遮挡底部信息,uview的u-action-sheet组件

手机上有很多组件&#xff0c;需要手机底部弹窗来做选择,picker选择器&#xff0c;select列选择器呀这些&#xff0c;在苹果手机上会被底部nav遮住 采用了好几种配置的方式&#xff0c;多多少少都不太行&#xff0c;还是采用css来做吧&#xff0c;但是css来写想让它生效&#x…

从零开始使用Surya-OCR最新版本0.6.1——最强文本检测模型:新添表单表格检测识别

目录 一、更新概述 二、环境安装 1.基础环境配置 2.模型参数下载 3.参数地址配置——settings.py 三、指令使用 1.命令指令运行 一、更新概述 surya项目Github地址&#xff1a;https://github.com/VikParuchuri/surya 号称今年最强OCR的surya近期迎来新的更新&#xff0c;Vik…

深入理解C++ Lambda表达式:语法、用法与原理及其包装器的使用

深入理解C Lambda表达式&#xff1a;语法、用法与原理及其包装器的使用 lambda表达式C98中的一个例子lambda表达式语法lambda表达式各部分说明捕获列表说明 函数对象与lambda表达式 包装器function包装器 bind &#x1f30f;个人博客主页&#xff1a; 个人主页 本文深入介绍了…

nacos介绍

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。它致力于提供发现、配置和管理微服务的统一解决方案&#xff0c;以支持构建云原生应用。 服务发现&#xff08;Service Discovery&#xff09;&#xff1a; Nacos 支持服务的动态注册与发现&#xff…

【操作系统实验课】Git操作基础

1. Windows系统 1.1. Git下载安装 下载 Git 访问 Git 官方网站:https://git-scm.com/。 在页面中找到适合 Windows 系统的下载链接,一般会有 “Windows” 字样的按钮,点击下载安装程序。 安装 Git 运行下载的安装程序。 在安装向导中,一般可以选择默认设置,也可以根…

搜维尔科技:Xsens动作捕捉、Manus数据手套和Faceware面部捕捉技术集成,应用于元宇宙数字人制作解决方案

Xsens动作捕捉、Manus数据手套和Faceware面部捕捉技术集成&#xff0c;能够实现非常逼真且高效的数字人动作和表情捕捉&#xff01; 硬件连接与数据传输方面&#xff1a; 1.Xsens与Manus的集成&#xff1a;Xsens惯性动作捕捉系统通常可以与Manus的数据手套直接集成。Xsens主要…

MQTTnet4.3.x服务端+客户端实例测试(服务端和客户端方法及参数)

一、示例 目的&#xff1a;学习MQTTnet4.x使用方法&#xff0c;网上很多方法都是3.x版本介绍 二、方法调用 2.1 服务端 2.2 客户端 结合上篇博文&#xff0c;实现与多客户端进行交流&#xff08;实现在线客服功能&#xff09; 当然还有其他方法。之前曾写过相关MQTT文章&#…

【WebDriver】浏览器驱动下载及其配置

一、Windows电脑环境搭建-Chrome浏览器 行业内&#xff0c;Chrome (谷歌) 浏览器对于自动化程序来讲是比较稳定的. 自动化程序推荐使用 Chrome 浏览器的原因有几个&#xff1a; 开发者工具&#xff1a;Chrome 提供强大的开发者工具&#xff0c;方便调试和测试自动化脚本。 稳…

用jest做单元测试不得不知道的起手式配置,闭坑指南

做单元测试有很多的工具&#xff0c;今天在一个老项目中看到的用的工具是用的jest做的单元测试&#xff0c;特尝试更新下&#xff0c;遇到不少的问题。 相关依赖配置文件 npm install --save-dev jestpackage.json {"name": "jest-app","version&qu…