什么是XXX
1、什么事框架
框架式一组程序的集合,包含了一系列的最佳实践,作用是 解决某个领域的问题。
当我们使用某个框架时,其实是把一系列JAR包加载到CLASSPATH路径中,实际上是获得了JAR中所有对JDK的额外支持。
也就是说:框架只是一些JAR包而已,其本质是对JDK的功能扩展,作用是为了解决某个领域的问题。
最佳实践:实际上是无数程序员在经过了无数次的尝试后,总结出来的处理特定问题的特定方法。
2、是么是三层架构
从宏观上来说,web开发模式中最重要的一条是分层开发模式,即将整个程序根据功能职责进行 纵向划分,
一个比较典型的划分方法是将程序划分为:表示层、业务层和持久层,即所谓的三层架构。
表示层:负责处理与界面交互相关的功能。
业务层:负责 复杂的业务逻辑计算和判断。 例如:一些 有效性验证的工作:①不允许 文本框中输入指定的字符串
②数据格式 是否 正确及数据类型验证
③用户权限 的合法性判断 等等。
持久层:负责 将业务逻辑数据进行持久化存储。
持久层是为业务逻辑层服务的,业务逻辑层操作的是对象,而数据库是关系型数据库。
持久层要把表和字段屏蔽掉,把它变成对象来传递给我们的业务层。
Struts2是表示层的框架
Spring是业务层的框架
Hibernate是持久层的框架
3、什么事MVC模式
MVC是一种设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC,应用程序被分成了三个核心部件:模型、试图、控制器。他们各自处理各自的任务。
视图:是用户看到并与之交互的界面。
模型:维护数据并提供数据访问方法。就是业务流程的处理以及业务规则的指定。
业务流程的处理过程对于其它层来说是黑箱操作,模型接收视图请求的数据并返回处理的结果。模型是MVC的核心。
控制器:接收用户的输入并调用模型和视图去完成用户的要求。
所以,当单击Web页面中的超链接和发送HTML表单时,控制器本身 不输出任何东西和任何处理。 它只是接收请求 并 决定调用哪个模型构件 去处理返回的数据。
    
1)MVC模式最重要的一点是多个视图能共享一个模型。无论你的用户想要Flash界面或是WAP界面,用一个模型就能够处理。由于你已经将数据和业务规则从表示层分开,所以可以最大化的重用你的代码。
2)模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。
3)因为模型是自包含的,并且与控制器和视图相分离,所以很容易改变你的应用程序的数据层 和 业务规则。 如:你想把你的数据库从MySql移植到Oracle,只需要改变模型即可。
4、什么事Servlet
SUN公司规定的一种用于扩展Web服务器功能的 组件规范。
为了能让Web服务器 与 Web应用 这两个不同的软件系统协作,首先应该由一个中介方制定Web应用与Web服务器进行协作的标准接口,Servlet就是其中最重要的接口。
SUN公司不仅制定了 Web应用与Web服务器运行协作的 一系列标准Java接口(统称为Java Servlet API)。
还 对Web服务器发布运行Web应用的一些细节 作了规约。 SUN公司把这一系列标准Java接口和规约统称为Servlet规范。
最常用的用途是 扩展Web服务器的功能。
① 提供了可被服务器动态加载并执行的程序代码,为来自客户端的请求提供相应服务。
② Servlet完全 用Java语言编写,因此需要运行Servlet的服务器必须支持Java语言。
③ Servlet完全 在服务器端运行,因此它的运行不依赖于浏览器。 不管浏览器是否支持Java,都能请求访问服务器端的Servlet。
5、什么是JSP
Java Servlet Page(Java服务器端页面技术),SUN公司制定的一种服务器端 动态页面生成的技术规范。因为使用Servlet生产动态页面过于繁琐,不利于代码的维护。
所以,生成动态页面时使用JSP会更方便。因为JSP的组成部分主要是HTML和少量的Java代码,
如果是HTML就可以直接编写了,而不必使用out、println生成页面。
JSP执行过程:
① .jsp文件 要被jsp引擎转换为.java文件, 即一个标准Servlet。
② 再将转换好的.java文件 编译成 字节码文件。
③ 调用service()方法。
6、什么事Ajax
asynchronous javascript and xml(异步的javascript和xml)。
是为了解决传统的web应用(必须点击"提交"按钮, 浏览器才会向服务器发送请求。
并且,浏览器在发送请求之前,会先销毁之前的页面;
此时,用户只能等待服务器返回一个新的页面,不能做其它事情。
当服务器返回新的页面之后,浏览器要重新解析生成相应的界面。)当中“请求-等待-请求”的弊端而创建的一种技术,
该技术的实质是:利用浏览器内置的一个特殊对象XmlHttpRequest异步地向服务器发送请求(即浏览器不会销毁之前的页面,用户仍然可以继续操作),服务器返回处理结果(不是整个页面,只是部分的数据),然后使用该处理结果,更新部分页面。整个过程,页面无刷新、不打断用户的操作,用户的体验要好于传统的web应用。
图示演示:
    
