SSH 面试题9道,求解答,主要问的是开发经验

热带鱼2020 2011-01-05 01:21:55
1 struts1 strut2 各自的处理流程 它们的区别
2 spring 在项目中主要用作什么?
3 aop 在项目中会用到哪些方面?
4 介绍ssh 框架的各个层次
5 介绍ajax 的处理流程 可举例说说明 extjs jquery prototype 等框架
6 如果参与大型项目的开发,整体框架的搭建,权限的控制如何考虑。
7 项目的控制和测试工作如何开展
8 UML的使用,介绍一下用例图,类图,时序图
9 如果项目中不使用hibernate,项目自己开发dao,数据库的操作怎么考虑,如事务、性能等
...全文
292 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
stoneallen 2011-01-06
  • 打赏
  • 举报
回复
进来学习下
caofaping 2011-01-05
  • 打赏
  • 举报
回复
想跳槽ssh这些题目真要相当熟练啊。
热带鱼2020 2011-01-05
  • 打赏
  • 举报
回复
Spring容器控制所有Action对象和业务逻辑类的生命周期,由与上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高。可维护性更好。

(AOP应用):
事务的处理:
在以往的JDBCTemplate中事务提交成功,异常处理都是通过Try/Catch 来完成,而在Spring中。Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对SessionaFactory进行设定。u这样的话就可以很好的利用Sping对事务管理强大功能。避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。

spring 一来包装hibernate,提供更简便的服务接口及更易于管理的事务服务,二来代理了我们的服务层和dao层,使得这两层与实际的控制单元的关系变成ioc框架来管理,任何一方的修改都不会牵扯到双方都要修改的问题

Jlins 2011-01-05
  • 打赏
  • 举报
回复
8,9 我不想说了,没什么可说的 具体项目具体分析吧
Jlins 2011-01-05
  • 打赏
  • 举报
回复
1、上面的解答了 2着最主要的区别是去掉了 actionFrom 这个不伦不类的东西,struts2更简单的配置,更方便的拦截器
2、依赖注入(ioc 把类注入到另外一个类) 面向切面编程(aop事务控制,日志)
3、2已经回答了
4、strust 显示 hibernate 数据 spring控制
5、XMLHttpRequet发送请求,同时设置监听函数,后台处理后输出,监听函数得到结果,然后前台显示
6、s2si(ibatis) 鉴权系统 尽量把用户和权限分离
7、不好说 看项目进度和人力吧
amos1989 2011-01-05
  • 打赏
  • 举报
回复
8.UML的基础知识

9。这块虽然自己也写过,不过没有考虑到性能,事务。这块比较欠缺。。。
amos1989 2011-01-05
  • 打赏
  • 举报
回复
2。
spring他是一个应用框架,他不同于其它他单层框架,他能整合好其它框架,配合工作。更进一步的低耦合

3。日志组件,权限,spring事务管理

4。不想解释,这种问题

5。重点讲清xmlHttpRequest。。。

6。参见RBAC的权限设计思想
amos1989 2011-01-05
  • 打赏
  • 举报
回复
第一题:
struts1的处理流程:
1、根据浏览器是post还是get请求调用doPost()、doGet()方法,在其中调用ActionServlet的process()方法。

2、Process()获取RequestProcessor对象,调用RequestProcessor对象的process()方法

3、 Process()读取struts-config.xml,在其中查找<action>子元素,查找的条件是:用户请求的URI与 action元素的path属性值一样,找到后确定name属性,根据name找到<form-bean>元素,再根据action元素的 name匹配值找到相应的ActionForm bean。

4、 调用ActionForm bean的setter方法填充FormBean的属性,然后调用FormBean的validate()方法,对表单数据的有效性进行验证。

5、 RequestProcessor的process()方法根据3中找到的<action>中的type属性寻找Action bean对象(有则使用,无则创建),然后将FormBean对象,封装的请求对象等信息发给找到的Action对象,Action bean调用自己的execute()方法处理。

6、Action bean的execute()方法执行完璧后,返回一个ActionForward对象,又回到RequestProcessor对象的process()方法,process方法将根据ActionForward请求重新定向到指定的页面。

struts2处理流程:
他的中央控制器是FilterDispatcher。。。具体处理流程的原码没看过。。。我要大致和strust1类似

热带鱼2020 2011-01-05
  • 打赏
  • 举报
回复
一个请求在Struts 2框架中的处理大概分为以下几个步骤。

客户端提交一个(HttpServletRequest)请求。
请求被提交到一系列(主要是3层)的过滤器(Filter),如(ActionContextCleanUp、其他过滤器(SiteMesh等)、 FilterDispatcher)。

FilterDispatcher是控制器的核心,就是MVC的Struts 2实现中控制层(Controller)的核心。

FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。

ActionProxy通过Configuration Manager询问框架的配置文件struts.xml,找到需要调用的Action类。

ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。

一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
热带鱼2020 2011-01-05
  • 打赏
  • 举报
回复
aop 是面向切面(方面)编程。   
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。   
主要的意图是:将通用业务的代码从业务逻辑代码中划分出来,通过对这些行为的分离,可以将它们独立到非业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

23,402

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