方式一:通過注解掃描方式實現
項目名稱:030-springboot-servlet-01
1.通過注解方式創建一個Servlet
在com.abc.springboot.servlet包下創建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.在主應用程序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.啟動應用SpringBoot,瀏覽器訪問測試
方式二: 通過SpringBoot的配置類實現(組件注冊)
項目名稱:031-springboot-servlet-02
1.創建一個普通的Servlet
在com.abc.springboot.servlet包下創建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.編寫一個Spring Boot的配置類,在該類中注冊Servlet
在com.abc.springboot.config包下,創建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 將此類變為配置變
public class ServletConfig {
/**
* @Bean是一個方法級別上的注解,主要用在@Configuration注解的類里,也可以用在@Component注解的類里。添加的bean的id為方法名
* 如下代碼相當于
*
*
*
* @return
*/
@Bean
public ServletRegistrationBean heServletRegistrationBean() {
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new HeServlet(),"/servlet/heServlet");
return servletRegistrationBean;
}
}
3.啟動應用SpringBoot,瀏覽器訪問測試