1)Ajax引擎(即XmlHttpRequest对象),首先为该对象注册一个监听器(该监听器是一个事件处理函数,对状态改变事件(readyStatechange)进行监听)
2)当用户对GUI做了某种操作(将产生对应的事件,如焦点失去事件等)
3)一旦产生对应的事件,将触发事件处理代码
4)在执行事件处理代码时,会调用Ajax引擎(XmlHttpRequest对象)
5)发送请求:Ajax引擎被调用后,将独自向服务器发送请求(独立于浏览器之外)继续其他操作:在Ajax引擎发送请求的同时,用户在浏览器端还可以对GUI继续做其他操作,该请求时异步请求(Ajax引擎发送请求时,没有打断用户的操作)
6)服务器的web组件队请求进行处理
7)服务器可能会调用到数据库或者处理业务逻辑的java类
8)服务器处理结果响应给(只返回部分数据,可以使XML或者文本)Ajax引擎
9)监听器通过Ajax引擎获取响应数据(xml或者文本)
10)监听器对GUI中的数据进行更新(局部更新,不是整个页面刷新)
在整个过程中大部分是通过JS实现的,响应数据可能是XML(后来又出现了Json等技术),所以Ajax可以看做是多种技术的融合。
7、什么事JavaScript
JavaScript是网景公司开发的一种在浏览器端执行的脚本语言。
HTML只是描述网页长相的标记语言,没有计算、判断能力,
如果所有计算、判断(比如判断文本框是否为空,判断两次输入的密码是否一致)都放在服务器端执行的话,页面会非常慢,用起来也很困难,对服务器的压力很大,
因此要求 能在浏览器中 执行一些简单的运算、判断等操作。
JavaScript是 解释型语言,无需编译就可以随时运行,这样哪怕语法有错误,没有语法错误的部分还是能正常运行。
8、什么事CSS
css即casecading stylesheet(级联样式表又称风格样式表),为网页提供表现的形式即(它是用来进行网页风格设计的)。
9、什么事JDBC
JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于 执行SQL语句的Java API, 可以为多种 关系数据库 提供 统一访问。
JDBC是SUN公司设计了访问SQL数据库的接口(或者规范、标准),JDBC驱动程序有 数据库软件商 和 第三方的软件商 提供,
因此,根据编程所使用的数据库系统不同,所需要的驱动程序也有所不同。
    
