SpringBoot学习总结(5)之整合Servlet

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jokeMqc/article/details/89087714

一、环境

Maven 3.6.0
IDEA IntelliJ IDEA 2017.2.6 x64
JDK 1.8
Spring Boot 1.5.4.RELEASE

二、pom配置

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

三、通过注解扫描完成Servlet 组件的注册

首先编写我们的servlet类。

package com.mqc.servlet;

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;

/**
 * @author maoqichuan
 * @ClassName: FirstServlet
 * @description: 通过注解扫描的方式注册servlet
 * @date 2019-04-0814:10
 *
 * 回顾一下我们普通servlet的开发流程
 * 1。首先要自定义一个类实现HttpServlet
 * 2.然后需要在web.xml中注册我们的servlet
 *<servlet>
 * <servlet-name>FirstServlet</servlet-name>
 * <servlet-class>com.bjsxt.servlet.FirstServlet</servlet-class>
 *</servlet>
 *
 *<servlet-mapping>
 * <servlet-name>FirstServlet</servlet-name>
 * <url-pattern>/first</url-pattern>
 *</servlet-mapping>
 **/
@WebServlet(name = "FirstServlet",urlPatterns = "/first")
public class FirstServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理get请求
        System.out.print("处理get请求");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理post请求
        System.out.print("处理post请求");
    }
}

@WebServlet这个注解用来实现serlvet跟url的映射。上面定义的这个servlet的名字在name属性中标记了为:FirstServlet,urlPatterns指定的是对应的映射路径,

启动类:

package com.mqc;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@EnableTransactionManagement // 开启事务管理
//在对应的mapper类加上@mapper注解就不用去扫
@ServletComponentScan
public class SpringbootMybatisApplication {

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

}

@ServletComponentScan在springBoot 启动时会扫描@WebServlet,并将该类实例化,在 SpringBootApplication 上使用@ServletComponentScan 注解后,Servlet、Filter、Listener 可以直接通过 @WebServlet、@WebFilter、@WebListener 注解自动注册,无需其他代码。

启动项目,调用对应的servlet:http://localhost:8080/first

这样子,我们通过注解扫描的方式注册servlet的方式就已经是调试成功了,接下来我们学习第二种方式整合servlet的方式。

四、通过方法完成Servlet 组件的注册

第一个首先编写我们的servlet类。

package com.mqc.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author maoqichuan
 * @ClassName: MyServlet
 * @description: 通过方法注册servlet
 * @date 2019-04-0816:01
 **/
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.print("------MyServlet-------处理get请求");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.print("------MyServlet-------处理post请求");
    }
}

编写我们的启动类:

package com.mqc;


import com.mqc.servlet.MyServlet;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;

/**
 * @description: springboot整合servlet方式二---通过方式注册servlet
 * @author maoqichuan
 * @date 2019-04-08 16:17
 */
@SpringBootApplication
public class SpringbootMybatisApplication {

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


	@Bean
	public ServletRegistrationBean getRegistrationBean(){
		ServletRegistrationBean bean = new ServletRegistrationBean(new MyServlet());

		bean.addUrlMappings("myServlet");
		return bean;
	}
}

启动springboot,调试:http://localhost:8080/myServlet

扫描二维码关注公众号,回复: 5812764 查看本文章

到这里,springboot整合servlet的两种方式已经说完了,大家有什么问题可以留言或者私信我,让我们大家一起进步,一起努力!加油

猜你喜欢

转载自blog.csdn.net/jokeMqc/article/details/89087714