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

这篇具有很好参考价值的文章主要介绍了16、Web原生组件注入(Servlet、Filter、Listener)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


【尚硅谷】SpringBoot2零基础入门教程-讲师:雷丰阳
笔记

路还在继续,梦还在期许

1、使用原生Servlet API

推荐使用原生Servlet API 这种方式

1.1、Servlet

使用 Servlet 3.0 版本以上提供的原生注解。

@WebServlet(urlPatterns = “/my”)

效果:不需要在web.xml写配置,直接响应,没有经过Spring的拦截器,urlPatterns :访问路径。

在主配置类中指定扫描原生Servlet组件的包:@ServletComponentScan(basePackages = “com.atguigu.admin.servlet”),不写得话,就默认扫描组配置类下所有的包。

@WebServlet(urlPatterns = "/my") 
public class MyServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("6666");
    }
}

1.2、Filter

使用 Servlet 3.0 版本以上提供的原生注解。

@WebFilter(urlPatterns={“/css/“,”/images/”})

效果:不需要在web.xml写配置,urlPatterns:拦截路径,可以拦截多个路径。

@WebFilter(urlPatterns={"/my"})
public class MyFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter初始化完成");
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("MyFilter工作");
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        System.out.println("MyFilter销毁");
    }
}

1.3、Listener

使用 Servlet 3.0 版本以上提供的原生注解。

@WebListener

@WebListener
public class MyServletContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("监听项目初始化完成");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("监听项目销毁");
    }
}

1.4、原生servlet没有被拦截器拦截得原因

系统内有两个 Servlet (spring boot:DispatcherServlet–>/ 和 MyServlet -->/my )

1.5、扩展:DispatchServlet 如何注册进来

● 容器中自动配置了 DispatcherServlet 属性绑定到 WebMvcProperties;对应的配置文件配置项是 spring.mvc。
● 通过 ServletRegistrationBean 把 DispatcherServlet 配置进来。
● 默认映射的是 / 路径。

16、Web原生组件注入(Servlet、Filter、Listener)
在之前使用Tomcat-Servlet做开发,多个servlet路径相互重叠,多个Servlet都能处理到同一层路径,使用精确优选原则。

举例:

两个路径
A: /my/
B: /my/1
如果发送的是 /my/1 ,那就会使用B路径,如果发送的是 /my/2 使用A路径。

2、使用RegistrationBean

还可以使用 ServletRegistrationBean、FilterRegistrationBean、ServletListenerRegistrationBean 来组件注册。文章来源地址https://www.toymoban.com/news/detail-419198.html

@Configuration
public class MyRegistConfig {

    // servlet
    @Bean
    public ServletRegistrationBean myServlet() {
        MyServlet servlet = new MyServlet();
        return new ServletRegistrationBean<MyServlet>(servlet, "/my");
    }

    // filter
    @Bean
    public FilterRegistrationBean myFilter() {
        MyFilter myFilter = new MyFilter();
        FilterRegistrationBean filter = new FilterRegistrationBean(new MyFilter());
        filter.setUrlPatterns(Arrays.asList("/my"));
        return filter;
    }

    // listener
    @Bean
    public ServletListenerRegistrationBean myListener() {
        MyServletContextListener listener = new MyServletContextListener();
        return new ServletListenerRegistrationBean(listener);
    }
}

