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