Servlet 3.0 注解开发

文章目录

Servlet3.0注解开发

【1】问题

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

【2】解决问题

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

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

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】配置步骤:

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

【4】实现

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

2.输入类名

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

java 复制代码
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 的模板,按照如下修改

java 复制代码
#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属性

java 复制代码
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,是不是很爽");
    }
}
相关推荐
w***42418 小时前
报错The default superclass, “jakarta.servlet.http.HttpServlet“(已经配置好tomcat)
http·servlet·tomcat
g***789120 小时前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
K***65892 天前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
Slow菜鸟3 天前
Java开发规范(十一)| 数据全生命周期治理规范—Java应用的“数据资产化手册”
java·servlet·oracle
8***a8154 天前
从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
hive·servlet·tomcat
6***94155 天前
报错The default superclass, “jakarta.servlet.http.HttpServlet“(已经配置好tomcat)
http·servlet·tomcat
天若有情6735 天前
笑喷!乌鸦哥版demo函数掀桌怒怼主函数:难办?那就别办了!
java·前端·servlet
LSL666_6 天前
1 概述及简单登录(不涉及数据库)
数据库·servlet
合作小小程序员小小店6 天前
网页开发,在线%旧版本旅游管理%系统,基于eclipse,html,css,jquery,servlet,jsp,mysql数据库
java·数据库·servlet·eclipse·jdk·旅游·jsp
老板多放葱和香菜7 天前
1大数据平台及组件搭建https://baijiahao.baidu.com/s?id=1849543147230084630
java·大数据·servlet