代码编织梦想

目录

6、Web原生组件注入(Servlet、Filter、Listener)

6.1、使用Servlet API 注入(Servlet、Filter、Listener)

目录结构

1.Servlet组件注入

2.Filter组件注入

3.Listener组件注入

6.2、使用RegistrationBean 注入(比较简便,只需要在Config配置类中注入即可生效)


6、Web原生组件注入(Servlet、Filter、Listener)

6.1、使用Servlet API 注入(Servlet、Filter、Listener)

目录结构

1.Servlet组件注入

步骤:

1.必须继承 httpServlet

2.要加 @WebServlet(urlpatterns=“/my”) , 注解设置访问路径

3.使用 Servlet API

在Application启动类中添加扫包:

@ServletComponentScan(basePackages = "com.tulingxueyuan.request")

Application启动类,下同1.2.3条

package com.tulingxueyuan.request;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
//3.对于SpringBoot中使用原生的组件注入,servlet要配置扫描器,@ServletComponentScan(basePackages = "com.tulingxueyuan.request")
@ServletComponentScan(basePackages = "com.tulingxueyuan.request")
@SpringBootApplication
public class Application {

    public static void main(String[] args) {

        SpringApplication.run(Application.class, args);
    }

}

MyServlet.java

package com.tulingxueyuan.request.servlet;

import javax.jws.WebService;
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;

//1.必须继承httpservlert
//2.要加@WebServlet(urlpatterns="/my"),注解设置访问路径

@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("66666");
    }
}

2.Filter组件注入

步骤:

1.自定义的Filter(过滤器)必须实现,Javax 下Servlet 的 Filter类,然后重写方法。

2.最后在类上标注@WebFilter 注解,另外对于SpringBoot中使用原生的组件注入,servlet要配置扫描器,@ServletComponentScan(basePackages = "com.tulingxueyuan.request")

MyFilter.java

package com.tulingxueyuan.request.servlet;

import javax.jws.WebService;
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;

//1.必须继承httpservlert
//2.要加@WebServlet(urlpatterns="/my"),注解设置访问路径

@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("66666");
    }
}

3.Listener组件注入

步骤:

1.实现自定义监听器,需要实现 ServletContextListener接口,然后添加@WebListener注解,重写方法,

2.在启动类上配置

@ServletComponentScan(basePackages = “com.tulingxueyuan.request.servlet”)注解,用以扫描包

package com.tulingxueyuan.request.servlet;

import lombok.extern.slf4j.Slf4j;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

//1.实现自定义监听器,需要实现 ServletContextListener接口,然后添加@WebListener注解,重写方法,
//2.在启动类上配置@ServletComponentScan(basePackages = "com.yan")注解,用以扫描包

@WebListener
@Slf4j
public class MyServletContextListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        log.info("MyServletContextListener监听到项目初始化完成");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        log.info("MyServletContextListener监听到项目销毁");
    }
}

6.2、使用RegistrationBean 注入(比较简便,只需要在Config配置类中注入即可生效)

包括下面3个:

  1. ServletRegistrationBean
  2. FilterRegistrationBean
  3. ServletListenerRegistrationBean
package com.tulingxueyuan.request.servlet;

//import jdk.nashorn.internal.objects.NativeReferenceError;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.servlet.ServletContextListener;
import java.util.Arrays;

@Configuration
public class MyRegistrationConfig {
    @Bean
    public ServletRegistrationBean myServlet(){
        MyServlet myServlet = new MyServlet();
        return new ServletRegistrationBean(myServlet,"/my","/my02");
    }
    @Bean
    //Filter拦截器
    public FilterRegistrationBean myFilter(){
        MyFilter myFilter = new MyFilter();
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));
        //
        return filterRegistrationBean;
    }
    @Bean
    //Listener监听器
    public ServletListenerRegistrationBean myListener(){
        MyServletContextListener myServletContextListener = new MyServletContextListener();
        return new ServletListenerRegistrationBean(myServletContextListener);
    }
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_58600247/article/details/127992606

springboot基础-springboot和mybatisplus框架整合_ingdragon的博客-爱代码爱编程

文章目录 SpringBoot一 SpringBoot入门1.简介2.微服务3 Hello World3.1环境准备3.1.1开发环境3.1.2导入依赖 4 编写程序5 运行程序6Hello Wor

Java学习笔记-全栈-web开发-20-SpringBoot核心技术-爱代码爱编程

本节笔记参照雷丰阳老师的springboot教学视频 SpringBoot 1. 微服务2. POM文件2.1 父项目进行依赖管理2.2 启动器Starter2.3. 插件3. 主程序类,主入口类4. 配置文件4.1 YAML语法4.2 配置文件值注入4.3 配置文件注入值校验4.4 配置文件占位符4.5 导入自定义配置文件4.6 pr

