随记-员工管理系统

员工管理系统-JavaBean&EL&JSTL&MVC思想

 

目录

员工管理系统-JavaBean&EL&JSTL&MVC思想

JavaBean

JavaBean的规范

Bean属性与对象属性

JavaBean的内省机制

EL表达式

什么是EL表达式

EL表达式访问JavaBean中的属性

EL其他特性

JSTL

JSTL是什么

JSTL常用标签

MVC

Model1模型

Model2模型

什么是MVC

MVC职责

三层架构和MVC的区别


 

JavaBean

JavaBean是一种JAVA语言写成的可重用组件。可重复使用,减少代码冗余,方便维护;

JavaBean的规范

我们开发一个JavaBean,需要满足一定的规范:

  • 必须有包; -- 编程规范/良好的编程习惯

  • 必须是具体的和公共的; -- 访问权限最大化,非抽象的

  • 必须有公有无参构造; -- 方便框架或底层通过反射创建对象

  • 必须有相应公有的setter、getter方法; -- 方便设置和获取属性/el表达式

  • 建议对象属性私有化; -- 控制直接操作对象属性

Bean属性与对象属性

Bean属性 == JavaBean属性:getter和setter方法上的属性,其中getter方法上的属性称之为可读属性,setter方法上面的属性称之为可写属性;对象属性 == 字段,即实例变量;

JavaBean的省机制

  1. 什么是JavaBean内省机制?
    1. 内省也叫自省。内省(IntroSpector)是Java语言对 Bean类属性、事件(GUI,这里不学)的一种缺省(默认)处理方法;
    2. 我们拿到一个JavaBean,就可以拿到它的读写属性和读写方法,然后通过反射完成读写操作;
    3. 内省是基于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关系运算符

  1. ${16>5} 或 ${16 gt 5}
  2. ${16<5} 或 ${16 lt 5}
  3. ${16>=5} 或 ${16 ge 5}
  4. ${16<=5} 或 ${16 le 5}
  5. ${1==2} 或 ${1 eq 2}
  6. ${2!=1} 或 ${2 ne 1}
  • EL逻辑运算符

  1. ${true && true}:结果 true
  2. ${true and true}:结果true
  3. ${true || false} ${true or false}:结果 true
  4. ${!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常用标签

  1. if标签(判断)
  2. 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职责

  1. 控制器C:整个过程中,控制器即要与前端界面交互,也要与后台Java代码(Model)进行交互,起到核心控制作用。
  2. 模型M:后台Java代码,包括业务代码、持久化层代码、实体Model/domain等
  3. 视图V:页面,只显示内容
  • 注意:Model是不能直接与视图交互的

三层架构和MVC的区别

三层架构和MVC并没有直接的联系,MVC是一种设计模式,而三层架构是一种软件架构。目的都是解耦,提高代码复用,适用于团队开发;

  1. 数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等;
  2. 业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理;
  3. 表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得;

你可能感兴趣的:(java)