JAVA企业面试题精选 Struts 1-10

3.Struts

3.1.为什么要用Struts2?

参考答案:

  主流的开发技术,大多数公司在使用,Struts是基于MVC模式开发的,MVC结构是一个优秀的设计思想,可以提高程序结构的灵活性,便于日后的维护和扩展.

3.2.简述Struts的发展历史

参考答案:

  最早出现的Struts1是一个非常著名的框架,它实现了MVC模式.Struts1简单小巧,其中最成熟的版本是Struts1.2.
  之后出现了WebWork框架,其实现技术比Struts1先进,但影响力不如Struts1.
  在框架技术不断发展过程中,有人在WebWork核心XWork的基础上包装了Struts1(算是两种框架的整合),由此,结合了Struts1的影响力和WebWork的先进技术,Struts2诞生了.
  所以说,Struts2不是Struts1的升级,它更像是WebWork的升级版本.

3.3.请简述Struts2与Struts1的区别和联系

参考答案:

  Struts2与Struts1差别巨大,不能理解为Struts1的升级版;Struts2以Xwork为核心,可以理解为WebWork的升级版.

3.4.Struts2如何实现MVC,与Spring MVC有什么不同?

参考答案:

  Struts2采用filter充当前端控制器处理请求,filter会根据struts.xml的配置,将请求分发给不同的业务控制器Action,再由Action处理具体的业务逻辑.Action处理完业务之后,filter会根据其返回的字符串,从struts.xml中找到对应的result,最终由result将请求转发给页面.
  这个实现的思路与Spring MVC基本一致.其差异如下:
  1)Spring采用Servlet充当前端控制器,分发请求.
  2)Spring采用RequestMapping配置请求与业务控制器的关系.
  3)Spring采用Controller充当业务控制器.
  4)Spring采用ViewResolver将请求转发给页面.

3.5.在Struts2中页面如何向Action传参?

参考答案:

  Struts2中常用的传参方式有2中,分别是基本属性注入和域模型注入.
  其中,基本属性注入是将表单中的数据,分别传给Action中声明的基本属性,要求这些属性有set方法,并且名称与表单中框体的name值一致.
  域模型注入是将表单中的数据,传给Action中的一个实体对象,要求这个对象具有set方法,并且表单中框体的name中的表达式要有如下格式”对象.属性”.

3.6.什么是OGNL?

参考答案:

  Object Graphics Navigation Language,对象图导航语言,属于表达式语言的一种,与EL表达式类似;Ognl技术是Struts2中的核心知识,它封装于ognl.jar中;Ognl.jar工具包提供一个引擎,该引擎可以按照提供的ognl表达式访问对象数据和方法.

3.7.OGNL工具的构成

参考答案:

  OGNL工具由三部分构成:
  1.OGNL引擎,负责解析执行OGNL表达式
  2.Root存储区,负责存储一个Object类型的对象,该存储区数据访问时,OGNL表达式格式为”属性”
  3.Context存储区,负责存储一个Map类型的对象,该存储区数据访问时,OGNL表达式格式为”#key”

3.8.OGNL表达式有哪些用法,你熟悉其中哪几种?

参考答案:

  OGNL有8种用法,其中常用的有2种,不太常用的有6中.
  我熟悉这2种常用的用法,其作用是:
  1)可以给基本属性注入值
  2)可以给实体对象注入值
  另外6种用法也有所料及,作用是:
  1)可以访问数组或集合
  2)可以访问Map
  3)可以在访问时进行一些基本的运算
  4)可以在访问时调用返回对象的方法
  5)可以直接创建一个临时的集合
  6)可以直接创建一个临时的Map

3.9.请简述Struts2的Action的工作原理

参考答案:

  Struts2的Action工作原理如下:
  1.当客户端发出请求,请求到达控制器;
  2.当控制器根据请求创建一个ValueStack对象,每个请求创建一个Action对象,Action对象存入到ValueStack对象的root栈顶.将ValueStack对象存入到request中.存储的key为”struts.valueStack”;
  3.控制器调用Action对象接受请求参数,执行业务方法处理;
  4.控制器根据Action返回值调用result视图组件处理;
  5.请求处理完成后,将ValueStack对象和Action对象销毁.

3.10.请列出常用的至少五种Struts2的Result组件,并说明它们的作用

参考答案:

  1.dispatcher(默认) 以请求转发方式调用一个JSP,生成响应视图;
  2.redirect 以重定向方式调用一个Action;
  3.redirectAction 以重定向方式调用一个Action;
  4.chain 以请求转发方式调用一个Action
  5.stream 以字节流方式响应,将Action中指定的一个InputStream类型属性输出,将Action中的InputStream属性以字节流方式输出;
  6.json 以json字符串方式响应,将Action中指定的属性,拼成一个json字符串输出.

3.Struts

