五道关于SSH框架的面试题


  1、写出你熟悉的开源框架以及各自的作用(项目中为什么使用SSH)

   SSH面试题


  答:框架:hibernate,spring,struts1/struts2.


  Hibernate主要用于数据持久化;封装了JDBC操作;还提供了一个易用的、高效率的对象关系映射框架;


  Spring的控制反转能起到解耦合的作用;


  Struts主要用于请求处理的流程控制;struts是基于MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。


  Struts(表示层)+Spring(业务层)+Hibernate(持久层)


  2、简述STRUTS架构(说下Struts的工作流程、struts的工作原理)


  简述:


  Struts是采用JavaServlet/JavaServerPages技术,开发Web应用程序的开放源码的framework。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。Struts有如下的主要功能:一.包含一个controllerservlet,能将用户的请求发送到相应的Action对象。二.JSP自由tag库,并且在controllerservlet中提供关联支持,帮助开发员创建交互式表单应用。三.提供了一系列实用对象:XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息。


  流程:


  在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象当ActionServlet接收到一个客户请求时,将执行如下流程.


  (1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;


  (2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;


  (3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;


  (4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象,就表示表单验证成功;


  (5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;


  (6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;


  (7)ActionForward对象指向JSP组件生成动态网页,返回给客户;


  3、缓存:


  session缓存:被称为Hibernate的第一级缓存.它存放被单前工作单元加载的对象.


  sessionFactory缓存:


  被称为Hibernate的第二级缓存.一个实例对应一个数据存储源.它是线程安全的,是重量级的.


  它需要一个很大的缓存,用来存放预定义的SQL语句以及映射元数据等.


  4、对象的3个状态


  瞬时:一个实体通过new操作符创建后,没有和Hibernate的Session建立关系,


  也没有手动赋值过该实体的持久化标识(持久化标识可以认为映射表的主键)。


  此时该实体中的任何属性的更新都不会反映到数据库表中。


  持久化:当一个实体和Hibernate的Session创建了关系,


  并获取了持久化标识,而且在Hibernate的Session生命周期内存在。


  此时针对该实体任何属性的更改都会直接影响到数据库表中一条记录对应字段的更新,


  也即与对应数据库表保持同步。


  脱管:当一个实体和Hibernate的Session创建了关系,并获取了持久化标识,


  而此时Hibernate的Session的生命周期结束,实体的持久化标识没有被改动过。


  针对该实体的任何属性的修改都不会及时反映到数据库表中。


  5、Spring里面applicationContext.xml文件能不能改成其他文件名?


  ContextLoaderListener是一个ServletContextListener,它在你的web应用启动的时候初始化。缺省情况下,它会在WEB-INF/applicationContext.xml文件找Spring的配置。你可以通过定义一个元素名字为”contextConfigLocation”来改变Spring配置文件的位置。示例如下:


  org.springframework.web.context.ContextLoaderListenercontextConfigLocation/WEB-INF/xyz.xml


  


上一篇:动力节点老师最低年薪30万?
下一篇:Java大神只需满足八个条件

开班信息