05-springboot_web01-爱代码爱编程

文件目录: 一、静态资源 1、加载图标 <link rel="icon" th:href="@{/img/xd.ico}" type="image/x-icon"/> 2、index.html <!-- 1、命名空间 --> <html lang="en" xmlns:th="http://www.thymele

springboot进行web开发-爱代码爱编程

一:静态资源路径 首先我们要在项目中导入静态资源,但在导入之前我们需要知道项目中那些地方的资源才会被真正的访问。 找到我们的spring.factories文件,搜索webmvc相关。 点进去看源码,向下找到一个资源配置类。 继续深入后发现对方配置了如下几个扫描点: classpath:/META-INF/resources/","clas

SpringBoot-Web项目实例-爱代码爱编程

文章目录 SpringBoot-Web项目实例1 项目结构2 [国际化]语言切换配置通过按钮切换信息3 登陆&拦截器登陆重定向&拦截器4 CRUD-员工列表4.1 RestfulCRUD4.2 访问员工列表thymeleaf公共页面抽取链接高亮修改表格内容,增加按钮4.3 添加员工页面页面表单4.4 员工修改4.5 员工删除5 错误

02---SpringBoot案例 & MybatisPlus的入门使用-爱代码爱编程

需要项目资料的私信留言,留下邮箱或者发邮件到 daniel-work@qq.com(备注好哪个项目资料) 文章目录 一、SpringBoot 加强1.1 关于YML文件说明1.2 为属性赋值1.2.1 为什么需要属性赋值1.2.2 利用@Value为属性赋值1.2.3批量为属性赋值1.3 指定配置文件为属性赋值1.3.1 关于YML配置

项目记录(1)---SpringBoot的学习-爱代码爱编程

SpringBoot 0.学习目标 了解SpringBoot的作用掌握java配置的方式了解SpringBoot自动配置原理掌握SpringBoot的基本使用了解Thymeleaf的基本使用1. 了解SpringBoot 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot为什么要学习SpringBootSpringBoot的特点1.

SpringBoot Web开发-爱代码爱编程

SpringBoot Web开发 1.前言 之前:jar web:webapp 特点:自动装配 使用步骤:创建应用、选择模块、导入依赖 springboot到底帮我们配置了什么?我们能不能进行修改?能修改哪些东西?能不能扩展? xxxSuyoConfiguration:向容器中自动配置组件xxxProperties:自动配置类,装配配置文件中

javaweb-springboot-2-73-爱代码爱编程

文章目录 0.学习目标1. 了解SpringBoot1.1.什么是SpringBoot1.2.为什么要学习SpringBoot2.快速入门2.1.创建工程2.2.引入依赖2.3.编写HelloController2.4.启动测试2.5.详解2.5.1.启动器2.5.2.@EnableAutoConfiguration2.6.优化入门程序2.5.1.

mybatis-spring-springMVC-springBoot总结-爱代码爱编程

mybatis-spring-springMVC-springBoot总结 介绍 第一节 mybatis 1、mybatis简介 MyBatis原本是Apache软件基金会的一个开源项目叫iBatis,2010年这个项目由Apache迁移到了google code上来管理并改名为MyBatis,2013年又迁移到了Github。 MyBatis是

002--Springboot集成SpringMVC (002-003-004-005)-爱代码爱编程

1.入门案例 项目名称:002-springboot-springmvc 2.Springboot整合SpringMVC 2.1 选择类型为 Spring Initializr 2.2 指定 GAV 及 pom 配置信息 2.3 选择 Spring Boot 版本及依赖 2.4 修改 Content R

【SpringBoot】web 开发-爱代码爱编程

1. 简单功能分析 1.1 静态资源访问 1、静态资源目录 当前项目类路径下: /static、/public、/resources、META/resources 都默认作为静态资源目录 如下示例: 在中四个静态资源目录中放入四张图片,然后直接启动项目,看能否直接访问到静态资源: http://localhost:8080/bug.jpgh

4.5 SpringBoot Web开发-文件上传-爱代码爱编程

5.1 页面表单 使用模板中的form_layouts.html页面 <form method="post" action="/upload" enctype="multipart/form-data"> <input type="file" name="file"><br> <input ty

springboot——web开发_spring boot整合spring mvc实现web开发定制web功能时,可以编写一个实现 接口-爱代码爱编程

一、SpringMVC自动配置概览 Springboot提供SpringMVC的自动配置,大多场景我们都无需自定义配置 Springboot根据条件自动装配各种Java Bean到容器中,替换掉xml读取方式

springboot(06) -爱代码爱编程

SpringBoot2学习笔记 源码地址 四、Web开发 4.5)数据响应与内容协商  4.5.1)响应JSON 4.5.1.1)jackson.jar+@ResponseBody 在POM.xml文件中,配置 spring-boot-starter-web        <dependency>