方式一:通過注解掃描方式實(shí)現(xiàn)
項(xiàng)目名稱:030-springboot-servlet-01
1.通過注解方式創(chuàng)建一個(gè)Servlet
在com.abc.springboot.servlet包下創(chuàng)建MyServlet
package com.abc.springboot.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;
/**
* ClassName:MyServlet
* Package:com.abc.springboot.servlet
* Description:
*/
@WebServlet(urlPatterns = "/myServlet")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().print("My SpringBoot Servlet");
response.getWriter().flush();
response.getWriter().close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
2.在主應(yīng)用程序Application類上添加@ServletComponentScan("com.abc.springboot.servlet")
package com.abc.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@SpringBootApplication
@ServletComponentScan(basePackages = "com.abc.springboot.servlet")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
3.啟動(dòng)應(yīng)用SpringBoot,瀏覽器訪問測試

方式二: 通過SpringBoot的配置類實(shí)現(xiàn)(組件注冊)
項(xiàng)目名稱:031-springboot-servlet-02
1.創(chuàng)建一個(gè)普通的Servlet
在com.abc.springboot.servlet包下創(chuàng)建HeServlet類
package com.abc.springboot.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* ClassName:HeServlet
* Package:com.abc.springboot.servlet
* Description:
*/
public class HeServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().print("He SpringBoot Servlet");
response.getWriter().flush();
response.getWriter().close();
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
2.編寫一個(gè)Spring Boot的配置類,在該類中注冊Servlet
在com.abc.springboot.config包下,創(chuàng)建ServletConfig配置類
package com.abc.springboot.config;
import com.abc.springboot.servlet.HeServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* ClassName:ServletConfig
* Package:com.abc.springboot.config
* Description:
*/
@Configuration //添加@Configuration 將此類變?yōu)榕渲米?public class ServletConfig {
/**
* @Bean是一個(gè)方法級別上的注解,主要用在@Configuration注解的類里,也可以用在@Component注解的類里。添加的bean的id為方法名
* 如下代碼相當(dāng)于
*
*
*
* @return
*/
@Bean
public ServletRegistrationBean heServletRegistrationBean() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new HeServlet(),"/servlet/heServlet");
return servletRegistrationBean;
}
}
3.啟動(dòng)應(yīng)用SpringBoot,瀏覽器訪問測試