spring與servlet注解,玩轉 SpringBoot 2 快速整合 Servlet

 2023-10-02 阅读 31 评论 0

摘要:前言 本文主要介紹如何在SpringBoot 2 中使用 Servlet 的快速搭建教程,閱讀前需要你必須了解 Servlet 的基礎使用以及如何搭建 SpringBoot 項目。 快速演示操作 第一步: 編寫 Servlet 類并且在 Servlet 類上聲明 @WebServlet 注解,并通過@WebSer

前言

本文主要介紹如何在SpringBoot 2 中使用 Servlet 的快速搭建教程,閱讀前需要你必須了解 Servlet 的基礎使用以及如何搭建 SpringBoot 項目。

快速演示操作

第一步: 編寫 Servlet 類并且在 Servlet 類上聲明 @WebServlet 注解,并通過@WebServlet 注解 urlPatterns 屬性來執行訪問路徑。具體代碼如下:

這里通過獲取所有用戶信息的 Servlet 來進行演示。

@WebServlet(urlPatterns = "/user")
public class UserServlet extends HttpServlet{private static final long serialVersionUID = 1L;@Overridepublic void init() throws ServletException {}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {User user1 = new User("ljk1",18);User user2 = new User("ljk1",18);List<User> userList = new ArrayList<User>();userList.add(user1);userList.add(user2);String userListJson = JsonUtil.toJson(userList);resp.getWriter().write(userListJson);return ;}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {this.doPost(req, resp);}@Overridepublic void destroy() {}}

spring與servlet注解。第二步:通過 JavaConfig 方式將編寫的 UserServlet 類注入到 Spring 的上下文中。

將我們自定義 Servlet 傳入到 ServletRegistrationBean 的構造中,然后創建 ServletRegistrationBean Bean實例,具體代碼如下:

@Configuration
public class WebApplicationConfig {@Beanpublic ServletRegistrationBean<UserServlet> userServlet(){return new ServletRegistrationBean<UserServlet>(new UserServlet());}
}

或者在啟動類上聲明 @ServletComponentScan 注解,具體代碼如下:

@SpringBootApplication
@ServletComponentScan
public class SpringbootexamplesApplication {public static void main(String[] args) {SpringApplication.run(SpringbootexamplesApplication.class, args);}
}

JavaConfig 方式 或者聲明@ServletComponentScan 方式選擇一種即可。

@SpringBootApplication。用戶代碼:

public class User {private String name;private Integer age;public User(String name, Integer age) {super();this.name = name;this.age = age;}//省略 getter and setter 方法}

用戶集合轉換Json 對象的工具類具體代碼如下:

public class JsonUtil {private static Gson gson = null;static {if (gson == null) {gson= new GsonBuilder().create();}}public static  String toJson(Object object){return gson.toJson(object);}public static  <T> T GsonToBean(String json,Class<T> clazz){return gson.fromJson(json, clazz);}
}

需要引入 Gson 依賴

<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.5</version>
</dependency>

測試

這里使用 PostMan 進行演示,訪問 http://localhost:8080/sbe/user 。具體結果如下圖所示:
在這里插入圖片描述

小結

session和servlet、SpringBoot 中整合 Servlet步驟如下:

  1. 需要在Servlet 上聲明 @WebServlet
  2. 在啟動類上聲明@ServletComponentScan注解或者將 Servlet 通過ServletRegistrationBean 進行包裝然后通過 JavaConfig 方式將其注入到Spring上下文中。

代碼示例

我本地環境如下:

  • SpringBoot Version: 2.1.0.RELEASE
  • Apache Maven Version: 3.6.0
  • Java Version: 1.8.0_144
  • IDEA:Spring Tools Suite (STS)

整合過程如出現問題可以在我的GitHub 倉庫 springbootexamples 中模塊名為 spring-boot-2.x-servlet 項目中進行對比查看

GitHub:https://github.com/zhuoqianmingyue/springbootexamples

參考文獻

ssm和servlet、Springboot 系列(六)web 開發之攔截器和三大組件 By 雪漫士兵

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/111071.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息