自定义mvc学习(1)

文章目录
1、集合框架
2、xml
3、反射
4、自定义标签(jsp标签)

一、集合框架
1、list
默认的数据类型是Object,不能存放值类型,如果删除list集合中的元素需要使用迭代器
三种遍历:for、foreach、interator
特点:有序、有下标、能重复
list.remove 根据下标移除
list.hasnext 是否有下一个值
list.hasPrevious 是否有上一个值

ps:如果跳过hasnext直接执行hasPrevious则为空

intValue() 拆箱:引用数据类型转为值类型
integer() 装箱:值类型转为引用数据类型

去重复排序,代码如下:

List list=new ArrayList(new TreeSet(ls));

去重复,代码如下:

List list=new ArrayList(new HashSet(ls));

2、Set
特点:无序、无下标、不能重复
equels 与==的区别:
equels:比较的是内容
==:比较的是地址
SortedSet:无序 无下标 无重复,按照一定的规则进行排序

String s1=new String("a");
String s2=new String("a");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));

compareTo 自然排序 用来比较 我与他比,代码如下:

public int compareTo(Student o) {
		//按照学号的大小进行比较
		//正数   负数   0  默认是按照从小到大进行排列
		//return this.nid-o.nid;
		//从大到小
		return -(this.nid-o.nid);
		}

compare 比较器, 代码如下:

public int compare(Student a,Student b) {
		return a.getAge()-b.getAge();
	}

ps:如果同时有自然排序跟比较器,比较器的优先级比自然排序高
如果没有比较器,则默认为自然排序

3、Map
特点:
1、以键值对的方式进行存储数据
2、无序
3、 键不能重复 如果重复键,值会进行替换

如果不知道键想要获取值,代码如下:


Set key=map.keySet();//将所有的键保存到set集合中
		for(String str:key) {
			System.out.println(str+","+map.get(str));
		}

二、xml
1、作用
自定义mvc学习(1)_第1张图片
2、DTD约束
自定义mvc学习(1)_第2张图片
3、xml解析
自定义mvc学习(1)_第3张图片
4、xml建模
自定义mvc学习(1)_第4张图片
三、反射
1为什么使用及优点
(1)是所有框架的基础
(2)反射能够对所有通用性的变化部分进行向上抽取

(3)提高java程序的灵活性、扩展性
(4)降低耦合度,提高自适应能力
(5)无需编码目标类
2、在哪使用
(1)通用工具类的封装
(2)自定义框架
3、重要知识点
(1)获取类对象:
类名.Class()
Class.forName(“完整的类名路径”)
对象.getClass();

(2)实例化对象
公有的无参构造器:newInstance
私有的构造实例化:
getDeclaredConstructor(数据类型.class) 调用以申明的构造方法
setAccessible(true) 公开权限
实例化

(3)动态调用方法:
getDeclaredMethod(“方法名”,“可变参数”)
setAccessible(true) 公开权限
实例化

(4) 读写属性:
getDeclaredField(…Class)
setAccessible(true) 公开权限
实例化
getDecaredFileds()
4、应用
(1)、select标签
(2)、通用分页的xxxDao中使用通用增删改查
(3)、自定mvc的动态方法调用中使用(增强控制器)
(4)、开发各种通用框架
5、缺点
(1)用于字段和方法接入时要远慢于直接代码
(2)反射代码比相应的直接代码更为复杂
(3)破坏封装性而导致安全问题(调用方法时忽略权限检查)
四、自定义标签(jsp标签)
1、标签组成
开始标签
标签体
结束标签

标签体

2、c标签
if
set
out
foreach
3、助手类的生命周期
自定义mvc学习(1)_第5张图片
5、应用
自定义mvc学习(1)_第6张图片

你可能感兴趣的:(自定义mvc学习(1))