《中南大学软件学院架构超强复习大全》由会员分享,可在线阅读,更多相关《中南大学软件学院架构超强复习大全(5页珍藏版)》请在金锄头文库上搜索。
1、 JDBC 是用来执行 SQL 的 Java API,开发人员可以使用这些标准 API 来迎接和操作数据库,实现数据库应用程序的开发。JDBC 是 Java 的规范,考虑到规范的适应性, JDBC 只提供了最直接的数据库操作规范,在 Java.sql 包中。2 种主要的 JDBC 连接方式:ODBC 桥驱动技术和 JDBC 纯驱动模式。ODBC 驱动程序是由微软设计和开发的一种通用的标准的操作数据库的 API,也可以认为是一种数据库系统应用程序的接口规范。纯驱动技术是一种由各个数据库厂商提供的驱动程序,其通过协议的方式,将应用程序的 SQL 语句直接发送到数据库的 DBMS 执行,并返回结果。
2、JDBC 可做三件事:与数据库建立连接执行 SQL 语句、处理结果。 使用 JDBC 直连 DB 的缺点:1. 在某一时刻连接必须服务于一个用户,以免造成事务冲突。2. 创建连接需要耗费时间。3. 保持连接打开状态的代价很大。使用数据库连接池的优点:1. 资源重用 2 更快的系统响应速度 3 统一的连接管理,避免数据库连接泄漏 Servlet 是一种独立于平台和协议的服务器端的 Java 应用程序,可以生成动态的 Web 页面。Servlet 能干什么:1.根椐请求创建并响应整个 HTML Web 页面,根据客户请求的性质而具有动态内容。2.创建 HTML Web 页面的动态部分,并嵌入到现有
3、静态 HTML 页面中。3.使用服务器上的其他资源,如数据库、其他 Java 程序。4.处理与多个 Web 客户端的连接,接收来自多个 Web 客户端的输入信息。生命周期包括加载、实例化、处理客户端请求和移除,该生命周期由javax.servlet.Sercvet 接口的 init、setvlet、destroy 方法实现。该生命周期由部署 Servlet 的容器来控制。 JSP 是 Servlet 来编写服务端代码过于繁琐和复杂,所以将响应页面的动态部分和静态部分分开。JSP与 Servlet 的关系 :1 JSP 是一种建立在 Servlet 规范提供的功能之上的动态网页技术 2. JSP
4、 文件在用户第一次请求时,会被编译成 Servlet,然后由这个 Servlet 处理用户的请求 3.JSP 可以看成是运行时的 Servlet。JSP 执行过程:1. 客户端发出请求(Request)2. JSP 容器将 JSP 转译成 Servlet 的源代码 3.编译 Servlet,并加载到内存执行 4.将结果响应(Response)至客户端 。JSP 语法提供 3 种脚本元素:1. 声明(Declarations)声明变量或方法 2.Scriptlets编写有效的 Java 程序片段 3.表达式(Expressions)合法的 Java 表达式。servlet 对象包括:page 和
5、 config。JSP 中会话跟踪的方法:1.隐藏域 2.URL 传值 3.session 4.cookie JavaBean 往往封装了程序的页面逻辑,它是可重用的组件。通过使用 JavaBean,可以减少在 JSP 中脚本代码的使用,这样使得 JSP 易于维护。 JavaBean 的优点:变更方便、可重用组件、可在多个应用程序中使用 、可以跨平台 页面关联:Web 应用程序最突出的优点是其能够聚合大量的信息资源。单个 Web 组件所提供的信息和功能是有限的,因此需要通过 Web 组件间的关联来实现信息资源和功能的聚合。Web 组件之间共有三种关联关系:请求转发、请求重定向、包含。Web 作
6、用数据域:页面范围、请求范围、会话范围、应用范围 MVC 模式(三层架构模式) (Model-View-Controller )是软件工程中的一种软件架构模式,组织代码用一种业务逻辑和数据显示分离的方法。把软件系统分为三个基本部分:模型(Model) 、视图(View)和控制器(Controller) 。控制器负责转发请求,对请求进行处理。视图实现数据的显示。模型封装与应用程序的业务逻辑相关的数据以及对数据的处理方法 Model1 和 model2 的区别 Model1 模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP 页面身兼 View 和 Con
7、troller 两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。Model2 已经是基于 MVC 架构的设计模式。在 model2 架构中,servlet 作为前端控制器,负责接受客户端发送的请求,在 servlet 中只包含控制逻辑和简单的前端处理;然后,调用后端的 JavaBean 来完成实际的逻辑处理;最后,转发到相应的 JSP 页面处理显示逻辑。区别:本质区别在于处理批量请求的位置不同。说明 Strusts2 是如何实现 MOdel2 的?在 struts2 中,Model 对应业务逻辑组件,它通常用于实现业务逻辑方法以及以及与底层
8、数据库的交互等;View 对应视图组件,通常是指 JSP 页面,但也适用于其他视图显示技术,如 Velocity 或者 Excel 文档;Control 对应系统核心控制器和业务逻辑控制器,系统核心控制器为 Struts2 框架提供的 FilterDispatcher,它根据请求自动调用相应的Action。而业务逻辑控制器是指开发人员自行定义的一系列 Action,在 Action 中负责调用相应的业务逻辑组件来完成处理。 JSTL(JSP Standard Tag Library) 是基于 SUN 公司所定义规范,由许多公司共同开发完善的开放源代码的 jsp 标签库,为实现 Web 应用程序
9、中常用功能提供了一个单一的标准解决方案,是由 apache维护的。 Servlet 过滤器 是 Web 中的一个小型组件,它能拦截来自客户端的请求和响应信息,进行查看提取或者对客户端和服务器之间交换的数据信息进行一些特定的操作。Servlet 过滤器常用的应用场景:1、对用户请求进行统一认证 2、用户的访问进行记录和审核 3、对用户发送的数据进行过滤或替换 4、转换图像格式 5、对响应内容进行压缩,减少传输量 6、对请求和响应进行加解密处理 什么是 Ajax?AJAX 是一种异步交互技术,是 JavaScript、CSS、DOM、XmlHttpRequest 四种技术的集合体,主要应用于异步获
10、取后台数据和局部刷新。异步交互方式:异步发送请求,消除了传统的“发送请求等待发送请求等待 ” ,极大的提高用户体验。异步:发送请求后不等返回结果,由回调函数处理结果。JavaScript:向服务器发起请求,获得返回结果,更新页面。XML:封装数据。Ajax 应用的处理流程 1、一个客户端事件触发一个 Ajax 事件;2 、创建 XMLHttpRequest 对象的一个实例;3、向服务器做出请求;4、服务器完成业务逻辑;5、请求返回到浏览器;6 、处理响应数据。Ajax 框架:浏览器端 1.Dojo 2.Google AJAXSLT 3.jQuery 服务器端 1.JSON/JSON-RPC 2
11、.Rails 3.DWR XMLHttpRequest 是 ajax 的核心机制,是一种支持异步请求的技术。简单的说,也就是 javascript可以及时向服务器提出请求和处理响应,而不阻塞用户,达到无刷新的效果。XMLHttpRequest 对象的常用方法:1.Open(”method”,”url”):建立对服务器的调用。Method 参数可以是 POST,GET或 PUT。url 路径可以使绝对路径也可以是相对路径。另外这个方法还有三个可选的参数。2.Send(content):向服务器发送请求。 AJAX 优点:1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。2、使
12、用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理 4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。AJAX 缺点:1 缺少一个没有标准之争、没有 back 和 history 的浏览器 2对搜索引擎的支持不好 3安全问题 4语言问题 同步通信和异步通信 同步通信方式-请求响应模型,在传统的 web 应用模型下,大部分的用户操作都会发送一个 http 请求给服务器,然后服务器开始处理(接收数据,执行业务逻辑,访问数据库) ,最后向浏览器返回 html 页面。异步通信方式-XMLHttpR
13、equest 对象,异步发送请求,消除了传统的“发送请求-等待- 发送请求 -等待”的特性,极大的提高了用户体验。 JavaScript 是一种广泛用于客户端的脚本语言,一种动态、弱类型、基于原型的语言,内置支持类 XML(可拓展标记语言)是 SMGL 的子集,其目标是允许普通的 SGML 在 Web 上以目前 HTML 的方式被服务、接受和处理,被设计成易于实现,且可在 SGML 和 HTML 之间互相操作。商业优势:信息共享、单一应用使用、内容交付。技术优势:数据重用、数据和表示分离、可拓展性、语义信息、容易理解、易于编程 由于软件已经实现了基本的 MVC 架构,开发者可以基于这个软件,添
14、加自己特定的业务逻辑,这样的软件就可以被称为 Web 框架。通过 Web 框架:规范软件的架构、减轻开发的难度、提高效率、降低维护成本。 Struts1 的缺陷:Formbean 与 ActionServlet 有关、控制器无法脱 web、不能做单元测试 Struts2 的大致工作流程可描述为: 浏览器发送请求。 Control 中的核心控制器 FilterDispatcher根据请求调用相应的业务逻辑控制器(Action)。WebWork 的拦截器链自动对请求应用通用功能,如数据校验和文件上传等功能。回调 Action 中的 execute()方法,并在方法体内调用业务逻辑组件来处理请求(M
15、odel) 。execute()方法将调用业务逻辑组件 (Model)得到的数据返还并更新视图层(View)。 Struts2 应用的开发步骤:第一步:在 web.xml 文件中定义核心 Filter 来拦截用户请求;第二步:如果需要以 POST 方式提交请求,则定义包含表单数据的 JSP 页面。如果仅仅是以 GET 方式发送请求,则无须经过这一步;第三步:定义处理用户请求的 Action 类;第四步:在 Struts.xml 中配置 action;第五步:在 Struts.xml 中配置处理结果和物理视图资源之间的对应关系;第六步:编写资源视图. Struts 2 的配置文件 : web.x
16、ml:Web 部署描述符,包括所有必需的框架组件。 Struts.xml:主要的配置文件,包含 result 映射、action 映射、拦截器配置等。struts.properties:Struts 2 的属性配置。struts-default.xml:Struts 2 的默认配置文件。struts-plugin.xml:Struts 2 框架的插件所用的配置文件。Action 映射:将一个请求 URI 映射到一个 action 类。name action 的名字,用于匹配请求 URI。Class Action 实现类的完整类名。method 执行 Acition 时调用的方法。Converther 应用于 action 的类型转换器的完整类名。Result 映射 daspatcher 转发。Redirect 重定向到另外的 URL。redirectAction 重定向到另外的 Action。chain 用于 Action 的链式处理。plainText 用于显示某些特定