1. JavaEE软件三层结构和MVC的区别?

首先,三层结构是三层结构,MVC是MVC,它们是没有关系的,不要弄混。 三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑。Web层(表现层)、业务逻辑层、数据持久层。

MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的 HTML 页面尽可能的和业务代码分离。MVC把纯净的界面展示逻辑(用户界面)独立到一些文件中(Views),把一些和用户交互的程序逻辑(Controller)单独放在一些文件中,在 Views 和 Controller 中传递数据使用一些专门封装数据的实体对象,这些对象,统称为Models。

三层可以应用于任何语言、任何技术的应用程序;而MVC只是为了解决BS应用程序视图层各部分的耦合关系。它们互不冲突,可以同时存在,也可根据情况使用其中一种。

 

2. struts2如何完成文件的上传?需要注意什么?

1、JSP页面:  

1)JSP页面的上传文件的组件:<input type=”file”>,如果需要一次上传多个文件, 就必须使用多个 file 标签, 但它们的名字必须是相同的,即:  name=“xxx”的值必须一样;  

2)必须把表单的enctype属性设置为:multipart/form-data;  

3)表单的方法必须为post,因为post提交的数据在消息体中,而无大小限制。  

 

两层三层CS架构_XML

2、对应的action:  

1)在 Action 中新添加 3 个和文件上传相关的属性;

两层三层CS架构_Struts2_02

2)如果是上传单个文件, uploadImage属性的类型就是 java.io.File, 它代表被上传的文件, 第二个和第三个属性的类型是 String, 它们分别代表上传文件的文件名和文件类型,定义方式是分别是:  jsp页面file组件的名称+ContentType,  jsp页面file组件的名称+FileName  

3)如果上上传多个文件, 可以使用数组或 List

 

3. 介绍一下你了解的json

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。---百度百科

。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型:1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

4. 谈一下普通字符串,json字符串和json对象的区别

①普通字符串是一种包装类数据,这类数据全部存在于堆中

②JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;之所以叫json字符串,因为字符串的格式符合json的格式。

③JSON对象是直接可以使用JQuery操作的格式,对象的属性是可以用:对象.属性进行调用的。

 

5. 说一下同步和异步的区别

可以这样简单地去理解:同步是一个线程去做一件事情,必须要一步一步去做,要等每一个程序执行完了再去执行下一个程序;异步是多个线程去做一件事,不需要等一个程序执行完再去执行下一个,异步的线程是由代码自动产生的,并在线程执行完后会插入到现有的代码入口。总得来说异步的执行效率更高,但是也有些特定的场合必须要用到同步,比如说银行转账。

6. XML和JSON优缺点---面试题

Xml定义:扩展标记语言

Json定义:JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。

JSON的优点:

A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。

JSON的缺点

A. 没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
B. JSON格式目前在Web Service中推广还属于初级阶段。

XML的优点
A.格式统一,符合标准;
B.容易与其他系统进行远程交互,数据共享比较方便。
XML的缺点
A.XML文件庞大,文件格式复杂,传输占带宽;
B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
D.服务器端和客户端解析XML花费较多的资源和时间。

XML和JSON的优缺点对比

可读性方面。

JSON和XML的数据可读性基本相同,JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些。

可扩展性方面。

XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

编码难度方面。

XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

解码难度方面。

XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

流行度方面。

XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous Javascript and JSON)了。

解析手段方面。

JSON和XML同样拥有丰富的解析手段。

数据体积方面。

JSON相对于XML来讲,数据的体积小,传递的速度更快些。

数据交互方面。

JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。

数据描述方面。

JSON对数据的描述性比XML较差。

传输速度方面。

JSON的速度要远远快于XML。

 

7. 要想让struts2框架开始工作需要做哪些准备工作?

1.jar包

2.前端过滤器

3.创建action类

4.配置struts.xml

 

Struts 简单的七个步骤:

:客户端在浏览器中输入一个url地址;

:这个url请求通过http协议发送给tomcat;

:tomcat根据url找到对应项目里面的web.xml文件;

:在web.xml里面会发现有struts2的配置;

:然后会找到struts2对应的struts.xml配置文件;

:根据url解析struts.xml配置文件就会找到对应的class;

:调用完class返回一个结果result,根据struts.xml返回到对应的jsp;

 

8. struts2注解开发常用的注解及其作用是什么?

@Namespace来代替<package  namespace=””>

@ParentPackage来代替<package extends=””>

@Action来描述关于<action>配置

value属性<action name=””>

使用@Action的results来描述关于结果类型的配置<result>

<result name=”” type=””>

@Action(results={@Result(name=””,type=””,location=””)})