什么是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 ...
随机推荐
- 微信小程序 - 考试倒计时
源码如下(csdn提供了思路 , 多谢 ,第二个小程序项目,有惊无险(_._): Page({ /** * 页面的初始数据 */ data: { timer: '', //定时器名字 countDow ...
- java编译命令工具javac
Reads Java class and interface definitions and compiles them into bytecode and class files. Synopsis ...
- ushare编译之 ‘struct sockaddr_storage’ has no member named ‘s_addr’
编译ushare的时候出现'struct sockaddr_storage' has no member named 's_addr' 这是使用libupnp1.6.19出现版本号不兼容的错误. 解决 ...
- [技术讨论]关于前几天公布的京东bug上的问题分析
1. 起因 前两天我公布了一个京东微信端截取到的三张图.并简单阐述了这三张图中的bug发现过程: 有朋友的评价是图中这种,可实际上.他应该是没有看出来这个bug代表的内容有多少.今天心血来潮决定具体 ...
- Hollis原创|不了解这12个语法糖,别说你会Java
GitHub 2.5k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 2.5k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 2.5k Star 的 ...
- 一个数组nums,其中任意两个值等于给定值target,返回这两个值在nums里的位置
package com.java.tencent; import java.lang.reflect.Array; import java.util.Arrays; import java.util. ...
- 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。
错误原因: xml文件中,本来是要配置成下面这样的: http://www.springframework.org/schema/context http://www.springframework. ...
- js获取和设置属性的方法
function square(num){ var total = num*num;//局部变量 return total;}var total = 50;//全局变量var number ...
- 深入Asyncio(七)异步上下文管理器
Async Context Managers: async with 在某些场景下(如管理网络资源的连接建立.断开),用支持异步的上下文管理器是很方便的. 那么如何理解async with关键字? 先 ...
- java中的 equals + hashCode
[0]README 0.1)本文转自 core java volume 1, 旨在理清 equals + hashCode方法: [1]equals方法 1.1) Object中的 equals 方法 ...