SpringBoot中使用Servlet的兩種方式小結(jié)
1.方式一(使用注解)
首先,我們寫一個(gè)Servlet。要求就是簡(jiǎn)單的打印一句話。
在MyServlet這個(gè)類的上方使用 @WebServlet 注解來創(chuàng)建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項(xiàng)目的入口類上方使用注解 @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);
}
}最后啟動(dòng)測(cè)試。

2.方式二(定義配置類)
仍然是先寫一個(gè) 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);
}
}然后再寫一個(gè)配置類!??!
這個(gè)類的上方使用 @Configuration 注解,表名該類是一個(gè)配置類,相當(dāng)于之前的各種xml配置文件。
在類中的方法上方使用 @Bean 注解,ServletRegistrationBean 這相當(dāng)于是一個(gè)Servlet注冊(cè)類,類似于之前的 <servlet>、<servlet-mapping> 標(biāo)簽的作用。
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 //該注解將此類定義為一個(gè)配置類(相當(dāng)于一個(gè)xml配置文件)
public class ServletConfig {
/**
* @Bean 是一個(gè)方法級(jí)別上的注解,主要用在配置類里
* 相當(dāng)于一個(gè) <beans>
* <bean id="..." class="..." />
* </beans>
* @return
*/
@Bean
public ServletRegistrationBean myServletRegistrationBean() {
ServletRegistrationBean servletRegistrationBean=new ServletRegistrationBean(
new MyServlet(),"/myservlet"
);
return servletRegistrationBean;
}
}最后啟動(dòng)測(cè)試。
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);
}
}
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)
- Springboot自動(dòng)裝配之注入DispatcherServlet的實(shí)現(xiàn)方法
- SpringBoot詳細(xì)講解異步任務(wù)如何獲取HttpServletRequest
- springboot配置嵌入式servlet容器的方法
- SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程圖解
- SpringBoot注冊(cè)Servlet的三種方法詳解
- springboot掃描自定義的servlet和filter代碼詳解
- SpringBoot嵌入式Servlet容器與定制化組件超詳細(xì)講解
相關(guān)文章
Java使用Redis實(shí)現(xiàn)微博熱搜功能
在社交平臺(tái)上,熱搜功能是一個(gè)非常重要的組成部分,它展示了當(dāng)前最熱門的話題,幫助用戶迅速了解最受關(guān)注的事件,Redis 是一個(gè)高性能的鍵值存儲(chǔ)系統(tǒng),通常用于緩存和實(shí)時(shí)數(shù)據(jù)存儲(chǔ),本文將通過 Java 結(jié)合 Redis 實(shí)現(xiàn)一個(gè)簡(jiǎn)化版的微博熱搜功能,需要的朋友可以參考下2024-12-12
如何使用Gradle實(shí)現(xiàn)類似Maven的profiles功能
這篇文章主要介紹了如何使用Gradle實(shí)現(xiàn)類似Maven的profiles功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06
使用GenericObjectPool避免泄漏設(shè)置方法
這篇文章主要為大家介紹了使用GenericObjectPool避免泄漏的設(shè)置方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
基于SpringBoot實(shí)現(xiàn)用戶身份驗(yàn)證工具
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)的用戶身份驗(yàn)證工具,非常不錯(cuò),具有參考借鑒價(jià)值 ,需要的朋友可以參考下2018-04-04
@ConfigurationProperties遇到的坑及解決
這篇文章主要介紹了解決@ConfigurationProperties遇到的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot如何通過webjars管理靜態(tài)資源文件夾
這篇文章主要介紹了SpringBoot如何通過webjars管理靜態(tài)資源文件夾,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10

