导入 servlet 依赖
Servlet-Specification Jar,Servlet 规范包,经过版本升级命名有变化:
- 3.1 之前的 Servlet API 叫 servlet-api
- 3.1 之后的 Servlet API 叫 javax.servlet-api
```xml
javax.servlet servlet-api 2.5 provided
<a name="bK0ea"></a>### 整合Servlet<a name="EBAqK"></a>#### 通过注解扫描完成Servlet组件的注册:@WebServlet1、创建Servlet:```java@WebServlet(name = "FirstServlet",urlPatterns = "/first")public class DemoServlet01 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("第一个Servlet启动");resp.getWriter().print("Hello");}}
2、修改启动类:
@SpringBootApplication@ServletComponentScan // 在Spring Boot启动时会扫描@WebServlet注解,并将该类实例化public class DemoForSpringBootBasicApplication {public static void main(String[] args) {SpringApplication.run(DemoForSpringBootBasicApplication.class, args);}}
通过方法完成Servlet组件的注册
1、创建 Servlet
public class DemoServlet02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("第二个Servlet启动");resp.getWriter().print("Hello ,I am second");}}
2、创建Servlet配置类
@Configurationpublic class ServletConfig {@Beanpublic ServletRegistrationBean getServletRegistrationBean() {return new ServletRegistrationBean(new DemoServlet02(), "/second");}}
整合filter
通过注解扫描完成Filter组件的注册:@WebFilter
1、创建Filter:
@WebFilter(filterName = "first",urlPatterns = {"/first"})public class DemoFilter01 implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("First Filter初始化");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("进入First Filter");filterChain.doFilter(servletRequest,servletResponse);System.out.println("离开First Filter");}@Overridepublic void destroy() {System.out.println("First Filter结束");}}
2、修改启动类:
@SpringBootApplication@ServletComponentScan // 在Spring Boot启动时会扫描@WebFilter注解,并将该类实例化public class DemoForSpringBootBasicApplication {public static void main(String[] args) {SpringApplication.run(DemoForSpringBootBasicApplication.class, args);}}
通过方法完成Filter组件的注册
1、创建Filter
@WebFilter(filterName = "second",urlPatterns = {"/second"})public class DemoFilter02 implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {System.out.println("Second Filter初始化");}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("进入Second Filter");filterChain.doFilter(servletRequest,servletResponse);System.out.println("离开Second Filter");}@Overridepublic void destroy() {System.out.println("Second Filter结束");}}public class DemoServlet02 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("第二个Servlet启动");resp.getWriter().print("Hello ,I am second");}}
2、创建Filter配置类
@Configurationpublic class FilterConfig {@Beanpublic FilterRegistrationBean getFilterRegistrationBean(){FilterRegistrationBean bean = new FilterRegistrationBean(new DemoFilter02());// bean.addUrlPatterns(new String[]{"/second","*.action"});bean.addUrlPatterns("/second");return bean;}}
整合listener
通过注解扫描完成Listener组件注册
1、创建Listener:
@WebListenerpublic class DemoListener01 implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent sce) {}@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("Servlet Context初始化!");}}
2、修改配置类
@SpringBootApplication@ServletComponentScan // 在Spring Boot启动时会扫描@WebListener注解,并将该类实例化public class DemoForSpringBootBasicApplication {public static void main(String[] args) {SpringApplication.run(DemoForSpringBootBasicApplication.class, args);}}
通过方法完成Listener组件注册
1、编写Listener:
public class DemoListener02 implements ServletContextListener {@Overridepublic void contextDestroyed(ServletContextEvent sce) {}@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("Servlet Context初始化!");}}
2、配置Listener启动类
@Configurationpublic class ListenerConfig {@Beanpublic ServletListenerRegistrationBean getListener(){return new ServletListenerRegistrationBean(new DemoListener02());}}
