SpringBoot中使用Servlet的兩種方式小結
1.方式一(使用註解)
首先,我們寫一個Servlet。要求就是簡單的打印一句話。
在MyServlet這個類的上方使用 @WebServlet 註解來創建Servlet即可。
package com.songzihao.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; /** * */ @WebServlet(urlPatterns = "/myservlet") public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("My SpringBoot Servlet-1"); resp.getWriter().flush(); resp.getWriter().close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
之後在SpringBoot項目的入口類上方使用註解 @ServletComponentScan 註解來掃描Servlet中的註解即可。
package com.songzihao.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @SpringBootApplication //開啟spring配置 @ServletComponentScan(basePackages = "com.songzihao.springboot.servlet") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
最後啟動測試。
2.方式二(定義配置類)
仍然是先寫一個 Servlet。這次不使用註解。
package com.songzihao.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; /** * */ public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("My SpringBoot Servlet-2"); resp.getWriter().flush(); resp.getWriter().close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
然後再寫一個配置類!!!
這個類的上方使用 @Configuration 註解,表名該類是一個配置類,相當於之前的各種xml配置文件。
在類中的方法上方使用 @Bean 註解,ServletRegistrationBean 這相當於是一個Servlet註冊類,類似於之前的 <servlet>、<servlet-mapping> 標簽的作用。
package com.songzihao.springboot.config; import com.songzihao.springboot.servlet.MyServlet; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * */ @Configuration //該註解將此類定義為一個配置類(相當於一個xml配置文件) public class ServletConfig { /** * @Bean 是一個方法級別上的註解,主要用在配置類裡 * 相當於一個 <beans> * <bean id="..." class="..." /> * </beans> * @return */ @Bean public ServletRegistrationBean myServletRegistrationBean() { ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean( new MyServlet(),"/myservlet" ); return servletRegistrationBean; } }
最後啟動測試。
package com.songzihao.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot中使用Servlet三大組件的方法(Servlet、Filter、Listener)
- 手工搭建Servlet實現
- Java中Servlet的生命周期詳解
- 淺談Servlet的Cookie和Session機制
- Java中Session的詳解