struts@Java面试之项目面试问题——不看面试会后悔的( 二 )
4.如果找到需要调用的Action , 过滤器会把请求的处理交给ActionProxy 。 ActionProxy为Action的代理对象 。 ActionProxy通过ConfigurationManager询问框架的配置文件 , 找到需要调用的Action类 。
5.ActionProxy创建一个ActionInvocation的实例 。 ActionInvocation在ActionProxy层之下 , 它表示了Action的执行状态 , 或者说它控制的action的执行步骤 。 它持有Action实例和所有的Interceptor 。
6.ActionInvocation实例使用命名模式来调用 , 1.ActionInvocation初始化时 , 根据配置 , 加载Action相关的所有Interceptor.2.通过ActionInvocation.invoke方法调用Action实现时 , 执行Interceptor 。 在调用action的过程前后 , 涉及到相关拦截器(Interceptor)的调用 。
7.一旦Action执行完毕 , ActionInvocation负责根据struts.xml中的配置找到对应的返回结果 。
————–通俗的说————
发送http请求
web服务器(tomcat、weblogic)
执行struts核心过滤器StrutsprepareAndExecuteFilter
加载struts配置文件中配置信息 , 找到对应的Action类并实例化
执行各类拦截器和action中对应方法
配置文件中找到返回结果
转发到具体页面或其他操作
6.struts有什么优缺点————–优点————
1.实现MVC模式 , 结构清晰;
2.丰富的struts的标记库 , 利用好能大大提高开发效率
3.全局结果与声明式异常;
4.可使用OGNL进行参数传递
5.各类方便使用的拦截器
————–缺点————-
1.转到表现层时 , 需要配置结果页面;页面多了比较繁杂;
2.对Servlet的依赖性过强
3.struts标签稍微比el表达式繁重
7.为何使用springspring是一个轻量级的控制反转(ioc)、面向切面(AOp)、面向接口、事务管理、包容促进其他框架;使系统中用到的其他框架的耦合程度大大降低 , 扩展性强、简单易用好管理 。
8.spring在项目中如何充当粘合剂1.在项目中利用spring的ioc(控制反转或依赖注入) , 明确的定义组件接口(如UserDao) , 开发者可以独立开发各个组件 , 然后根据组件间的依赖关系组装(UserAction依赖于UserService , UserService依赖于Userdao)运行 , 很好的把struts(Action)和hibernate(dao的实现)结合起来;
2.spring的事务管理把hibernate对数据库的操作进行了事务配置
9.描述在系统中如何使用了spring的事务控制spring事务包括编程事务和声明式事务 。 在系统中使用了声明式的事务管理是用spring的AOP来实现的;配置了只读事务和回滚事务(传播行为为REQUIRED)当出现错误后进行事务回滚操作 。 在项目中通过aop切入事务到service层 , 这样做能使一次业务逻辑操作如果包括几个数据库操作都控制在一个事务中 。
10.Hibernate工作原理以及为什么要用?原理:
1.读取并解析配置文件
2.读取并解析映射信息 , 创建SessionFactory
3.打开Session
4.创建事务Transaction
5.持久化操作
6.提交事务
7.关闭Session
8关闭SessionFactory
为什么要用:
1.对Jdbc访问数据库代码做了封装 , 大大简化了数据访问层繁琐的重复性代码 。
2.Hibernate是一个基于JDBC的主流持久化框架 , 是一个优秀的ORM实现 。 他很大程度上简化DAO层的编码工作 。 3.Hibernate使用Java反射机制 , 而不是字节码增强程序来实现透明性 。
4.Hibernate的性能非常好 , 因为他是一个轻量级框架 。 映射的灵活性很出色 。 他支持各种关系数据库 , 从一对一到多对对的各种复杂关系 。
11.Hibernate在系统中使用的优化策略Hibernate对数据的缓存包括两个级:一级缓存 , 在Session的级别上进行 , 主要是对象缓存 , 以其id为键保存对象 , 在Session的生命期间存在;二级缓存 , 在SessionFactory的级别上进行 , 有对象缓存和查询缓存 , 查询缓存以查询条件为键保存查询结果 , 在SessionFactory的生命期间存在 , 默认地 , Hibernate只启用一级缓存
- 南方PLUS计划投资50亿元!塘厦有项目增补为市重大项目
- 「创业」普通人创业无门?这4个项目或许能帮助到你,早知道早赚钱
- 新投资者网 募投项目面临超大企业“挤压”,合纵医药业务难“出川”拟冲IPO
- 支付宝▲支付宝发“年终奖”了!史上首次发给了已“下线”的项目
- 盐南市场监管 按下招商“加速键”,全力以赴抓项目
- 新华网客户端1800亿元投资发力数字新基建,广州市首批73个数字新基建重大项目签约
- 互联网圈里人Network –项目更新 第11期,Matic
- 乐居网玉林正式迈入智能电网时代,首个智能配电网项目投运
- 南方Plus客户端广州给大湾区带来什么新气象?,南方观察|1800亿新基建项目
- 「互联网创业」在家兼职就能赚美金,拒绝割韭菜的互联网创业项目分享