该节在上一节的基础上增加了所谓对静态资源和动态资源访问的不同控制流程。示例里面采用的是对路径“/servlet/”进行了特殊处理。

 一、 主要还是从HttpServer1中的main方法开始,先解析出Request和Response对象,然后如果请求路径中包含/servlet/路径的话, 就进入ServletProcesser1进行处理,否则就进入StaticProcessor进行处理。
      在ServletProcessor1中,对Request和Response进行了封装,通过URLClassLoader方法通过反射的方式生成对应的示例,执行其service方法即可。
    由于类型中使用了反射的方式+强制类型转换,所以需要自己提供一个实现了javax.net.Servlet接口的类。
    这样就基本实现了静态资源请求和动态资源请求的不同分发机制。
    二、然后基于安全方面的考虑,又提供了一个HttpServer2,然后通过RequestFacade对Request进行了封装,用ResponseFacade对Response进行了封装,在其内部以私有变量的形式存在。
    HttpServer2中增加的额外逻辑是隐藏了Request和Response对象的部分接口,使用户只能调用限定的方法。

最新文章

  1. eclipse安装插件的各种方法
  2. adb remount 失败remount failed: Operation not permitted
  3. [转载]Eziriz .NET Reactor 4.7.0.0 官方原版+破解补丁(强大的代码保护和软件防盗版工具)
  4. 解析搜狗词库(python)
  5. ecshop---京东手机模板js的eval产生冲突的解决方法。
  6. PyCharm设置字体
  7. 04737_C++程序设计_第3章_函数和函数模板
  8. [MAC Eclipse] Eclipse for MAC 中文乱码的解决办法
  9. CALayer & UIView 关系浅析
  10. [0] Lc.exe 已退出,代码 -1
  11. ReportView动态加载带参数的RDCL文件
  12. Alpha冲刺集合
  13. 一个简洁的小H车调运模型
  14. SpringBoot系列——i18n国际化
  15. html 文本解码 xpath 获取html标签
  16. ubuntu18.04时区设置
  17. JAVA:简单添加菜单界面(swing)第二版
  18. jQuery-2.DOM---节点的复制与替换
  19. 消息队列状态:struct msqid_ds
  20. 五、K3 WISE 开发插件《K3 Wise 群发短信配置开发(一)之短信平台配置》

热门文章

  1. Python自动化之select、greenlet和gevent和事件驱动模型初探
  2. C#操作txt文件
  3. POJ 3414
  4. ios coredata NSManagedObject 的 objectID
  5. ios 关于UIView 的multipleTouchEnabled 和 exclusiveTouch
  6. ffmpeg-20160714-git-bin.7z
  7. Python2.7<-------->Python3.x
  8. Zookeeper WINDOWS 安装配置
  9. 【leetcode】Binary Tree Zigzag Level Order Traversal (middle)
  10. 【leetcode】Binary Tree Preorder Traversal (middle)★