美文网首页面试题
Java面试题集锦10—SSH框架知识

Java面试题集锦10—SSH框架知识

作者: advance_bravely | 来源:发表于2016-10-14 18:58 被阅读296次

    43.什么是MVC设计模式
    MVC模式的主要思想是把控制器、数据模型和视图进行分离,达到高内聚和低耦合的作用。使用MVC,应用程序被分为3个核心部件:模型(Model)、视图(View)、控制器(Controller)。

    44.什么是Struts 2框架(Struts框架的作用)

    • 快速实现MVC模式下的C层开发
    • 快速灵活的配置模式,降低开发难度,梳理规范的开发流程
    • 易于整合其他框架,提高项目本身的扩展性
    • 零配置模式开发引入前沿的开发理念

    45.Struts 1与Struts 2之间的区别

    • Struts 1的缺点
      1. 表现层技术单一,只支持JSP;
      2. Action与Servlet API严重耦合,脱离Web容器难于测试;
      3. Action与Struts 1的API严重耦合,Action类必须继承Struts 1的Action父类处理业务逻辑时,代码中包含了ActionMapping,ActionForm,ActionForward等大量的Struts 1的API,属于入侵式设计;
      4. Action本质是一个Servlet,属于单实例的,容易出现线程安全问题;
    • Struts 2的优点
      1. 支持JSP,Freemarker,Velocity等多种表现层技术;
      2. Action只是一个POJO类,无需与Servlet API耦合,易于测试;
      3. Action无需与Struts API耦合,Action无需强制继承任何父类或实现任何接口,代码可重用率高,属于非入侵式设计;
      4. Action本质只是一个POJO类,每一个请求都会产生一个实例,属于多实例的,因此不存在线程安全问题;
      5. 提供强大的拦截器功能,实现自动注入请求参数,数据类型的转换,数据校验,文件上传等多种通用功能

    46.Struts 2框架的基本工作原理

    1. 客户端发出的请求(request)经过Struts核心过滤器的处理,核心过滤器委托ActionMapper判断请求url的后缀是否是Struts 2能处理的请求后缀(默认后缀名 是.action),如果是则转到步骤(2),否则直接放行;
    2. 创建Action的代理类对象ActionProxy,该对象委托ConfigurationManager读取struts.xml配置文件的信息并解析,根据请求的url匹配<action>标签的name属性,进而找到class属性(默认值是com.opensymphony.xwork2.ActionSupport类);
    3. ActionProxy根据<action>标签的class属性,每遇到一次请求,就利用反射创建一个新的Action对象实例;
    4. ActionProxy创建ActionInvocation对象,该对象调用该Action中配置的一系列的拦截器,并最终调用Action对象的执行方法(默认方法名为execute)
    5. 执行方法会返回一个字符串,作为跳转的逻辑视图名,再次查找struts.xml配置文件,根据逻辑视图名匹配<result>标签的name属性(默认值是success),进而找到要跳转的物理视图名,并根据<result>标签的type属性(默认值是dispatcher)进行请求转发或重定向,最终将响应(response)发送给客户端;

    相关文章

      网友评论

        本文标题:Java面试题集锦10—SSH框架知识

        本文链接:https://www.haomeiwen.com/subject/obtnyttx.html