谈谈你对Struts的理解?
1)struts是一个按MVC模式设计的Web层框架,其实它是一个大大的servlet,这个Aervlet名为ActionServlert,或是ActionServlet的子类
2)ActionServlet把请求交给action去处理之前,会将请求参数封装成一个formbean对像
3)ActionServlet把formbean对象传递给action的execute方法之前,可能会调用formbean的validate方法进行验证,只有通过校验通过后才将这个formbean对象传递给action的execute方法,否则,它将返回一个错误页面
4)action执行完后要返回显示的结果视图,这个结果视图是用一个ActionForward对象来表示的,actionForward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现action程序代码与返回的jso页面名称的解耦
Hibernate与MyBatis的比较
1)hibernate是全自动的,而mybatis是半自动
2)hibernate数据库移植性远大于mybatis
3)hibernate拥有完整的日志系统,mybatis功能欠缺,薄弱
4)sql优化上,mybatis要比hibernate方便很多
ps:
mybatis:小巧,方便,高效,简单,直接,半自动
hibernate:强大,方便,高效,复杂,绕弯子,全自动
mybatis中#{}和${}的区别?
${}是文件的变量占位符用于标签属性值和sql内部,属于静态文件替换;#{}是sql的参数占位符,预编译
讲讲Spring的理解?什么是Spring?
Spring是一个开源的轻量级Java EE开发应用,其目的是用于简化企业级应用程序开发;Spring实现了工厂模式的工厂类,即BeanFactory;提供了对IOC良好支持,实现依赖注入;提供了对AOP技术的良好封装,AOP称为面向切面编程,就是系统中很多跟不相干的类的方法,如日志,权限判断,异常处理等,AOP采用的是代理技术
谈谈Struts中的ActionServlet?
ActionServlet类是struts框架的内置核心控制组件,它继承了java.servlet.http.HttpServlet类;Servlet的启动通常从加载ActionServlet开始;Struts框架只允许应用程序中存在一个ActionServlet类,其作用为1)读取配置文件Struts-Config.xml文件2)截取客户端http请求,分发到相应的Action 3)从请求中获取数据填充FormBean
Struts优缺点?
优点:1)实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现
2)有丰富的tag可以用,Struts的标记库
3)页面导航
4)提供Exception处理机制
5)数据库连接池管理
缺点:1)转到展示层时,需要配置forward,如果有10个展示层的jsp,需要配置十次struts,而且还不包括有时候目录,文件变更,需要重新forward
2)测试不方便
3)对Servlet的依赖过强,无法摆脱Servlet容器
4)对事件的支持不够,在struts中,实际是一个表单form对应一个Action类,一个表单只能对应一个事件
说话struts1和struts2的区别?
1)都是MVC的WEB框架
2)struts1是老版本,较为成熟,稳定;struts2相对不成熟,成本较高
3)struts2比struts1解决了一起其原有的缺陷问题
4)struts1的前端控制器是Servlet,名称为ActionServlet,struts2的前端控制器是一个filter
5)在struts1中使用formbean封装请求参数,在struts2中直接使用action的属性来封装请求参数
6)struts1中的多个业务放在一个Action中,要么多校验,要么都不校验;struts2,可以指定对某个方法进行校验,对每一次请求都会创建一个Action,是线程安全的
什么是spring的 IOC AOP?
IOC:控制反转,也叫依赖注入,dao接口的实现不再是业务逻辑层调用工厂类获取,而是通过容器来自动的为我们的业务层设置dao的实现类;
AOP:面向切面编程,将程序中的交叉业务逻辑,封装成一个切面,然后注入到目标逻辑中;
Spring中有哪三种注入方式?
属性注入即set方法注入;构造方法注入;根据注解进行注入
Spring框架的优点?
Spring的AOP和IOC都是为了解决系统代码耦合度过高的问题,使代码重用度高,易于维护
解释核心容器(应用上下文)模块?
这是Spring的基本模块,它提供了spring框架的基本功能,BeanFactory是所有Spring应用的核心,Spring框架是建立在这个模块之上的,着也使得Spring成为一个容器
IOC有什么优点?
IOC或依赖注入减少了应用程序的代码量,它使得应用程序的测试很简单,因为在单元测试中不再需要单例或JNDI查找机制,实现松耦合
J2ee常用的设计模式?
共23种,分三大类:创建型,结构型,行为型;
创建型:工厂,工厂方法,抽象工厂,单例
结构型:包装,适配器,组合,代理
行为型:观察者模式,策略模式