自定义MVC总结

知识点集合

DTD

定义

是一种约束语言(同为约束语言的还有schema)

作用

用来校验XML文件,约束xml配置文件,
检验xml格式。

用处

一般就用在xml文件中。

引用
引用有两种方式
1、引用本地dtd (SYSTEM)

<!DOCTYPE persons SYSTEM "路径">

2、引用互联网上的dtd (PUBLIC)

<!DOCTYPE persons PUBLIC "路径">

怎么使用
这里用一个.xml进行演示,比较直观。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE persons>

-<persons>


-<person parent="p2" qq="aaa" sex="男" pid="p1">

<name>张小明</name>

<age>10</age>


-<contact>

<phone>1234567</phone>

</contact>

<br/>

</person>


-<person pid="p2">

<name>张大明</name>

<age>35</age>


-<contact>

<email>123@qq.com</email>

</contact>

</person>

</persons>

1、在xml文件中加入DTD声明
语法:
那么如上面的xml文件,它的根目录就是persons
所以它的声明为:

<!DOCTYPE persons[]>

2、定义元素
语法:<!ELEMENT 元素名 (类型)>
元素的分类如下图:
在这里插入图片描述
元素的限制:
在这里插入图片描述
元素出现的次数表示:
在这里插入图片描述
那么根据上面给出的config.xml就可以写出它的元素(元素写在声明的那个方括号里)

<!DOCTYPE persons[
	<!ELEMENT persons (person+)>
	<!ELEMENT person (name,age,contact,br?)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	<!ELEMENT contact (phone|email)>
	<!ELEMENT phone (#PCDATA)>
	<!ELEMENT email (#PCDATA)>
	<!ELEMENT br EMPTY>
]>

3、然后来看属性
语法:<!ATTLIST 元素名 属性名 类型>
属性的类型:
在这里插入图片描述
元素也写在声明里,然后根据上面给出的xml文件,在后面加上属性定义

<!DOCTYPE persons[
	<!ELEMENT persons (person+)>
	<!ELEMENT person (name,age,contact,br?)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT age (#PCDATA)>
	<!ELEMENT contact (phone|email)>
	<!ELEMENT phone (#PCDATA)>
	<!ELEMENT email (#PCDATA)>
	<!ELEMENT br EMPTY>
	<!ATTLIST person
		pid ID #REQUIRED
		sex (|) "男" 
		qq CDATA #IMPLIED
		parent IDREF #IMPLIED
	>
]>

XML

有效的xml:
在这里插入图片描述
格式良好的xml:
在这里插入图片描述
存放位置
在这里插入图片描述

作用

1、做配置
2、数据交互
现数据交互已经被淘汰,一般用json(更加简单,方便)

XML解析

具体我之前有发过博客举例
XML解析具体举例
定义

获取数据的一种方式。
作用

可以解析出xml文件的数据,
获取xml格式中的数据。
用在哪里

解析框架配置文件

怎么用
dom4j

加载文件
查一组(多个节点):selectNodes("action")
查单个(单个节点):selectSingleNode("xxx")

sax解析

XML建模

具体我之前有发过博客举例
XML建模具体举例
目的:
为了更便捷的操作xml
提高程序性能
怎么用
以面向对象的思维操作xml
将xml中的元素看成一个对象。
用在哪里
框架配置文件读写信息的地方

反射

具体我之前有发过博客举例
反射举例
为什么要学习反射
JAVA反射机制是构建框架技术的基础所在。
掌握Java反射机制,能让代码变得更灵活。
反射实例化能实例化未知的对象帮助开发人员处理未知的网络请求(这是对比new实例化反射实例化的优点)
比较大白话描述就是,当你不知道你后面要使用的是个什么类,用反射就可以(像做通用方法,不确定是什么类的时候),而不是像new实例化一样,一定要知道是什么类才可以实例化,反射就比较灵活,可以更好的走通代码。

作用
可以动态的实例化对象,读写属性,调用方法。
重点
首先,反射的一切相关代码都要从获取到类对象开始,获取到对象,才能获取到它的属性,方法之类。
所以怎么获取类对象勒?
其中2,3是我比较常用的

1、Class.forName(类的完整路径名)
2、类名.class
3、对象.getClass()

然后获取到类对象之后呢,就可以开始操作了
具体的操作
实例化对象

1、无参公有的实例化
2、有一个参数的公有构造器实例化
3、有两个参数的公有构造器实例化
4、私有的构造器实例化  重点

调用方法
用途:可以用在自定义mvc的增强子控制器中

1、无参公有的方法调用
2、有一个参数的方法调用
3、私有的方法调用

读写属性
用途:通用的增删改

1、公有的
2、私有的

自定义标签

这个我之前也有写过举例,可移步去我之前的博客看,这里就不再重复了~
自定义标签
目的
在现有这些标签不能满足我们代码所需的一些要求的时候,这个时候就需要自己去定义了,简单来说就是可以对症下药。
作用
学习jsp自定义标签的目的就是为了敲代码的时候可以更加轻松,减少代码量。

自定义mvc通用方法

这个我之前也写过具体怎么做,也写得比较详细,可以去康康~
自定义mvc的增删改查

关于mysql数据库中datetime类型的转换

如果要用反射的方法的话
只需要将eclipse里面的datetime对应的字段的类型改成TimeStamp就行。
然后针对输出的TimeStamp的值后面会有一个.0的后缀,在实体类里面加两行代码就行了。
在这里插入图片描述

思维导图总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值