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

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匹配标签的name属性,进而找到class属性(默认值是com.opensymphony.xwork2.ActionSupport类);
  3. ActionProxy根据标签的class属性,每遇到一次请求,就利用反射创建一个新的Action对象实例;
  4. ActionProxy创建ActionInvocation对象,该对象调用该Action中配置的一系列的拦截器,并最终调用Action对象的执行方法(默认方法名为execute)
  5. 执行方法会返回一个字符串,作为跳转的逻辑视图名,再次查找struts.xml配置文件,根据逻辑视图名匹配标签的name属性(默认值是success),进而找到要跳转的物理视图名,并根据标签的type属性(默认值是dispatcher)进行请求转发或重定向,最终将响应(response)发送给客户端;

你可能感兴趣的:(Java面试题集锦10—SSH框架知识)