什么是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)的容器框架,  它的主要目的是简化企业开发。

时间: 2024-11-09 05:00:07

什么是XXX的相关文章

c# 无法加载xxx.dll 找不到指定的模块(如何指定文件夹)

如果直接放在项目运行目录,例如bin/debug可以直接加载,但是这样比较乱. 如果在放debug里面的一个文件夹里面,有可能会报错“无法加载xxx.dll 找不到指定的模块”. 如果路径写成这样就会报错 framework/linphone 解决方法:将/ 改成"\" framework\linphone

【VirtualBox】不能为虚拟电脑 xxx 打开一个新任务

发现Genymotion在打开虚拟机的时候提示报错,升级之前是正常的: 不能为虚拟电脑 xxx 打开一个新任务. Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #2' (VERR_SUPDRV_COMPONENT_NOT_FOUND). Failed to attach the network LUN (VERR_SUPDRV_CO

hibernate-Table 'XXX.XXX' doesn't exist

hibernate---Table 'XXX.XXX' doesn't exist 在设置自动生成数据表的策略中: <!-- 自动生成数据表的策略 --> <property name="hbm2ddl.auto">update</property>//别的值也可以 但是出现了一个问题:Table 'XXX.XXX' doesn't exist. 解决方法: 将Hibernate连接方言改为:org.hibernate.dialect.MySQL5I

部署OpenStack问题汇总(四)--openstack中nova-compute状态status显示为&#39;XXX&#39;的问题

第一次部署openstack的时候就遇见了这个问题,当时的版本是havana, 现在部署essex的时候又遇到了这个问题,经过一番折腾,解决了这个问题,记录下来,以免以后忘记. =========================================================== 1.查看/var/log/nova/nova-compute.log文件其中出现了这样的情况: Domain not found: no domain with matching name 'insta

在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数)

//在JS中,将text框中数据格式化,根据不同的小数位数,格式化成对应的XXX,XXX,XXX.XX(2位小数) 或者XXX,XXX,XXX(0位小数) function formatNum(num, n) {//参数说明:num 要格式化的数字 n 保留小数位 num = String(num.toFixed(n)); var re = /(-?\d+)(\d{3})/; while (re.test(num)) num = num.replace(re, "$1,$2") ret

.NetCore2.0引用DLL报System.InvalidOperationException: Can not find compilation library location for package &#39;XXX&#39;

.NET CORE 2.0 MVC项目引用类库出现:System.InvalidOperationException: Can not find compilation library location for package 'XXX' 临时解决如下(据说2.0.1会修复):在Startup.cs文件中:修改: public void ConfigureServices(IServiceCollection services) { var mvcBuilder = services.AddMv

python模块以及导入出现ImportError: No module named &#39;xxx&#39;问题

python模块以及导入出现ImportError: No module named 'xxx'问题 python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称为包.只要模 块或者包所在的目录在sys.path中,就可以使用import 模块或import 包来使用 如果你要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名就好,比 如在a.py中使用b.py:  import b 但是如果要import一个不同目录的文件(例如b.py)该怎么做

zabbix启动报错:Connection to database &#39;xxx&#39; failed解决方法

Zabbix 分布式系统监视系统 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. 本文讲解的是zabbix无法启动报错:Connection to database 'xxx' failed: [1045] Access denied for user 'xxx'@'localhost' (using password: NO)

mysql SELECT command denied to user &#39;root&#39;@&#39;localhost&#39; for table &#39;XXX&#39; 报错1142

还是数据库权限的问题,不知道为啥赋给了所有权限后还是有各种权限问题,看来有空得整理一下mysql所有相关权限的问题了... 下面才是解决这个select权限的方法: mysql SELECT command denied to user 'root'@'localhost' for table 'XXX' 报错1142

项目 XXX 的 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”

项目 XXX 的 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx” 编译新下载的代码出错 修改包管理器的源为 http://www.nuget.org/api/v2/ .重试后成功 记得打勾