以前的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注解配置映射的更多相关文章

  1. Servlet 3.0 规范(二)注解驱动和异步请求

    Servlet 3.0 规范(二)注解驱动和异步请求 在 Servlet 3.0 时支持注解启动,不再需要 web.xml 配制文件. 一.Servlet 3.0 组件 Servlet 容器的组件大致 ...

  2. Servlet3.0新特性(从注解配置到websocket编程)

    Servlet3.0的出现是servlet史上最大的变革,其中的许多新特性大大的简化了web应用的开发,为广大劳苦的程序员减轻了压力,提高了web开发的效率.主要新特性有以下几个: 引入注解配置 支持 ...

  3. 【servlet3.0新特性】Annotation注解配置

    servlet3.0新特性Servlet3.0引入的若干重要新特性,包括异步处理.新增的注解支持.可插性支持等等,为读者顺利向新版本过渡扫清障碍.Servlet3.0新特性概述Servlet3.0作为 ...

  4. Hibernate--使用注解配置映射关系

    写在前面: 配置实体类与数据库的映射关系,有两种方式: 1.使用*.hbm.xml    :  2.使用@注解 一:注解的方式: 1.@Entity 加在类的前面,将类声明为持久化类. 2.@Tabl ...

  5. Servlet3.0提供的@WebServlet注解引用参数详情介绍

    Servlet3.0提供的@WebServlet注解: servlet3.0所提供的@webservlet注解,用来将某个类注解为一个servlet类,简化了web.xml上的servlet配置, @ ...

  6. @WebServlet注解(Servlet注解)

    @WebServlet 注解的属性 @WebServlet 用于将一个类声明为 Servlet,该注解会在部署时被容器处理,容器根据其具体的属性配置将相应的类部署为 Servlet.该注解具有下表给出 ...

  7. Spring 注解驱动(二)Servlet 3.0 注解驱动在 Spring MVC 中的应用

    Spring 注解驱动(二)Servlet 3.0 注解驱动在 Spring MVC 中的应用 Spring 系列目录(https://www.cnblogs.com/binarylei/p/1019 ...

  8. Servlet 3.0的AsyncListener接口

    Servlet 3.0的AsyncListener接口 作者:chszs,转载需注明. 博客主页:http://blog.csdn.net/chszs 一.Servlet 3.0介绍 Servlet ...

  9. 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo

    一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...

随机推荐

  1. css3渐变色字体

    \3cspan id="mce_marker" data-mce-type="bookmark">\3c/span>\3cspan id=" ...

  2. 实现同比、环比计算的N种姿势

    在做数据分析时,我们会经常听到同比.环比同比的概念.各个企业和组织在发布统计数据时,通常喜欢用同比.环比来和之前的历史数据进行比较,用来说明数据的变化情况.例如,统计局公布2022年1月份CPI同比增 ...

  3. 基于 vite2 + Vue3 写一个在线帮助文档工具

    提起帮助文档,想必大家都会想到 VuePress等,我也体验了一下,但是感觉和我的思路不太一样,我希望的是那种可以直接在线编辑文档,然后无需编译就可以直接发布的方式,另外可以在线写(修改)代码并且运行 ...

  4. linux作业--第三周

    1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...

  5. TP5框架中实现多条件登录

    控制器代码 //登录功能 public function login(){ $data = input(); $validate = $this->validate($data,[ 'uname ...

  6. AC+AP组网无线WiFi网速超慢延迟卡顿问题解决

    AP是什么? AP是Access Point的简称,即无线接入点,其作用是把局域网里通过双绞线传输的有线信号(即电信号)经过编译,转换成无线电信号传递给电脑.手机等无线终端,与此同时,又把这些无线终端 ...

  7. python 生产数据表脚本

    # -*- coding: utf-8 -*-import re"""建立相关表的字段从源表创建指定的MySQL建表脚本"""# 目标表名称 ...

  8. emu8086 调用LED面板的方法

    一.实验要求 1.熟悉并掌握 EMU8086 汇编语言调试环境: 2.学习 8086 的指令系统,输入简单的指令,观察各寄存器.内存相关单元以及处理器标志位的变化(所有数据传送类指令,可参考教材用例) ...

  9. Ubuntu 11.04 LAMP+JSP环境安装过程

    安装LAMP命令:sudo apt-get install apache2 php5 libapache2-mod-php5 mysql-server libapache2-mod-auth-mysq ...

  10. Java基础——自动装箱与拆箱

    装箱:把基本数据类型转换为对应的包装类类型 //装箱Integer i=Integer.ValuesOf(100);//自动装箱integer i1=100;//能够直接赋值成功的称为自动装箱,也调用 ...