SpringBoot整合Servlet的两种方式

本文环境

Maven3.5
JDK1.8
idea
SpringBoot2.0.1

工程pom文件加入Jar包

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

1. 注解扫描方式

- 准备Servlet

@WebServlet(name = "firstServlet", urlPatterns = "/firstServlet")  //标记为servlet,以便启动器扫描。
public class FirstServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().append("firstServlet");
    }

}

- 注册Servlet

@SpringBootApplication
@ServletComponentScan   //启动器启动时,扫描本目录以及子目录带有的webservlet注解的
public class FirstServletApplication {

    public static void main(String[] args) {
        SpringApplication.run(FirstServletApplication.class, args);
    }
}

- 访问Servlet

2. 组建注册方式

- 准备Servlet

//这里不需要添加webServlet注解
public class SecondServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().append("SecondServlet");}}

- 注册Servlet

@SpringBootApplication
public class SecondServletApplication {
    public static void main(String[] args) {
        SpringApplication.run(SecondServletApplication.class, args);
    }
    @Bean  //一定要加,不然这个方法不会运行
    public ServletRegistrationBean getServletRegistrationBean() {  //一定要返回ServletRegistrationBean
        ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());     //放入自己的Servlet对象实例
        bean.addUrlMappings("/secondServlet");  //访问路径值
        return bean;}}

- 访问Servlet

原文地址:https://www.cnblogs.com/wpcnblog/p/12358122.html