中南大学软件学院架构复习大全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
●使用Hibernate框架进行ORM,可大幅度减少开发时手工使用SQL和JDBC的出错。
优点:简单。
缺
点:多了查询,慢(但实际对于一个JAVA EE应用而言,hibernate通常的处理流程是:从数据看里加载记录->将信息发送到表现层供用户修改或删除->将所做修改重新保存到数据库。
在这种处理流程下,应用本身就需要两条SQL语句)。
●iBats---半自动化ORM框架提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射的
低级别ORM方案,使用原生态SQL作为查询语言。
●OGNL是Object Graph Navigation Language,对象图导航语言。
ONGL是一种强大的表达式语言,它通
过简单一致的表达式语法来读取和设置Java对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。
WEB容器是指一种安装在服务端计算机中的特定软件。
此类软件遵循HTTP 协议,主要功能是负责侦听指定端口,接收客户端的请求并解析,然后将指定的响应页面发送到客户端。
EL表达式EL是一种简单而强大的语言,提供了在JSP脚本元素范围外使用运行时表达式的功能。
Web Services应用程序组件,使用开放协议进行通信,独立的并可自我描述,可通过使用UDDI来发现,可以被其他应用程序使用,XML是其基础。
●Mybatis一个持久数据映射框架,提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射
的低级别ORM方案,使用原生态SQL作为查询语言,用来完成数据持久化MyBaits基本原理:在XML 文件中定义SQL语句,预留参数占位符;在运行时,占位符被指定的参数值取代,参数可能来自参数映射表、JavaBean属性、或者简单的参数对象。
在执行SQL查询时,结果字段被映射到对象,映射的方式与参数映射一样。
●ORM框架ORM, Object-Relational Mapping, 对象-关系数据库映射框架。
在关系型数据库和业务实体对
象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。
●拦截器(Interceptor)是Struts2的一个重要特性。
Struts2的大多数核心功能都是通过拦截器来实现的,
如类型转换、对象组装、输入校验、文件上传等。
Struts2将其大多数核心功能通过拦截器来实现,而不是分散在Action中实现,有利于系统的解耦,实现“hot-plug”。
需要某个功能就“plug-in”一个拦截器,而不需要修改和业务相关的Action代码。
编写一个用于安全验证的拦截器第一步:修改UserAction第二步:编写拦截器类AuthenticationInterceptor extends AbstractInterceptor第三步:配置拦截。
●DI强制将组件的构建和使用分开。
(组件的生产、组件的使用、接口的定义、运行时注入)。
借
助spring框架,实现工厂的效果。
如果类与类之间没有依赖(不能提取接口),则不用IOC(如果横向有依赖,即action与action之间有关系,说明没有设计好)功能太小,也不用IOC,spring是做大系统的。
DI有两种最常用的方式:构造注入——保留依赖的先后顺序。
Set注入——更多使用步骤:定义组件接口:墨盒接口ink;纸张接口paper;使用接口开发打印机:printer(使用ink和paper接口)组装打印机:在printer里。
给ink和paper创建set方法创建或得到ink和paper的实现类。
组装——在src下创建applicationContext.xml(依赖注入)。
运行打印机
●Spring框架的一项最基本的功能就是充当创建对象的工厂,具体步骤为:第一步:读取并
分析spring配置文件(如XML配置文件);第二步:通过反射机制,创建并集成上述配置文件中的对象;第三步:将创建的对象传回给应用代码。
一、输入校验(自定义验证器的开发)
1、编写ValidationCodeAction,用于产生验证码图像;
2、编写自定义的结果类型,用于输出验证码;
3、在struts.xml中配置自定义结果类型和ValidationCodeAction;
4、修改UserAction,添加验证码属性;
5、修改login.jsp,添加验证码输入框;
6、编写字段验证器类ValidationCodeValidator;
7、注册字段验证器类ValidationCodeValidator;
8、为验证器编写验证规则。
二、Ajax应用的处理流程
1、一个客户端事件触发一个Ajax事件;
2、创建XMLHttpRequest对象的一个实例;
3、向服务器做出请求;
4、服务器完成业务逻辑;
5、请求返回到浏览器;
6、处理响应数据。
三、MyBatis实现步骤
1、编写Configuration.xml文件;
2、获取SqlSessionFactory;
3、编写映射器UserMapper.xml;
4、编写UserDao的实现。
四、使用Hibernate的步骤(三个准备,七个步骤)
三个准备:1、导入Hibernate库(jar包);
2、添加Hibernate配置文件
3、添加对应表的实体类和映射文件。
七个步骤:1、configuration
2、创建SessionFactory
3、打开Session
4、开始一个事务
5、持久化操作
6、提交事务
7、关闭Session
六、为什么需要AOP
AOP可以说是OOP的补充和完善。
OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。
然而OOP在某些场合无能为力,比如当需要分散的、不具有继承层次的对象引入公共行为的时候,OOP则无法避免代码的重复。
抽象的说,OOP允许定义从上倒下的关系,但并不适合定义从左到右的关系。
具体而言,比如安全验证和记录日志功能,这类代码往往平均的分散在所有对象层次中,而与它所散步到的对象的核心功能毫无关系。
Spring AOP采用纯java实现,无须特别编译。
不仅提供AOP基础框架,还提供很多现成的切面实现。
Spring AOP和Spring IoC容器无缝的集成,AOP组件享受Spring提供的一切优势,比如可将拦截器、切入点都当做Spring Bean来管理。
七、Model I和Model II的区别
本质区别在于处理批量请求的位置不同。
Model1:结合JSP页面和JavaBean来开发Web应用程序。
jsp页面独自响应请求并将处理结果返回客户端。
这里仍然存在表达和内容的分离,因为所有的数据存取都是由bean完成的。
缺点:内容和表示没有完全解耦,jsp页面内被嵌入大量的脚本片段或java代码
Model2:采用MVC的设计模式,C负责转发请求,对请求进行处理,V显示数据,
M封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
八、同步通信和异步通信
同步通信方式---请求响应模型,在传统的web应用模型下,大部分的用户操作都会发送一个http请求给服务器,然后服务器开始处理(接收数据,执行业务逻辑,访问数据库),最后向浏览器返回html页面。
异步通信方式---XMLHttpRequest对象,异步发送请求,消除了传统的“发送请求-等待-发送请求-等待”的特性,极大的提高了用户体验。
九、Spring
1、核心关注点:完成业务逻辑的关注点
2、横切关注点:实现代码散落在很多个类或方法之中的关注点。
3、切面:一个切面是对一个横切关注点的模块化,它将那些散落在各处的、实现关注点的代码归整在一起。
十、持久化对象的状态
持久化对象的临时状态
不在Session的缓存中,不与任何的Session实例相关联。
在数据库中没有与之相对应的记录 持久化对象的持久化状态
存在Session的缓存中。
持久化对象映射了数据库中的相关记录。
Session在清理缓存时,会同步更新数据库。
Session的load()或get()方法返回的对象总是处于持久化状态 持久化对象的游离状态
脱离Session缓存。
游离对象在数据库中可能存在与之对应的纪录,但游离对象与数据库记录失去了映射关系
名词解释
1、AJAX
一种异步交互技术,JavaScript、CSS、DOM、XmlHttpRequest四种技术的集合体,主要应用于异步获取后台数据和局部刷新。
消除了传统的“发送请求-等待”的特性,极大的提高了用户体验。
2、XMLHttpRequest(XHR)对象
XMLHttpRequest是Ajax的核心机制,是一种支持异步请求的技术。
JavaScript可以及时向服务器提出请求和处理响应,而不阻塞用户,达到无刷新的效果。
3、JSTL
JSP Standard Tag Library ,由许多公司共同开发完善的开放源代码的jsp标签库,是由apache 维护的。
4、Web Services
应用程序组件,使用开放协议进行通信,独立的并可自我描述,可通过使用UDDI来发现,可以被其他应用程序使用,XML是其基础。
5、MVC
一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制
器(Controller)
6、AOP
面向切面编程,AOP思想的核心是“横切”,将对象剖开,抽出一些内部的属性和行为,处理后再将剖面复原,不留痕迹。
7、Hibernate---全自动化ORM框架
Hibernate是一个对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java 程序员可以使用对象编程思维来操纵数据库,主要用来完成数据持久化的重任。
8、iBats---半自动化ORM框架
提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射的低级别ORM方案,使用原生态SQL作为查询语言。
9、ORM
用Java语言设计的程序是面向对象(Object)的,而持久数据是存储在关系型数据库(Relation)中的,所以需要一种映射机制(Mapping)。
10.OGNL
ONGL对象图导航语言。
ONGL是一种强大的表达式语言,它通过简单一致的表达式语法来读取和设置Java对象的属性,调用对象的方法,实现字段类型转换等功能。
11、国际化(Internationalization)是使程序在不做任何修改的情况下,就可以在不同的国家或地区和不同的语言环境下,按照当地的语言和格式习惯显示字符,又被称为I18N。
12、AOP
意为面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
13、IOC
控制反转,强制将组件的创建和使用分离,通过反射机制,动态的创建组件已达到解耦目的。
14.WEB容器
是指一种安装在服务端计算机中的特定软件。
此类软件遵循HTTP协议,主要功能是负责侦听指定端口,接收客户端的请求并解析,然后将指定的响应页面发送到客户端。
15.SERVLET
Servlet是一种独立于平台和协议的服务器端Java应用程序。
Servlet由Servlet容器加载和运行,在Java Web环境中Servlet容器一般嵌入在Web容器中。
主要功能就是响应来自客户端的请求。
16.JSP
用Servlet来编写Web应用,导致服务端代码过于繁琐和复杂,将Servlet中的静态部分和动态部分分开来编写,同时提供类似HTML的写法.JSP是一种建立在Servlet规范提供的功能之上的动态网页技术
17.JSP页面的执行过程
1客户端发出请求(Request:Counter.jsp);2.JSP容器将JSP转译成Servlet的源代码;
3编译Servlet,并加载到内存执行;4将结果响应(Response:Output.html)至客户端。
18.EL表达式
EL是一种简单而强大的语言,提供了在JSP脚本元素范围外使用运行时表达式的功能19.jdbc
JDBC是Java数据库连接(Java Database Connectivity)的简称。
是Java平台(JavaSE)中用来规范客户端程序如何来访问数据库的应用程序接口(API),提供了诸如查询和更新数据库中数据的方法。
软件开发人员使用这些标准API来连接和操作数据库,实现数据库应用程序的开发。