springBoot中使用servlet有两种方式,如下:
方法一:使用 @WebServlet和@ServletComponentScan;
1、编写servlet类;
package com.springboot.business.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//配置servlet的访问路径
@WebServlet(urlPatterns = "/myServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("访问servlet成功");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
2、在项目启动文件中加入注解(@ServletComponentScan)
package com.springboot.business;
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;
/**
* 项目启动类
* @author wang
*
*/
//加入扫描 依赖,就不需要在每个mapper中加入注解@Mapper
@MapperScan("com.springboot.business.mapper")
//springBoot数据库事务支持
@EnableTransactionManagement
//扫描servlet所在包目录
@ServletComponentScan(basePackages = {"com.springboot.business.servlet"})
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3、测试;
http://localhost:8081/server/myServlet
方法二:编写servlet的配置类,将servlet通过注入的方式实现;
package com.springboot.business.config;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.springboot.business.servlet.MyServlet;
//配置注入
@Configuration
public class ServletConfig {
/**
* <Bean id="servletRegistrationBean" class=
* "org.springframework.boot.web.servlet.ServletRegistrationBean">
*
* </Bean>
*
* @return
*/
@Bean
public ServletRegistrationBean<MyServlet> servletRegistrationBean() {
ServletRegistrationBean<MyServlet> servletRegistrationBean = new ServletRegistrationBean<MyServlet>(
new MyServlet(), "/myServlet");
return servletRegistrationBean;
}
}