本文主要介绍如何在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;
@Override
public void init() throws ServletException {
}
@Override
protected 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 ;
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
public void destroy() {
}
}
第二步:通过 JavaConfig 方式将编写的 UserServlet 类注入到 Spring 的上下文中。
将我们自定义 Servlet 传入到 ServletRegistrationBean 的构造中,然后创建 ServletRegistrationBean Bean实例,具体代码如下:
@Configuration
public class WebApplicationConfig {
@Bean
public 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 方式选择一种即可。
用户代码:
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.gsongroupId>
<artifactId>gsonartifactId>
<version>2.8.5version>
dependency>
这里使用 PostMan 进行演示,访问 http://localhost:8080/sbe/user 。具体结果如下图所示:
SpringBoot 中整合 Servlet步骤如下:
我本地环境如下:
整合过程如出现问题可以在我的GitHub 仓库 springbootexamples 中模块名为 spring-boot-2.x-servlet 项目中进行对比查看
GitHub:https://github.com/zhuoqianmingyue/springbootexamples
Springboot 系列(六)web 开发之拦截器和三大组件 By 雪漫士兵