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. 微信小程序 - 考试倒计时

    源码如下(csdn提供了思路 , 多谢 ,第二个小程序项目,有惊无险(_._): Page({ /** * 页面的初始数据 */ data: { timer: '', //定时器名字 countDow ...

  2. java编译命令工具javac

    Reads Java class and interface definitions and compiles them into bytecode and class files. Synopsis ...

  3. ushare编译之 ‘struct sockaddr_storage’ has no member named ‘s_addr’

    编译ushare的时候出现'struct sockaddr_storage' has no member named 's_addr' 这是使用libupnp1.6.19出现版本号不兼容的错误. 解决 ...

  4. [技术讨论]关于前几天公布的京东bug上的问题分析

    1.  起因 前两天我公布了一个京东微信端截取到的三张图.并简单阐述了这三张图中的bug发现过程: 有朋友的评价是图中这种,可实际上.他应该是没有看出来这个bug代表的内容有多少.今天心血来潮决定具体 ...

  5. Hollis原创|不了解这12个语法糖,别说你会Java

    GitHub 2.5k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 2.5k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 2.5k Star 的 ...

  6. 一个数组nums,其中任意两个值等于给定值target,返回这两个值在nums里的位置

    package com.java.tencent; import java.lang.reflect.Array; import java.util.Arrays; import java.util. ...

  7. 通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明。

    错误原因: xml文件中,本来是要配置成下面这样的: http://www.springframework.org/schema/context http://www.springframework. ...

  8. js获取和设置属性的方法

    function square(num){    var total = num*num;//局部变量    return total;}var total = 50;//全局变量var number ...

  9. 深入Asyncio(七)异步上下文管理器

    Async Context Managers: async with 在某些场景下(如管理网络资源的连接建立.断开),用支持异步的上下文管理器是很方便的. 那么如何理解async with关键字? 先 ...

  10. java中的 equals + hashCode

    [0]README 0.1)本文转自 core java volume 1, 旨在理清 equals + hashCode方法: [1]equals方法 1.1) Object中的 equals 方法 ...