关于Struts2的笔试题(三)

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

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

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

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

 

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

1、JSP页面:  

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

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

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

 

2、对应的action:  

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


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

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

 

3. 介绍一下你了解的json

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

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

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

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

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

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

 

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

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

6. XMLJSON优缺点---面试题

Xml定义:扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。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-JSONJSON-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的优缺点对比

可读性方面。

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

可扩展性方面。

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

编码难度方面。

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

解码难度方面。

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

流行度方面。

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

解析手段方面。

JSONXML同样拥有丰富的解析手段。

数据体积方面。

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

数据交互方面。

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

数据描述方面。

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

传输速度方面。

JSON的速度要远远快于XML。

 

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

1.jar包

2.前端过滤器

3.创建action类

4.配置struts.xml

 

Struts 简单的七个步骤:

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

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

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

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

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

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

  7:调用完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=””)})

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值