动态的创建是为了简化配置文件的.对于我们创建的servlet,filter和listener后可以使用。这也是注解的另外一种替代方式。

package com.hotusm.dynamic;

import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRegistration;
import javax.servlet.annotation.WebListener; @WebListener
public class DynamicInitContextListener implements ServletContextListener{ public void contextInitialized(ServletContextEvent sce) { ServletContext context = sce.getServletContext();
ServletRegistration.Dynamic dynamicServlet=context.addServlet("dynamicServlet", DynamicServlet.class);
dynamicServlet.addMapping("/dynamicServlet");
dynamicServlet.setAsyncSupported(true);
dynamicServlet.setLoadOnStartup(1); FilterRegistration.Dynamic dynamicFilter = context.addFilter("dynamicFilter", DynamicFilter.class); context.addListener("com.hotusm.dynamic.DynamicListener"); } public void contextDestroyed(ServletContextEvent sce) { } }

其中前三个方法的作用是相同的,只是参数类型不同而已;通过 createServlet() 方法创建的 Servlet,通常需要做一些自定义的配置,然后使用 addServlet() 方法来将其动态注册为一个可以用于服务的 Servlet。两个 getServletRegistration() 方法主要用于动态为 Servlet 增加映射信息,这等价于在 web.xml( 抑或 web-fragment.xml) 中使用 <servlet-mapping> 标签为存在的 Servlet 增加映射信息。

以上 ServletContext 新增的方法要么是在 ServletContextListener 的 contexInitialized 方法中调用!

最新文章

  1. 添加删除表格append或 createElement
  2. 算法實例-C#-信箱排序-PigeonHoleSort
  3. 捉襟见肘之message sent to deallocated instance 0x16f62a70
  4. MVC4相关Razor语法以及Form表单
  5. [Flex] as3xls读取excel,修改保存单表(二)
  6. 360 chrome不能登录Google账户
  7. Win7下安装Mongodb教程
  8. Android与Linux以及GNU的关系
  9. Python正则表达式完全指南(上)
  10. CSS基础:层叠顺序和层叠上下文
  11. 对半导体制造(FAB)工种的全方位解析
  12. Chapter 5 Blood Type——20
  13. OLW (Open Live Writer)安装代码高亮插件方法(简明)
  14. 监听F5刷新,添加路由前缀
  15. git Disconnected:No supported authentication methods available问题解决
  16. keepalived高可用系列~keepalived+mysql
  17. RestTemplate之GET和POST调用和异步回调
  18. maven学习之pom.xml或settings.xml对nexus的配置(转)
  19. lfs(systemv版本)学习笔记-第2页
  20. WordPress数据库及各表结构分析

热门文章

  1. elasticsearch常见错误及解决方案
  2. Python (paramiko) 连接Linux服务器
  3. springboot-3-web开发
  4. 架构之:REST和HATEOAS
  5. vue组件之间通信总结(超详细)
  6. python 接口测试之 图片识别
  7. python 管理工具
  8. Distance Queries 距离咨询 (LCA倍增模板)
  9. HttpRunner3源码阅读:7.响应后处理 response.py
  10. centos linux下配置固定ip,方便xshell连接