10、什么是Hibernate
Hibernate是一款开放源代码的ORM(Object Relation Mapping,对象关系映射)框架,
它对JDBC进行了轻量级的对象封装,使得Java程序员可以随心所欲的使用 对象编程思维 来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合。
Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。
通过这些接口,不仅对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。
  ·Session接口:Session接口负责执行被持久化对象的CRUD操作 (CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的 session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。
  ·SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。
  ·Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
  ·Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
  ·Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。
11、什么事Sping
Spring是一个 开源的控制反转(Inversion of Control,IoC)和 面向切面(AOP)的容器框架, 它的主要目的是简化企业开发。
什么是XXX的更多相关文章
- 记一个mvn奇怪错误: Archive for required library: 'D:/mvn/repos/junit/junit/3.8.1/junit-3.8.1.jar' in project 'xxx' cannot be read or is not a valid ZIP file
		我的maven 项目有一个红色感叹号, 而且Problems 存在 errors : Description Resource Path Location Type Archive for requi ... 
- eclipse 突然 一直在loading descriptor for XXX (XXX为工程名)Cancel Requested
		问题: eclipse 启动后,啥也不干,就一直在loading descriptor for XXX (XXX为工程名),,其他什么操作都不能操作. 如下图所示,保存文件也无法保存. 这个怎么办? ... 
- 现有语言不支持XXX方法
		史上最强大的IDE也会有bug的时候哈,今天遇到这个问题特别郁闷,百度了下,果然也有人遇到过这个问题 解决方法: 1.调用的时候参数和接口声明的参数不一致(检查修改) 2.继承接口中残留一个废弃的方法 ... 
- An App ID with Identifier 'com.XXX.XXX’ is not available. Please enter a different string.报错
		昨天刚刚升的Xcode7.3和iOS9.3,然后没怎么使用这两样就下班了,但是今天早上来了之后,就发现突然之间不能真机测试和运行代码了,一看才发现xcode报错: An App ID with Ide ... 
- log4j:ERROR Failed to rename [/log/xxx.log] to [/log/xxx.log.2016-11-23.log]
		Log4j报错: log4j:ERROR Failed to rename [/log/xxx.log] to [/log/xxx.log.2016-11-23.log] google了一下发现是个b ... 
- href="javascript:xxx(this);"和onclick="javascript:xxx(this);"的区别
		href="javascript:xxx(this);"和onclick="javascript:xxx(this);" 一直以为这两种写法是等同的,今天在项目 ... 
- ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
		scp免密码登录:Linux基础 - scp免密码登陆进行远程文件同步 执行scp一直是OK的,某天在本地生成了公钥私钥后,scp到某个IP报以下错误 The authenticity of host ... 
- iOS开发中遇到的错误整理 - 集成第三方框架时,编译后XXX头文件找不到
		iOS编译报错-XXX头文件找不到 错误出现的情况: 自己在继承第三方的SDK的时候,明明导入了头文件,但是系统报错,提示头文件找不到 解决方法 既然系统找不到,给他个具体路径,继续找去! 路径就填写 ... 
- 解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
		解决mysql Table 'xxx' is marked as crashed and should be repaired的问题. 某个表在进行数据插入和更新时突然出现Table 'xxx' is ... 
- 【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
		(转自:http://blog.csdn.net/reille/article/details/7161942) 作者:reille 本博客网址:http://blog.csdn.net/reille ... 
随机推荐
- hdu-5015-233 Matrix-矩阵
			非常显然矩阵的第一列为: 0 a[1] a[2] a[3] a[4] 我们转化一下,转化为 23 a[1] a[2] a[3] a[4] 3 那么由第一列转移到第二列则为 23*10+3 a[1]+2 ... 
- 提高SharePoint2013服务器性能
			一劳永逸,删除search services application,停止Windows服务:SharePoint Search Host Controller和SharePoint Server S ... 
- 应用程序之TableView简单总结1
			UITableView的代理方法 修改Cell的状态 UITableView常见方法 一.UITableView的代理方法 #pragma mark 每一行的高度 - (CGFloat)tableVi ... 
- 应用程序之UITableView的Plain用法和cell缓存池优化
			效果展示 过程分析 代码实现 cell缓存池优化 一.效果展示 二.过程分析 首先通过三步创建数据,展示数据 监听选中某一个cell时调用的方法 在cell中创建一个对话框 修改对话框中的值,并且重新 ... 
- 关于PM的认识
			1 我眼中的PM 1.1 人云“一个管理,半个专家”,我说“一个管理,两个专家” 如今,我发现我们不得不面对这样一个现实——角色兼职.我习惯上把项目分为三类:性命攸关的项目(涉及到人身安全的项目,如铁 ... 
- C#实现多级子目录Zip压缩解压实例  NET4.6下的UTC时间转换  [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了  asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程  asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案  .NET Core开发日志
			C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ... 
- tf树
			tf变换(1) TF库的目的是实现系统中任一个点在所有坐标系之间的坐标变换,也就是说,只要给定一个坐标系下的一个点的坐标,就能获得这个点在其他坐标系的坐标. 使用tf功能包,a. 监听tf变换: ... 
- QTreeWidget 的用法
			Qt QTreeWidget 新建一个Qt Widgets Application,拖拽一个Tree Widget 到 ui 界面上,最后实现的效果如下: 添加代码 //test.h //在头文件里添 ... 
- wpf SplitButton
			 SplitButton该控件除了本身Button 的功能外,还具有下拉菜单的功能,能够在按键右側加入下拉菜单控件: <SplitButton Content="..." ... 
- 高性能HTTP加速器Varnish安装与配置(包含常见错误)
			Varnish是一款高性能的开源HTTP加速器.挪威最大的在线报纸Verdens Gang使用3台Varnish取代了原来的12台Squid,性能竟然比曾经更好.Varnish 的作者Poul-Hen ... 