3.1.为什么要用Struts2?

参考答案:

  主流的开发技术,大多数公司在使用,Struts是基于MVC模式开发的,MVC结构是一个优秀的设计思想,可以提高程序结构的灵活性,便于日后的维护和扩展.

3.2.简述Struts的发展历史

参考答案:

  最早出现的Struts1是一个非常著名的框架,它实现了MVC模式.Struts1简单小巧,其中最成熟的版本是Struts1.2.
  之后出现了WebWork框架,其实现技术比Struts1先进,但影响力不如Struts1.
  在框架技术不断发展过程中,有人在WebWork核心XWork的基础上包装了Struts1(算是两种框架的整合),由此,结合了Struts1的影响力和WebWork的先进技术,Struts2诞生了.
  所以说,Struts2不是Struts1的升级,它更像是WebWork的升级版本.

3.3.请简述Struts2与Struts1的区别和联系

参考答案:

  Struts2与Struts1差别巨大,不能理解为Struts1的升级版;Struts2以Xwork为核心,可以理解为WebWork的升级版.

3.4.Struts2如何实现MVC,与Spring MVC有什么不同?

参考答案:

  Struts2采用filter充当前端控制器处理请求,filter会根据struts.xml的配置,将请求分发给不同的业务控制器Action,再由Action处理具体的业务逻辑.Action处理完业务之后,filter会根据其返回的字符串,从struts.xml中找到对应的result,最终由result将请求转发给页面.
  这个实现的思路与Spring MVC基本一致.其差异如下:
  1)Spring采用Servlet充当前端控制器,分发请求.
  2)Spring采用RequestMapping配置请求与业务控制器的关系.
  3)Spring采用Controller充当业务控制器.
  4)Spring采用ViewResolver将请求转发给页面.

3.5.在Struts2中页面如何向Action传参?

参考答案:

  Struts2中常用的传参方式有2中,分别是基本属性注入和域模型注入.
  其中,基本属性注入是将表单中的数据,分别传给Action中声明的基本属性,要求这些属性有set方法,并且名称与表单中框体的name值一致.
  域模型注入是将表单中的数据,传给Action中的一个实体对象,要求这个对象具有set方法,并且表单中框体的name中的表达式要有如下格式”对象.属性”.

3.6.什么是OGNL?

参考答案:

  Object Graphics Navigation Language,对象图导航语言,属于表达式语言的一种,与EL表达式类似;Ognl技术是Struts2中的核心知识,它封装于ognl.jar中;Ognl.jar工具包提供一个引擎,该引擎可以按照提供的ognl表达式访问对象数据和方法.

3.7.OGNL工具的构成

参考答案:

  OGNL工具由三部分构成:
  1.OGNL引擎,负责解析执行OGNL表达式
  2.Root存储区,负责存储一个Object类型的对象,该存储区数据访问时,OGNL表达式格式为”属性”
  3.Context存储区,负责存储一个Map类型的对象,该存储区数据访问时,OGNL表达式格式为”#key”

3.8.OGNL表达式有哪些用法,你熟悉其中哪几种?

参考答案:

  OGNL有8种用法,其中常用的有2种,不太常用的有6中.
  我熟悉这2种常用的用法,其作用是:
  1)可以给基本属性注入值
  2)可以给实体对象注入值
  另外6种用法也有所料及,作用是:
  1)可以访问数组或集合
  2)可以访问Map
  3)可以在访问时进行一些基本的运算
  4)可以在访问时调用返回对象的方法
  5)可以直接创建一个临时的集合
  6)可以直接创建一个临时的Map

3.9.请简述Struts2的Action的工作原理

参考答案:

  Struts2的Action工作原理如下:
  1.当客户端发出请求,请求到达控制器;
  2.当控制器根据请求创建一个ValueStack对象,每个请求创建一个Action对象,Action对象存入到ValueStack对象的root栈顶.将ValueStack对象存入到request中.存储的key为”struts.valueStack”;
  3.控制器调用Action对象接受请求参数,执行业务方法处理;
  4.控制器根据Action返回值调用result视图组件处理;
  5.请求处理完成后,将ValueStack对象和Action对象销毁.

3.10.请列出常用的至少五种Struts2的Result组件,并说明它们的作用

参考答案:

  1.dispatcher(默认) 以请求转发方式调用一个JSP,生成响应视图;
  2.redirect 以重定向方式调用一个Action;
  3.redirectAction 以重定向方式调用一个Action;
  4.chain 以请求转发方式调用一个Action
  5.stream 以字节流方式响应,将Action中指定的一个InputStream类型属性输出,将Action中的InputStream属性以字节流方式输出;
  6.json 以json字符串方式响应,将Action中指定的属性,拼成一个json字符串输出.

猜你喜欢

转载自blog.csdn.net/a639735331/article/details/81699633