到了这里,关于16、Web原生组件注入(Servlet、Filter、Listener)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWeb学习|JavaBean;MVC三层架构;Filter;Listener

    实体类 JavaBean有特定的写法: 必须要有一个无参构造 属性必须私有化。 必须有对应的get/set方法 用来和数据库的字段做映射 ORM; ORM:对象关系映射 表---类 字段--属性 行记录----对象   Filter:过滤器,用来过滤网站的数据 处理中文乱码 登录验证.... 弄一个过滤器的demo 空maven+web项

    2024年02月13日
    浏览(47)
  • 小黑子—JavaWeb:第六章 - Filter、Listener、AJAX与JSON

    概念: Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等 定义类,实现Filter接口,并重写其所有方法 配置

    2024年02月14日
    浏览(44)
  • 16.云原生之kubesphere组件安装卸载

    云原生专栏大纲 KubeSphere 的全部可插拔组件如下: 配置项 功能组件 描述 alerting KubeSphere 告警系统 可以为工作负载和节点自定义告警策略。告警策略被触发后,告警消息会通过不同的渠道(例如,邮件和 Slack)发送至接收人。 auditing KubeSphere 审计日志系统 提供一套与安全相

    2024年01月19日
    浏览(45)
  • 033-安全开发-JavaEE应用&SQL预编译&Filter过滤器&Listener监听器&访问控制

    1、JavaEE-JDBC-SQL预编译 2、JavaEE-HTTP-Filter过滤器 3、JavaEE-对象域-Listen监听器 演示案例: ➢JavaEE-预编译-SQL ➢JavaEE-过滤器-Filter ➢JavaEE-监听器-Listen 提前编译好执行逻辑,你注入的语句不会改变原有逻辑! 预编译写法: safesql 是一个预编译的 SQL 查询语句,其中 ? 是一个占位符

    2024年02月22日
    浏览(47)
  • DAY14_Filter&Listener&Ajax&Axios&Json&fastjson&综合案例-axios和html交互

    Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求 拦截 下来,从而实现一些特殊的功能。 如下图所示,浏览器可以访问服务器上的所有的资源(servlet、jsp、html等) 而在访问到这些资源之前可以使过滤器拦截来下,也就是说在访问

    2024年02月15日
    浏览(37)
  • Spring Boot 3.1.2版本使用javax.servlet.Filter时,发现Filter不起作用

    在学习Filter的过程中,我实现了Filter的init和destory方法以及doFilter方法后,运行SpringBoot程序发现,我的控制台中并没有输出ini和destory中的调试信息。 代码如下:  可以看到控制台中并没有输出initialize Filter和destory Filter等信息  利用postman发送http请求发现access Filter也没有输出

    2024年03月09日
    浏览(40)
  • Web Component -- 即将爆发的原生的 UI 组件化标准

    Web Component 是一种用于构建 可复用用户界面组件 的技术,开发者可以创建自定义的 HTML 标签,并将其封装为包含逻辑和样式的独立组件,从而在任何 Web 应用中重复使用。 每个 Web Component 都具有自己的 DOM 和样式隔离,避免了全局 CSS 和 JavaScript 的冲突问题。它还支持自定义

    2024年02月03日
    浏览(43)
  • SpringBoot中Filter bean是怎么被添加到Servlet容器中的

    参考资料 对于Spring Boot的IOC容器——ServletWebServerApplicationContext,其中的Filter bean,每个Filter bean都会被独立的注册成为Servlet的Filter。大概的注册过程分成2步: IOC容器——ServletWebServerApplicationContext将Filter接口的实现类封装成FilterRegistrationBean,放到ServletContextInitializerBeans实例的

    2024年02月14日
    浏览(35)
  • 微信小程序web-view上覆盖原生组件,解决cover-view点击事件无法触发问题

    结合了以下文章,都没有找到办法 https://blog.csdn.net/WEIGUO19951107/article/details/94305964 https://blog.csdn.net/weixin_39461487/article/details/80075140 https://developers.weixin.qq.com/community/develop/doc/cbd33199b42aec724e54419ebe6371d7 图片显示是这个文章给我了参考,并且成功 https://blog.csdn.net/one_girl/article/deta

    2024年02月11日
    浏览(54)
  • 云原生之 Gateway 的 Filter 过滤器

    通常情况下,出于安全方面的考虑, 服务端提供的服务往往都会有一定的校验逻辑 ,例如用户登陆状态校验、签名校验等。 在微服务架构中,系统由多个微服务组成,所有这些服务都需要这些校验逻辑,此时我们就可以将 这些校验逻辑写到 Spring Cloud Gateway 的 Filter 过滤器中

    2023年04月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包