博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet系列文章(一)
阅读量:6149 次
发布时间:2019-06-21

本文共 1714 字,大约阅读时间需要 5 分钟。

  hot3.png

                                                                                 Servlet系列文章(一)

    现在越来越多的框架让人眼花缭乱,但本质上还是对servlet的一系列封装和扩张,所有在深入学习其他框架的时候,我个人选择了回顾servlet的使用,中间可能会有源码级别的探寻,也有多个版本之间的对比。希望能够记录下来,沉淀成自己的高贵财富。

    Servlet入口:在早期版本(通指低于3.0以前的版本)的时候的Servlet就是一个web.xml. 里面可以写些什么呢?

servlet
com.test.servlet.Servlet
servlet
/servlet

    对于:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    什么是XML Schema: Structures specifies the XML Schema definition language。来自(https://www.w3.org/TR/xmlschema-1/#no-xsi)

    说明 web.xml是遵  循 http://www.w3.org/2001/XMLSchema-instance 的标签规范。

    xmlns="http://java.sun.com/xml/ns/javaee" 是web.xml 的命名空间。

    后面一部分是书写规范。

    

        《!-- 主要是申明 --!》        
servlet
com.test.servlet.Servlet

    servlet就像一个Struts2里面的action ,SpingMVC 里面的Controller。

        
servlet
/servlet

    这个就是定义路由的规则。

    那么问题来了,tomcat是如何解析这个文件的呢?

    //这个是tomcat test文件的里面对读取web.xml 文件内容读取的测试。    public class TestSchemaValidation {    @Test    public void testWebapp() throws Exception {        XmlErrorHandler handler = new XmlErrorHandler();        Digester digester = DigesterFactory.newDigester(                true, true, new WebRuleSet(false), true);        digester.setErrorHandler(handler);        digester.push(new WebXml());        WebXml desc = (WebXml) digester.parse(                new File("test/webapp/WEB-INF/web.xml"));        Assert.assertEquals("3.1", desc.getVersion());        Assert.assertEquals(0, handler.getErrors().size());        Assert.assertEquals(0, handler.getWarnings().size());    }

    感觉功力不够,不能把入口这一点完全剖析出来(状态好的时候再试试)。

转载于:https://my.oschina.net/QAAQ/blog/632846

你可能感兴趣的文章
Git 工作流程
查看>>
iOS之UI--UITabBarController
查看>>
使用/etc/fstab完成文件系统的挂载
查看>>
Shiro随笔(2:探讨FilterChainManager)
查看>>
bootstrap常用类
查看>>
从Select语句看Oracle查询原理
查看>>
我的友情链接
查看>>
最短路径之Dijkstra算法
查看>>
1-1-1 裸机工具安装
查看>>
CentOS Linux 安装 iftop 监控网络流量
查看>>
使用DeepLearning4j训练和保存模型
查看>>
分页插件jquery.pagination.js
查看>>
H5页面快速搭建之高级字体应用实践
查看>>
Struts 1或2 ActionForm接受不到页面传值的问题
查看>>
配置 L3 agent - 每天5分钟玩转 OpenStack(99)
查看>>
Laravel / Lumen 实践总结
查看>>
总结:MySQL备份与恢复的三种方法
查看>>
java中final关键字的总结
查看>>
jdbc conn.commit()提交事务和 rollback()使用
查看>>
svn的终端使用
查看>>