java基础知识(16)---面试宝典

67、什么是MVC模式?MVC三层架构的含义和作用?常用的MVC框架有哪些?
MVC是一种框架型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使应用的模型和视图相分离,从而得到更好的开发和维护效率。
在MVC模式中,应用程序被划分成模式、视图和控制器三个部分。其中模型部分又包含了业务处理层和数据持久层(数据业务)。视图部分负责数据的输出形式,这也就是我们所谓的页面部分。而控制层部分负责协调模型和视图,根据用户请求的来选择调用哪个模型来处理业务,以及最终由哪个视图为用户做出响应。

MVC模式的这三个部分的职责非常明确,而且相互分离,因此每个部分都可以独立地改变而不影响其他部分,从而大大提高应用的灵活性和重用性。
模型、视图、控制器各个部分的作用:
模型(Model): 负责封装并实现应用的具体功能。通常又分为业务逻辑层(用来为视图层和数据持久层准备数据和并处理从视图层和数据持久层接收到的数据)。
视图(View): 用来将模型的内容展现给用户。用户可以通过视图来请求模型进行更新。视图从模型获得要展示的数据,然后用自己的方式展示给用户,相当于提供页面来与用户进行人机交互。例如,用户在页面上操作或者填写完成后,会单击提交按钮或是以其他触发事件的方式,来向控制器发出请求。
控制器(Controller): 用来控制应用程序的流程和处理视图所发出的请求。当控制器接收到用户的请求后,会将用户的数据和模型相映射,也就是调用模型来实现用户请求的功能。然后控制器会选择用于响应的视图,把模型更新后的数据展示给用户。(这就是所谓的接、调、存、转)

典型的MVC组合: JSP+Servlet+JavaBean
1、M:Model 模型层 主要用来处理业务逻辑,承载数据;(service层,Dao层)
2、V:View 视图层 主要用来做页面显示的 (jsp)
3、C:Control 控制层 主要用来进行业务流程控制 (servlet);

常用的MVC框架包括:Struts1.X、Struts2.X、SpringMVC;

68、谈谈Struts2和SpringMVC的区别
1、Struts2和SpringMVC都是web的MVC框架二者的区别如下:
2、Struts2以一个过滤器作为控制器,SpringMVC以一个Servlet作为控制器
3、Struts2以属性接收请求中的数据,SpringMVC以方法参数的形式接收请求中的信息
4、Struts2中的Action是非单例的,SpringMVC中的Controller是否为单例可以通过scope配置
5、SpringMVC由于是Spring的产品所以与Spring整合更加方便。

69、谈谈Struts2和Servlet的对比
Struts2和Servlet都是web层技术。都可以对网页上的请求进行处理(接,调,存,转)
Struts2是Servlet的后续框架,对Servlet进行封装
Struts2与Servlet对比优点如下:
1、 Struts2的处理类(Action)与ServletAPI分离
2、 Struts2可以在Action写多个处理方法,即一个Action可以处理多个该模块的操作。可以根据请求调用不同的方法
3、 Struts2在较大项目中可以减少web.xml中配置信息。可以方便分组开发。
4、 Struts2提供了Struts2标签,可以方便信息在页面上的处理。
5、 Struts2是响应页面和Java代码分离(配置在标签内)。
6、 Struts2提供了通过属性传接值的方式,方便开发。

70、什么是Hibernate,好处是什么?
1、Hibernate是一个操作数据库的框架,实现了对JDBC的封装;
2、Hibernate是一个ORM框架,我们在写程序的时候,用的是面向对象的方法,但是在关系型数据库里,存的是一条条的记录;为了用纯面向对象的思想解决问题,所以需要将程序中的对象和数据库中的记录建立起映射关系,ORM就是将对象和数据库中的记录建立起映射的技术,而Hibernate就是这样一个ORM框架而且Hibernate是一个全自动ORM框架;(Hibernate以操作对象的方式操作数据库 )
3、Hibernate简化了代码编写,原来JDBC需要写一堆代码完成的功能,Hibernate需要少量的代码即可以实现;
4、Hibernate屏蔽了数据库的差异,增加了对不同数据库的可移植性(通过方言);

5、使用Hibernate的基本流程是:配置Configuration对象、产生SessionFactory、创建session对象,启动事务,完成CRUD操作,提交事务,关闭session;

6、使用Hibernate时,先要配置hibernate.cfg.xml文件,其中配置数据库连接信息和方言等,还要为每个实体配置相应的hbm.xml文件(Hibernate的映射文件),hibernate.cfg.xml文件中需要登记每个hbm.xml文件。

71、hibernate中的update()和saveOrUpdate()的区别
1、update针对的是已存在的实体对象,数据库中如果没有实体所对应的数据记录,则不进行修改。
2、saveOrUpdate()对象存在与否都不会有任何影响,有则更新,没则插入。执行时先根据对象的主键查询该对象是否存在。如果存在则发出update语句,如果不存在则发出insert
3、对于没有主键的对象,update方法则会报错。saveOrUpdate方法则直接发出insert

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值