当前位置:网站首页>@WebServlet注解(Servlet注解)
@WebServlet注解(Servlet注解)
2022-07-30 20:15:00 【葬心啊】
@WebServlet注解
文章目录
前言
Servlet 中,web.xml 扮演的角色十分的重要,它可以将所有的 Servlet 的配置集中进行管理,但是若项目中 Servelt 数量较多时,web.xml 的配置会变得十分的冗长。这种情况下,注解(Annotation)就是一种更好的选择。
提示:以下是本篇文章正文内容,下面案例可供参考
一、@WebServlet 注解的属性
二、@WebServlet 注解的使用
1. 启用注解支持
web.xml 的顶层标签 中有一个属性:metadata-complete,该属性用于指定当前 web.xml 是否是完全的。若该属性设置为 true,则容器在部署时将只依赖 web.xml,忽略所有的注解。若不配置该属性,或者将其设置为 false,则表示启用注解支持。
由于 metadata-complete 属性的默认值是 false,即默认启用 Servlet 注解支持,所以默认情况下,使用该注解时,不必创建 web.xml 文件。
2.使用 @WebServlet 注解
@WebServlet 属于类级别的注解,标注在继承了 HttpServlet 的类之上。常用的写法是将 Servlet 的相对请求路径(即 value)直接写在注解内,
@WebServlet(urlPatterns = “/MyServlet”)。
@WebServlet(“/MyServlet”) 省略了 urlPatterns 属性名
如果 @WebServlet 中需要设置多个属性,则属性之间必须使用逗号隔开.
通过实现 Serlvet 接口或继承 GenericServlet 创建的 Servlet 类无法使用 @WebServlet 注解。
使用 @WebServlet 注解配置的 Servlet 类,不要在 web.xml 文件中再次配置该 Servlet 相关属性。若同时使用 web.xml 与 @WebServlet 配置同一 Servlet 类,则 web.xml 中 的值与注解中 name 取值不能相同,否则容器会忽略注解中的配置。
@WebServlet 注解 和 web.xml 的区别
使用 web.xml 或 @WebServlet 注解都可以配置 Servlet
@WebServlet 注解配置 Servlet
优点:@WebServlet 直接在 Servlet 类中使用,代码量少,配置简单。每个类只关注自身业务逻辑,与其他 Servlet 类互不干扰,适合多人同时开发。
缺点:Servlet 较多时,每个 Servlet 的配置分布在各自的类中,不便于查找和修改。
web.xml 配置文件配置 Servlet
优点:集中管理 Servlet 的配置,便于查找和修改。
缺点:代码较繁琐,可读性不强,不易于理解。
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- MySQL的on duplicate key update 的使用
- Recommendation system: evaluation index [offline evaluation index: RMSE (root mean square error), AUC, precision, recall, F1] [online evaluation: A/B test] [generally required response time <0.5s]
- 4年测试经验去面试10分钟就被赶出来了,面试官说我还不如应届生?都这么卷吗...
- Can't find the distributed lock of Redisson?
- vlookup函数匹配不出来只显示公式的解决方法
- MySQL database --- Addition, deletion, modification and query of MySQL tables (advanced)
- MySQL 视图(详解)
- 我是一名阿里在职9年软件测试工程师,我的经历也许能帮到处于迷茫期的你
- Recommendation System - Sorting Layer - Model (1): Embedding + MLP (Multilayer Perceptron) Model [Deep Crossing Model: Classic Embedding + MLP Model Structure]
- Interviewer Ali: Describe to me the phenomenon of cache breakdown, and talk about your solution?
猜你喜欢
KEIL问题:【keil Error: failed to execute ‘C:\Keil\ARM\ARMCC‘】
【视频】极值理论EVT与R语言应用:GPD模型火灾损失分布分析
银行数据资产转换能力弱?思迈特软件助力解决银行困境
Oblique document scanning and character recognition (opencv, coordinate transformation analysis)
Typora设置标题自动标号
PHP低代码开发平台 V5.0.7新版发布
Database indexes: indexes are not a panacea
Database Tuning - Database Tuning
360杜跃进:太空安全风险加剧,需打造一体化防御体系
基于人脸的常见表情识别(2)——数据获取与整理
随机推荐
.eslintrc.js for musicApp
Difference Between Concurrency and Parallelism
如何解决gedit 深色模式下高亮文本不可见?
Network layer protocol------IP protocol
M3SDA: Moment matching for multi-source domain adaptation
FFmpeg —— 将mp4转为gif输出(附源码)
Flex布局详解
MySQL 高级(进阶) SQL 语句 (一)
[Ask] SQL statement to calculate the sum of column 2 by deduplicating column 1?
Mac安装PHP开发环境
canvas基础讲解加示例
halcon——轮廓线
推荐系统:评估指标【离线评估指标:RMSE(均方根误差)、AUC、准确率、召回率、F1】【在线评估:A/B测试】【一般要求响应时间<0.5s】
HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
Install MySQL tutorial under Linux
Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
Day31 LeetCode
推荐系统:冷启动问题【用户冷启动、物品冷启动、系统冷启动】
bebel系列- 插件开发
Android studio连接MySQL并完成简单的登录注册功能