2022-08-30  阅读(13)
原文作者:键盘林

在传统的方式写动态网站的时候需要将servlet配置到xml中,如今可以直接通过spring注解的方式来处理

创建HelloServlet类继承HttpServlet

202203062037569661.png

启动服务器(这个是什么我什么配置文件都没有,连web.xml都不存在):

202203062037591492.png

创建一个页面

202203062038023693.png

根据官方文档配置

创建MyServletContainerInitializer类继承ServletContainerInitializer

在应用启动的时候,会运行onStartup方法

ServletContext arg1:代表当web应用的ServletContext:一个Web应用对应一个ServletContext

202203062038068574.png
必须将文件javax.servlet.ServletContainerInitializer放到META-INF/services下面;内容为继承ServletContainerInitializer的类的全路径名

202203062038087425.png

创建接口HelloService

202203062038110456.png

@HandlesTypes():容器启动的时候会将@HandlesTypes指定的这个类型下面的子类(实现类、子接口等)传递过来;

Set<Class<?>> arg0:感兴趣的类型的所有子类型

202203062038125127.png

创建HelloServiceExt接口继承HelloService

202203062038148218.png

创建AbstractHelloService抽象类实现HelloService

202203062038162169.png

创建HelloServiceImpl实现HelloService

2022030620381768510.png

打印相关信息

2022030620381904311.png

运行:

2022030620382119312.png

总结:

主要是通过配置类,然后继承相关类型即可。就可以实现在web初始化的时候运行onStartup()方法。

使用ServletContext注册web组件(Servlet、Filter、Listener)

创建UserServlet类继承HttpServlet

2022030620382289713.png

创建UserFilter类实现Filter

2022030620382519714.png

创建UserListener,监听项目的初始化和创建

2022030620382715915.png

2022030620382948916.png

2022030620383174417.png

注册组件(Servlet、Filter、Listener)

2022030620383319518.png

2022030620383520019.png

你可以看到注册Filter,返回的是javax.servlet.FilterRegistration.Dynamic

2022030620383653520.png

配置拦截请求信息

2022030620383832021.png

DispacherType

2022030620384091622.png

拦截请求为REQUEST,

true:开启拦截,

/*:拦截所有

2022030620384221423.png

启动服务器

2022030620384410324.png

输入user我们能看到它被拦截了

2022030620384619625.png

关闭服务器

2022030620384730426.png


Java 面试宝典是大明哥全力打造的 Java 精品面试题,它是一份靠谱、强大、详细、经典的 Java 后端面试宝典。它不仅仅只是一道道面试题,而是一套完整的 Java 知识体系,一套你 Java 知识点的扫盲贴。

它的内容包括:

  • 大厂真题:Java 面试宝典里面的题目都是最近几年的高频的大厂面试真题。
  • 原创内容:Java 面试宝典内容全部都是大明哥原创,内容全面且通俗易懂,回答部分可以直接作为面试回答内容。
  • 持续更新:一次购买,永久有效。大明哥会持续更新 3+ 年,累计更新 1000+,宝典会不断迭代更新,保证最新、最全面。
  • 覆盖全面:本宝典累计更新 1000+,从 Java 入门到 Java 架构的高频面试题,实现 360° 全覆盖。
  • 不止面试:内容包含面试题解析、内容详解、知识扩展,它不仅仅只是一份面试题,更是一套完整的 Java 知识体系。
  • 宝典详情:https://www.yuque.com/chenssy/sike-java/xvlo920axlp7sf4k
  • 宝典总览:https://www.yuque.com/chenssy/sike-java/yogsehzntzgp4ly1
  • 宝典进展:https://www.yuque.com/chenssy/sike-java/en9ned7loo47z5aw

目前 Java 面试宝典累计更新 400+ 道,总字数 42w+。大明哥还在持续更新中,下图是大明哥在 2024-12 月份的更新情况:

想了解详情的小伙伴,扫描下面二维码加大明哥微信【daming091】咨询

同时,大明哥也整理一套目前市面最常见的热点面试题。微信搜[大明哥聊 Java]或扫描下方二维码关注大明哥的原创公众号[大明哥聊 Java] ,回复【面试题】 即可免费领取。

阅读全文