在传统的方式写动态网站的时候需要将servlet配置到xml中,如今可以直接通过spring注解的方式来处理
创建HelloServlet类继承HttpServlet
启动服务器(这个是什么我什么配置文件都没有,连web.xml都不存在):
创建一个页面
根据官方文档配置
创建MyServletContainerInitializer类继承ServletContainerInitializer
在应用启动的时候,会运行onStartup方法
ServletContext arg1:代表当web应用的ServletContext:一个Web应用对应一个ServletContext
必须将文件javax.servlet.ServletContainerInitializer放到META-INF/services下面;内容为继承ServletContainerInitializer的类的全路径名
创建接口HelloService
@HandlesTypes():容器启动的时候会将@HandlesTypes指定的这个类型下面的子类(实现类、子接口等)传递过来;
Set<Class<?>> arg0:感兴趣的类型的所有子类型
创建HelloServiceExt接口继承HelloService
创建AbstractHelloService抽象类实现HelloService
创建HelloServiceImpl实现HelloService
打印相关信息
运行:
总结:
主要是通过配置类,然后继承相关类型即可。就可以实现在web初始化的时候运行onStartup()方法。
使用ServletContext注册web组件(Servlet、Filter、Listener)
创建UserServlet类继承HttpServlet
创建UserFilter类实现Filter
创建UserListener,监听项目的初始化和创建
注册组件(Servlet、Filter、Listener)
你可以看到注册Filter,返回的是javax.servlet.FilterRegistration.Dynamic
配置拦截请求信息
DispacherType
拦截请求为REQUEST,
true:开启拦截,
/*:拦截所有
启动服务器
输入user我们能看到它被拦截了
关闭服务器