当前位置: 首页 > news >正文

Servlet 3.0 注解开发

文章目录

  • 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>在注解开发中可以不书写该属性name2) 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,是不是很爽");}
}

相关文章:

Servlet 3.0 注解开发

文章目录 Servlet3.0注解开发修改idea创建注解的servlet模板内容讲解 关于servlet3.0注解开发的疑问_配置路径省略了属性urlPatterns内容讲解内容小结 Servlet3.0注解开发 【1】问题 说明&#xff1a;之前我们都是使用web.xml进行servlet映射路径的配置。这样配置的弊端&…...

rom定制系列------红米note8_miui14安卓13定制修改固件 带面具root权限 刷写以及界面预览

&#x1f49d;&#x1f49d;&#x1f49d;红米note8机型代码&#xff1a;ginkgo。高通芯片。此固件官方最终版为稳定版12.5.5安卓11的版本。目前很多工作室需要高安卓版本的固件来适应他们的软件。并且需要root权限。根据客户要求。修改固件为完全root。并且修改为可批量刷写的…...

Kaspa钱包ts代码封装

文章目录 1. 配置wasm2. 钱包地址创建3. KAS转账&余额查询4. KRC-20 处理5. 使用demo 1. 配置wasm 下载wasm地址&#xff1a;https://kaspa.aspectron.org/nightly/downloads/ 在项目根目录下添加wasm目录&#xff0c; 将下载的wasm文件中web目录下kaspa和kaspa-dev文件家…...

MySQL 数据库中 MyISAM 和 InnoDB 的区别:深入解析

MySQL 是目前最流行的开源数据库管理系统之一&#xff0c;支持多种存储引擎&#xff0c;其中最常用的就是 MyISAM 和 InnoDB。这两种存储引擎各有其特点&#xff0c;适用于不同的使用场景。理解它们之间的区别有助于数据库开发者和管理者根据应用需求选择合适的存储引擎。本文将…...

python中怎样实现闭包?

在Python中&#xff0c;闭包是指一个函数可以访问其自身范围之外的变量&#xff0c;即可以访问其外部函数作用域中的变量。要实现一个闭包&#xff0c;可以按照以下步骤进行&#xff1a; 内部函数引用外部函数的变量&#xff1a;在外部函数中定义一个内部函数&#xff0c;并在…...

论文阅读:MultiUI 利用网页UI进行丰富文本的视觉理解

《HARNESSING WEBPAGE UIS FOR TEXT-RICH VISUAL UNDERSTANDING》 利用网页UI进行丰富文本的视觉理解 总结 grounding和QA部分的数据集占比较大、同时消融实验显示其作用相对较大&#xff0c;并且grounding部分作用和效果呈现scaling正相关提供了很多web数据处理成多模态训练…...

【云原生】云原生后端详解:架构与实践

目录 引言一、云原生后端的核心概念1.1 微服务架构1.2 容器化1.3 可编排性1.4 弹性和可伸缩性 二、云原生后端的架构示意图三、云原生后端的最佳实践3.1 使用服务网格3.2 监控与日志管理3.3 CI/CD 流水线3.4 安全性 总结参考资料 引言 随着云计算的迅猛发展&#xff0c;云原生…...

MySQL覆盖索引

覆盖索引&#xff08;Covering Index&#xff09;是数据库优化中的一种重要技术 覆盖索引是指一个查询语句在执行时&#xff0c;所需的数据可以完全通过索引来获取&#xff0c;而无需访问实际的数据行。也就是说&#xff0c;查询语句所需的列都包含在了创建的索引中&#xff0c…...

「C/C++」C/C++ 之 循环结构详解

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…...

json-server的基本使用

一、json-server工具的使用 可以快速的搭建符合RESTful API服务。返回符合RESTful规范的数据&#xff1b; 1、全局引入json-server包 npm install -g json-server2、创建json格式的db.json文件 {"jsonData": [{"name": "小明"}] }3、在json文…...

华为配置BFD状态与接口状态联动实验

组网图形 图1 配置BFD状态与接口状态联动组网图 BFD简介配置注意事项组网需求配置思路操作步骤配置文件 BFD简介 为了减小设备故障对业务的影响&#xff0c;提高网络的可靠性&#xff0c;网络设备需要能够尽快检测到与相邻设备间的通信故障&#xff0c;以便及时采取措施&…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-22

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-22 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-22目录1. PoisonedRAG: Knowledge corruption attacks to retrieval-augmented generation of large language models摘要创新点…...

理解消息队列

消息队列&#xff08;Message Queue&#xff09;有下面四大作用&#xff1a; 解耦。几个业务系统之间可以通过 MQ 解耦&#xff0c;例如做数据同步数据的顺序性和可恢复性异步通讯缓冲能力 理解 MQ MQ 的前两个特点且不说&#xff0c;我们看看另外两个的。 异步通讯&#x…...

!什么,matlab也有网页版了

已经脱离matlab一下下几天的困境了&#xff0c;是的&#xff0c;matlab也有网页版了 附上网址&#xff1a; MATLAB Login | MATLAB & Simulink...

安卓屏幕息屏唤醒

背景&#xff0c;今天遇项目需要&#xff0c;需要在下载在后台任务运行时&#xff08;如下载、上传或进行长时间计算&#xff09;&#xff0c;保持 CPU 活动&#xff0c;然后就写了这个实现方法&#xff0c;废话不多说上代码 第一步&#xff0c;再清单AndroidManifest文件声明权…...

类文件具有错误的版本 61.0, 应为 55.0

启动项目的时候报这个错误. 项目所使用的redis版本是jdk17的&#xff0c;而我使用的是Java11.所以要将redis版本降下来。 另一种方式就是修改jdk的版本&#xff0c;在设置修改编译版本&#xff0c;在版本控制里面修改jdk的版本。...

vue点击菜单,出现2个相同tab,啥原因

点击菜单&#xff0c;出现相同的tab 出现的原因&#xff1a; 1.组件中的name 和配置路由文件js, 的大小写不一致导致 2、跳转的路由整个地址&#xff0c;大小写不一致大致...

【网络原理】——图解HTTPS如何加密(通俗简单易懂)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;HTTP为什么不安全 二&#xff1a;HTTPS加密过程 1&#xff1a;密码学中的概念 &…...

CentOS 修改服务器登录密码的完整指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…...

【PnP】详细公式推导,使用DLT直接线性变换法求解相机外参

文章目录 &#x1f680;PnP1️⃣ 求解不考虑尺度的解2️⃣ 恢复解的尺度3️⃣ 另一种解法 &#x1f680;PnP PnP(Perspective-n-Point)是求解3D到2D点相机外参的算法。PnP算法有DLT直接线性变换、P3P三对点估计位姿、EPnP(Efficient PnP)、BA(Bundle Adjustment)光速法平差。这…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关

在水泥厂的生产流程中&#xff0c;工业自动化网关起着至关重要的作用&#xff0c;尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关&#xff0c;为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多&#xff0c;其中不少设备采用Devicenet协议。Devicen…...