Servlet 3.0以上版本使用@WebServlet注解配置映射
以前的Servlet都是在web.xml中进行配置,导致web.xml中各个Servlet的映射非常杂乱无章,后期也很难维护
本篇文章将详细阐述如何使用Servlet 3.0的新特性使用@WebServlet注解进行配置
Let's do it !
首先,使用eclipse或者IntelliJ IDEA创建一个Java Web项目

输入项目名后点击next,然后再点击next
到这一步的时候注意一下:

勾选一下生成web.xml的选项
然后我们点击finish完成

项目目录如上图所示
接下来我们先创建一个JSP页面,用于访问Servlet
然后再新建一个包,放置Servlet

下面我们创建一个Servlet,首先选中包,右键点击New->Servlet

然后点击Servlet,输入Servlet的名字之后

然后点击Next

Initialization parameters指的是Servlet初始化时的参数
URL mappings指的是访问该Servlet时的路径名
然后我们再次点击Next

在Interfaces选项中可以Add需要实现的接口,但是我们这次只做演示,所以不需要太多复杂的功能
下面这些复选框可以指定需要实现的方法,一般只需使用doGet和doPost,其他的方法以后深入学习之后再进行使用,然后我们点击Finish
创建好的Servlet以及项目目录如下:

其中首部的@WebServlet注解指定的是Servlet的名字以及访问时候的名字(如果是使用IntelliJ IDEA则需要在web.xml中的webapps的标签将metadata-complete属性改为false,并且在@WebServlet的注解中urlPatterns属性指定为访问该Servlet的路径)
我们将IDE生成的注释删除掉,整个结构就比较清晰了

前台页面如果是使用Post方式提交则会访问doPost方法,如果是使用Get方式提交则会访问doGet方法
然后我们在doGet方法中写一小段代码进行测试
1 package com.cnblogs.controller;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.annotation.WebServlet;
8 import javax.servlet.http.HttpServlet;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 @WebServlet("/HelloServlet")
13 public class HelloServlet extends HttpServlet {
14 private static final long serialVersionUID = 1L;
15
16 public HelloServlet() {
17 super();
18 }
19
20 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
21 PrintWriter out = response.getWriter();
22 out.println("Hello Servlet");
23 }
24
25 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
26
27 }
28
29 }
然后我们在JSP中写一个超链接直接访问Servlet
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <title>首页</title>
8 </head>
9 <body>
10 <a href="HelloServlet">进入HelloServlet</a>
11 </body>
12 </html>
启动项目

点击超链接

访问成功
讲解就到这里,如果您有好的建议请在评论区提出,谢谢指正!
Servlet 3.0以上版本使用@WebServlet注解配置映射的更多相关文章
- Servlet 3.0 规范(二)注解驱动和异步请求
Servlet 3.0 规范(二)注解驱动和异步请求 在 Servlet 3.0 时支持注解启动,不再需要 web.xml 配制文件. 一.Servlet 3.0 组件 Servlet 容器的组件大致 ...
- Servlet3.0新特性(从注解配置到websocket编程)
Servlet3.0的出现是servlet史上最大的变革,其中的许多新特性大大的简化了web应用的开发,为广大劳苦的程序员减轻了压力,提高了web开发的效率.主要新特性有以下几个: 引入注解配置 支持 ...
- 【servlet3.0新特性】Annotation注解配置
servlet3.0新特性Servlet3.0引入的若干重要新特性,包括异步处理.新增的注解支持.可插性支持等等,为读者顺利向新版本过渡扫清障碍.Servlet3.0新特性概述Servlet3.0作为 ...
- Hibernate--使用注解配置映射关系
写在前面: 配置实体类与数据库的映射关系,有两种方式: 1.使用*.hbm.xml : 2.使用@注解 一:注解的方式: 1.@Entity 加在类的前面,将类声明为持久化类. 2.@Tabl ...
- Servlet3.0提供的@WebServlet注解引用参数详情介绍
Servlet3.0提供的@WebServlet注解: servlet3.0所提供的@webservlet注解,用来将某个类注解为一个servlet类,简化了web.xml上的servlet配置, @ ...
- @WebServlet注解(Servlet注解)
@WebServlet 注解的属性 @WebServlet 用于将一个类声明为 Servlet,该注解会在部署时被容器处理,容器根据其具体的属性配置将相应的类部署为 Servlet.该注解具有下表给出 ...
- Spring 注解驱动(二)Servlet 3.0 注解驱动在 Spring MVC 中的应用
Spring 注解驱动(二)Servlet 3.0 注解驱动在 Spring MVC 中的应用 Spring 系列目录(https://www.cnblogs.com/binarylei/p/1019 ...
- Servlet 3.0的AsyncListener接口
Servlet 3.0的AsyncListener接口 作者:chszs,转载需注明. 博客主页:http://blog.csdn.net/chszs 一.Servlet 3.0介绍 Servlet ...
- 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo
一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...
随机推荐
- 微信小程序文件上传至七牛云(laravel7)
1 wxml: <view> <form bindsubmit="dopost"> <view> <label>真实姓名</l ...
- linux定时任务 - at定时任务
at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行作业.atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业,默认情况下,atd守护进程每60秒检查一 ...
- Kubernetes系列(三) Deployment
作者: LemonNan 原文地址: https://juejin.im/post/6865672466939150349/ Kubernetes 系列 Kubernetes系列(一) Pod Kub ...
- 软件工程homework-002
博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1058 ...
- CVE-2021-3129:Laravel远程代码漏洞复现分析
摘要:本文主要为大家带来CVE-2021-3129漏洞复现分析,为大家在日常工作中提供帮助. 本文分享自华为云社区<CVE-2021-3129 分析>,作者:Xuuuu . CVE-202 ...
- vue3-组件中使用setup函数获取vuex中的数据的新方式
传统方式 setup() { const store = useStore() //传统方式 const aName = computed(() => store.state.name) ret ...
- 爬虫中网络请求的那些事之urllib库
目录 爬虫之网络请求中的那些事 urllib库 urlopen函数 urlretrieve函数 urlencode.parse_qs函数 urlparse.urlsplit函数: request.Re ...
- surface重装系统后,屏幕亮度不能调节,显示适配器出现黄色三角、windows hello不能正常使用
surface重装系统后,屏幕亮度不能调节,显示适配器出现黄色三角,windows hello不能正常使用,解决方法是安装驱动精灵,更新硬件驱动重启即可解决
- Arcgis Server发布的带有透明度的地图服务,调用时不显示透明度问题
问题: 在发布道路地图时候设置地图透明度为50% 使用arcgis API for js 中 ArcGISDynamicMapServiceLayer 调用该地图时,发现透明效果不实现 如下图: 解决 ...
- CVE-2010-2861(Adobe ColdFusion 文件读取漏洞)
漏洞介绍 Adobe ColdFusion是美国Adobe公司的一款动态Web服务器产品,其运行的CFML(ColdFusion Markup Language)是针对Web应用的一种程序设计语言. ...