SpringBoot用Servlet处理请求
认识Servlet容器
Servlet是在javax.servlet包中定义的一个接口。在开发Spring Boot应用程序时,使用Controller基本能解决大部分的功能需求。但有时候也需要使用Servlet,比如实现拦截和监听功能。
Spring Boot的核心控制器DispatcherServlet会处理所有的请求。如果自定义Servlet,则需要进行注册,以便DispatcherServlet核心控制器知道它的作用,以及处理请求url-pattern.
使用Servlet处理请求,可以直接通过@WebServlet(urlPattern,descript)
注册Servlet,然后在入口类中添加注解@ServletComponentScan
,以扫描该注解指定包下的所有Servlet。
用Servlet处理请求
实验结果
运行程序,使用postman测试软件中GET方法访问地址
没有postman的小伙伴可以点击链接,进行下载postman和简单使用测试软件Postman下载(亲测有效)
http://localhost:8080/ServletDemo02/*
会返回重写doGET方法的值
Servlet ServletDemo02
下面是postman 的界面和返回结果
同时控制台会输出doGet里定义的值
doGet
项目结构
无需依赖配置
1.注册Servlet类
ServletDemo02.java
代码解释:
@WebServlet(urlPattern="/ServletDemo02/*"):属性urlPattern指定WebServlet的作用范围,这里代表ServletDemo02下的所有子路径。
doGet:父类HpptServlet的doGet方法是空的,没有实现任何代码,子类需要重写此方法。
package com.example.demo;
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 = "/ServletDemo02/*")
public class ServletDemo02 extends HttpServlet {
/**
* 重写doGet方法,父类的HttpServlet的doGet方法是空的,没有实现任何代码,子类需要重写此方法
* 客户使用GET方法请求Servlet时,Web容器会调用doGet方法处理请求
* */
@Override
protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
System.out.println("doGet");
resp.getWriter().print("Servlet ServletDemo02");
}
}
2.开启Servlet支持
在入口类上添加注解@ServletComponentScan
,以使得Servlet生效。
ServletDemoApplication.java
代码解释
@CompomentScan:组件扫描,可自动发现和装配一些Bean,并根据定义的扫描路径把符合扫描规则的类装配到Spring容器中。
@SpringBootApplication:入口类Application的启动注解
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
@ServletComponentScan
@SpringBootApplication
public class ServletDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ServletDemoApplication.class, args);
}
}
上一篇: CentOS7下安装Docker CE
下一篇: 微信分享页面JSSDK报错,求排错方法?