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的更多相关文章

  1. 记一个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 ...

  2. eclipse 突然 一直在loading descriptor for XXX (XXX为工程名)Cancel Requested

    问题: eclipse 启动后,啥也不干,就一直在loading descriptor for XXX (XXX为工程名),,其他什么操作都不能操作. 如下图所示,保存文件也无法保存.  这个怎么办? ...

  3. 现有语言不支持XXX方法

    史上最强大的IDE也会有bug的时候哈,今天遇到这个问题特别郁闷,百度了下,果然也有人遇到过这个问题 解决方法: 1.调用的时候参数和接口声明的参数不一致(检查修改) 2.继承接口中残留一个废弃的方法 ...

  4. 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 ...

  5. 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 ...

  6. href="javascript:xxx(this);"和onclick="javascript:xxx(this);"的区别

    href="javascript:xxx(this);"和onclick="javascript:xxx(this);" 一直以为这两种写法是等同的,今天在项目 ...

  7. ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题

    scp免密码登录:Linux基础 - scp免密码登陆进行远程文件同步 执行scp一直是OK的,某天在本地生成了公钥私钥后,scp到某个IP报以下错误 The authenticity of host ...

  8. iOS开发中遇到的错误整理 - 集成第三方框架时,编译后XXX头文件找不到

    iOS编译报错-XXX头文件找不到 错误出现的情况: 自己在继承第三方的SDK的时候,明明导入了头文件,但是系统报错,提示头文件找不到 解决方法 既然系统找不到,给他个具体路径,继续找去! 路径就填写 ...

  9. 解决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 ...

  10. 【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处

    (转自:http://blog.csdn.net/reille/article/details/7161942) 作者:reille 本博客网址:http://blog.csdn.net/reille ...

随机推荐

  1. GIS可视化——麻点图

    一.引言 目前在客户端绘制POI(Point of Interest,兴趣点)的方式主要是div(Marker的形式).svg.canvas.VML(后边三种就是Vector Layer)几种方式,这 ...

  2. Hadoop一些问题总结

    1.运行mr程序出错 connecting to resoucemanager retrying .... retrying ..... 原因是没有启动yarn或者启动失败 2.初始化工作目录结构 h ...

  3. 【前端GUI】——对一些优秀网页设计作品的分析&心得

    前言:优秀的网站设计作品都有一些相似的地方,即使是美学,也一定会遵循着一定的规律. ONE 这一组,属于同类. 主题:点心. 背景:卡通动物形象. 色调:柔和,甜美. 点线面布局: 在这两个页面中,点 ...

  4. C 语言经典100例

    C 语言经典100例 C 语言练习实例1 C 语言练习实例2 C 语言练习实例3 C 语言练习实例4 C 语言练习实例5 C 语言练习实例6 C 语言练习实例7 C 语言练习实例8 C 语言练习实例9 ...

  5. Linux程序

    1.如何找到一个进程的安装程序目录与启动目录 2.如何完全卸载一个程序

  6. struts2获取ServletContext对象

      CreateTime--2017年9月7日09:24:40 Author:Marydon struts2获取ServletContext对象 需要导入: import javax.servlet. ...

  7. 【Android实战】Gallary+ImageSwicther图片查看器

    仿照如今各大新闻站点图片新闻的浏览模式,上面展示详细图片(ImageSwitch),以下是能够滑动的小图片(Gallery). 当中须要注意的是ImageSwitch须要定义一个工厂返回的组件,而且能 ...

  8. mysql中UNIX_TIMESTAMP()函数和php中time()函数的区别

    http://tech.ddvip.com/2009-01/1231392775105351.html mysql 中:UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date) 若 ...

  9. Ubuntu12安装RobotFramework

    安装Python Ubuntu默认已安装 安装pip wget https://bootstrap.pypa.io/get-pip.py python get-pip.pysudo apt-get i ...

  10. POJ 1698 Alice's Chance(最大流+拆点)

    POJ 1698 Alice's Chance 题目链接 题意:拍n部电影.每部电影要在前w星期完毕,而且一周仅仅有一些天是能够拍的,每部电影有个须要的总时间,问能否拍完电影 思路:源点向每部电影连边 ...