面试题:面试问题 !=!=未看

1.请描述下你做的项目:

XXX系统是什么什么,主要目的是XXX,整个系统包含了哪些功能模块,然后说包含了哪些模块,自己做了哪些模块。

2.结合项目谈谈你对MVC的理解

MVC是model-view-controler的简称。也就是模型-视图-控制器。mvc是一种设计模式,他强制性的把应用程序的输入、处理和输出分开。mvc中的模型、视图、控制器分别担任着不同的任务。 
视图:视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。 
模型:模型表示业务数据和业务处理。相当于javaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性。 
控制器:当用户单击web页面中的提交按钮时,控制器接收请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结构。 
MVC的处理过程:首先控制器接收用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结构。并通过视图呈现给用户。如在项目中要对应MVC的话;View对应项目中的jsp,controler对应action,model对应service+dao层的业务逻辑和持久层的操作。

3.项目中为什么要使用ssh(三大框架的优点)

1.使用struts是因为struts是基于mvc模式的,很好的将应用程序进行了分层,使开发者更关注业务逻辑的实现;struts有着丰富的标签库,能大大的提高开发效率。 
2.使用Hibernate;是因为Hibernate为java应用提供了一个易用的、搞效率的对象关系映射框架。hibernate是个轻量级的持久层框架,功能丰富。 
3.使用spring;是因为spring基于ioc(控制反转)和aop框架多层j2ee系统的框架

4.挑选一个你做的功能说明ssh框架的应用原理

1.在表示层中,首先通过jsp页面实现交互界面,负责传送请求(request)和接收响应(response),然后struts根据配置文件(struts。xml)将actionServlet接收到的request委派给响应的action处理。 
2.在业务层中,管理服务组件的spring ioc容器负责向action提供业务模型(model)组件和组件的协作对象数据处理(dao)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。 
3.在持久层中,则依赖于hibernate的对象化映射和数据库交互,处理dao组件请求的数据,并返回处理结果。

综合上面的概述;然后可以把我们做的信息发布管理模块用上述的方式实例化描述一遍。

5.struts工作原理

——-按照struts工作原理图说 
1.客户端发出一个指向servlet容器的请求; 
2.请求会经过strutsPrepareAndExecuteFilter过滤器; 
3.过滤器和请求将访问strut2的底层框架结构。在web容器启动时,struts2框架会自动加载配置文件里相关参数,并转换成相应的类。 
如:ConfigurationManager、ActionMapper和Objectfactory.ConfigurationManager存有配置文件的一些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,results,Interceptors,等)都是通过Objectfactory来创建的。过滤器会通过询问ActionMapper类来查找请求中需要用到的Action。 
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.为何使用spring

spring是一个轻量级的控制反转(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只启用一级缓存

12.列举你在开发中常用的struts标签

property、iterator、if、date、form、a、url、textfiled、textarea、select、radio、checkboxlist、 
hidden、param

13.Jquery异步获取数据的方式有几种?有何区别?

1.load载入远程Html文件代码并插入至Dom中 
2.get 
3.post 
4.ajax 
5.getJSON 
6.getScript通过get方式请求载入并执行一个JavaScript脚本。

14,简述UML并书名你是用Rose常用于什么情况,画什么图?

UML是统一建模语言;用于在软件开发各个阶段中用图形的方式描述流程和功能需求;IBM 
Rational Rose是uml建模工具之一比较多的在需求阶段,常用于画例图,类图,时序图。

15.请简述导入导出的工具类;并说明你导出过的最大数据量

POI(合并单元格对象和背景色的应用)

最后这里还找到了百度文库当中的一些面试题:内容很多,就不一一列举出来了。 
传送门:最全的ssh框架面试题

原文地址:https://www.cnblogs.com/shan1393/p/9017496.html

时间: 2024-11-05 23:29:29

面试题:面试问题 !=!=未看的相关文章

面试题: mysql数据库 未看7

mysql数据库面试总结 2017年09月04日 00:11:40 阅读数:151 结合网上大神还有自己面试经历,收集的总结Mysql面试题,方便自己准备面试: mysql一个永远都复习不完,尽量总结,差不多就可以去面试(个人观点) 1.数据库事务的四个特性及含义 数据库事务transanction正确执行的四个基本要素.ACID,原子性(Atomicity).一致性(Correspondence).隔离性(Isolation).持久性(Durability). 原子性:整个事务中的所有操作,要

面试题:项目经验 !=!=未看

项目经验 面试官在一开始会让你进行自我介绍,主要是想让你介绍一下自己做过的一些项目,看看你对这些项目的了解程度,因为很多人简历上写的项目并非都是从头到尾都参与的,有些只是参与并实现了其中的一些模块而已,或是接手维护别人的项目,所以在你简历上所写的和面试过程中所说的项目经验,你自己必须能够了解来龙去脉,因为面试官肯定会根据你的项目描述,对项目中的实现原理,或为什么要这样实现进行提问,这时不至于木讷住而不知如何作答,如此局面只会大大降低面试分. 场景对话: 面试官:(拿着简历)讲讲你最近做的这个项目

面试题: java多线程 !=!=未看

如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个话其实只有一半对,因为反应"多角色"的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的"生产者,消费者模型". 很多人都对其中的一些概念不够明确,如同步.并发等等,让我们先建立一个数据字典,以免产生误会. 多线程

面试题: mysql数据库未看10

数据库总结--MySQL常见面试题 2015年03月24日 17:56:06 阅读数:7787 1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee order by dept_id desc,salary 2.union和union all的区别用union连接表后,重复的记录会被删除掉用union all连接表后,记录会被完整保留 3.分页语句(用sql语句直接分页,效率高)    pageSize = 20;    pageNo = 5; sel

js未看的文章

Web前端研发工程师编程能力飞升之路 在浏览器的背后(一) -- HTML语言的词法解析 组件化的前端开发流程 用js书写UI组件之js基础知识 GC与JS内存泄漏 蓝色理想之前端开发 w3c JavaScript Puzzlers react AngularJS入门教程 jQuery源码分析-如何做jQuery源码分析 http://jsfiddle.net/ http://fex.baidu.com/ idea独创意 js未看的文章,布布扣,bubuko.com

面试前必看:Redis 和?Memcached 的区别

面试前必看:Redis 和 Memcached 的区别 2016-07-07 程序员的那些事 (点击上方公众号,可快速关注) 来源:标点符 链接:http://www.biaodianfu.com/redis-vs-memcached.html 主页君注:这篇文章前几天在「数据库开发」推荐后,有位童鞋评价非常高:「写的很不错,面试前必看」. Redis 的作者 Salvatore Sanfilippo 曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相

面试题:java面试基本方向 !=!=未看

一.Java基础 1. 集合框架A)集合中泛型优点? 1)HashMap---允许一个键为null,允许多个值为null,默认容量是16,加载因子是0.75f,每次扩容一倍,是一种异步式线程不安全的映射.2)Hashtable---不允许键值为null,默认初始容量是11,加载因子是0.75f,是一种同步式线程安全的映射(一个Hashtable在同一时间只能被一个线程访问).3)ConcurrentHashMap---异步式线程安全的映射(一个线程在同一时间只能访问该Map中的一个键值对,不同线

iOS超全面试题,面试前看一看,不错

之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系

(转)史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!

背景:因为自己的简历写了dubbo,面试时候经常被问到.实际自己对dubbo的认识只停留在使用阶段,所以有必要好好补充下基础的理论知识. https://zhuanlan.zhihu.com/p/45846108 想往高处走,怎么能不懂 Dubbo? Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一.Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉. 下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过