员工管理系统-JavaBean&EL&JSTL&MVC思想
目录
JavaBean
JavaBean是一种JAVA语言写成的可重用组件。可重复使用,减少代码冗余,方便维护;
JavaBean的规范
我们开发一个JavaBean,需要满足一定的规范:
-
必须有包; -- 编程规范/良好的编程习惯
-
必须是具体的和公共的; -- 访问权限最大化,非抽象的
-
必须有公有无参构造; -- 方便框架或底层通过反射创建对象
-
必须有相应公有的setter、getter方法; -- 方便设置和获取属性/el表达式
-
建议对象属性私有化; -- 控制直接操作对象属性
Bean属性与对象属性
Bean属性 == JavaBean属性:getter和setter方法上的属性,其中getter方法上的属性称之为可读属性,setter方法上面的属性称之为可写属性;对象属性 == 字段,即实例变量;
JavaBean的内省机制
- 什么是JavaBean内省机制?
- 内省也叫自省。内省(IntroSpector)是Java语言对 Bean类属性、事件(GUI,这里不学)的一种缺省(默认)处理方法;
- 我们拿到一个JavaBean,就可以拿到它的读写属性和读写方法,然后通过反射完成读写操作;
- 内省是基于JavaBean规范对反射进行了封装,可以很容易的获取javaBean的属性、方法和事件;
参考:
- 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口;是一种人与计算机通信的界面显示格式;
- JavaBean是一种特殊的类,主要用于传递数据信息。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为"值对象"(Value Object),或"VO"。这些信息可以通过setter、getter方法操作。内省机制是通过反射来实现的,BeanInfo用来暴露一个bean的属性、方法和事件,以后我们就可以操纵该JavaBean的属性;
EL表达式
什么是EL表达式
EL就是一种表达式语言:可以获取四大作用域中的共享数据:
- pageContext
- request
- session
- application
注意:el表达式获取作用域中的属性要依靠JavaBean的可读属性即需要有getter方法,否则无法获取;
EL表达式访问JavaBean中的属性
方式一:${对象名.属性名} -- 常用
方式二:${对象名["属性名"]} -- 一般在属性名有特殊字符时才使用
注意:
- 对象名可以从四大作用中获取;
- 对象名写错显示空字符串,属性名写错要报错;
EL其他特性
- EL算术运算符
${1+2} ${2-1} ${2*3} ${16/5}
-
EL关系运算符
- ${16>5} 或 ${16 gt 5}
- ${16<5} 或 ${16 lt 5}
- ${16>=5} 或 ${16 ge 5}
- ${16<=5} 或 ${16 le 5}
- ${1==2} 或 ${1 eq 2}
- ${2!=1} 或 ${2 ne 1}
-
EL逻辑运算符
- ${true && true}:结果 true
- ${true and true}:结果true
- ${true || false} ${true or false}:结果 true
- ${!true} 或 ${not true}:结果false
-
EL其他运算符
${empty param.name} :如果param.name 为空返回true否则false
-
EL三目运算符
${A?B:C},比如:${user.sex?"男":"女"}
JSTL
JSTL是什么
页面上的Java代码,对于前端开发人员无疑是一种累赘,而且大量的java代码也会破坏页面的整体效果。所以为了将页面中Java代码替换掉,可以使用JSTL帮助我们我们去消除Java代码。
JSTL(JavaServer Pages Standard Tag Library):JSP标准标签库,标签库由标签库和EL表达式语言两个部分组成,用来消除JAVA代码
JSTL常用标签
- if标签(判断)
- foreach标签(循环)
前台页面展示jstl.jsp:items:要循环的集合或数组,必须通过el表达式获取作用域中的数据;
- var:用于接收集合中的每一个对象;
- varStatus:当前循环的状态 (s 它是个javabean,里面有属性 index(循环索引,从0开始),count(计数,从1开始))
- begin:表示从那里开始展示,从0开始;
- end:表示从那里结束展示;
MVC
Model1模型
JSP + JavaBean开发也称作JSP模式:以JSP为中心的设计模型
优点:架构简单,比较适合小型项目开发
缺点:JSP 职责不单一,职责过重,不便于维护,不适合团队开发
Model2模型
Model2就是MVC的一种实现:JSP + Servlet + JavaBean
优点:职责清晰,适合团队开发,好维护,较适合于大型项目架构
缺点:分层较多,不适合小型项目开发
什么是MVC
MVC是程序设计的一种思想,与三层架构并没有直接的联系。全名是Model View Controller
- M:业务模型Model
- V:页面视图View
- C:控制器Controller
在MVC 模式中,Web 用户向服务器提交的所有请求都由控制器接管。接受到请求之后,控制器负责决定应该调用哪个模型来进行处理或直接跳转页面;可能直接跳转到视图;也有可能调用模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器跳转到相应的视图并将数据呈现给用户;
MVC职责
- 控制器C:整个过程中,控制器即要与前端界面交互,也要与后台Java代码(Model)进行交互,起到核心控制作用。
- 模型M:后台Java代码,包括业务代码、持久化层代码、实体Model/domain等
- 视图V:页面,只显示内容
- 注意:Model是不能直接与视图交互的
三层架构和MVC的区别
三层架构和MVC并没有直接的联系,MVC是一种设计模式,而三层架构是一种软件架构。目的都是解耦,提高代码复用,适用于团队开发;
- 数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等;
- 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;
- 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得;