JAVAEE考试简答题整理

J2EE考试简答题

1. 简述Servlet生命周期

Servlet生命周期(图解) (biancheng.net)

1) 初始化阶段

当用户第一次向 Servlet 容器发出 HTTP 请求要求访问某个 Servlet 时,Servlet 容器会在整个容器中搜索该 Servlet 对象,发现这个 Servlet 对象没有被实例化,于是创建这个 Servlet 对象,然后调用该对象的 init() 方法完成初始化。

当用户第二次访问这个 Servlet 时,Servlet 容器仍然在容器中搜索该 Servlet 对象,结果找到了该对象的实例,则不去创建而直接使用该对象。

找到了对应的 Servlet 对象,随后 Servlet 进入到运行阶段。

需要注意的是,在 Servlet 的整个生命周期内,它的 init() 方法只被调用一次。

2) 运行阶段

这是 Servlet 生命周期中最核心的阶段。在该阶段中,Servlet 容器会为当前的请求创建一个 ServletRequest 对象和一个 ServletResponse 对象(它们分别代表 HTTP 请求和 HTTP 响应),并将这两个对象作为参数传递给 Servlet 的 service() 方法。

service() 方法从 ServletRequest 对象中获得用户的详细请求信息并处理该请求,通过 ServletResponse 对象生成响应结果。

需要强调的是,在 Servlet 的整个生命周期内,用户每次请求访问 Servlet 时,Servlet 容器都会调用一次 Servlet 的 service() 方法,并且创建新的 ServletRequest 和 ServletResponse 对象。

3) 销毁阶段

当服务器停止时,Servlet 容器需要回收 Servlet 对象所占用的内存,在回收之前,会自动调用该对象的 destroy() 方法做好回收内存前的准备,辟如关闭后台线程。

和 init() 方法类似,destroy() 方法也只会被调用一次。

注意:Servlet 对象一旦创建就会驻留在内存中一直等待客户端的访问,直到服务器关闭或项目被移除出容器时,Servlet 对象才会被销毁。

2. 简述MVC框架

MVC 的全称为model-view-controller(模型-视图-控制器)。MVC 是一种开发应用程序 的模式,这个模式已经具有了很好的框架架构,并且十分容易维护。使用MVC 开发出来的应用程序一般包括以下几块内容:

(1) 控制器(Controller):控制器类处理客户端向Web 应用程序发出的请求,获取数据, 并指定返回给客户端,用来显示处理结果的视图。

(2)模型(Model):模型类代表了应用程序的数据,这些数据通常具有一个数据验证逻 辑,用来使得这些数据必须符合业务逻辑。

(3)视图(View):视图类是Web 应用程序中用来生成并显示HTML 格式的服务器端对客户端请求的响应结果的模板文件。

3. Hibernate体系结构

Hibernate 架构_w3cschool

image

  • Configuration接口:配置Hibernate,根据其启动Hibernate,创建SessionFactory对象
  • SessionFactory接口:初始化Hibernate,充当数据存储源的代理,创建Session对象,SessionFactory是线程安全的,意味着它的同一实例可以被应用的多个线程共享,是重量级、二级缓存。
  • Session接口:负责保存、更新删除、加载和查询对象,是线程不安全的,避免多个线程共享session,是轻量级、一级缓存。
  • Transaction接口:管理事务。
  • Query和Critical接口:执行数据库的查询。

4. Spring AOP

  • AOP意为面向切面编程,也叫做面向方法编程,是通过预编译方式和运行期动态代理的方式实现不修改源代码的情况下给程序动态统一添加功能的技术。AOP技术利用一种称为“横切”的技术,剖解开封装对象的内部,将影响多个类的公共行为封装到一个可重用的模块中,并将其命名为Aspect切面。所谓的切面,简单来说就是与业务无关,却为业务模块所共同调用的逻辑,将其封装起来便于减少系统的重复代码,降低模块的耦合度,有利用未来的可操作性和可维护性。
  • AOP意思是面向切面(方面)编程。AOP是在实现业务处理阶段,降低代码(或模块)之间的耦合度。AOP技术是通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态添加辅助功能的技术。它一般只适用于具有横切业务逻辑的应用场合,比如事务管理、日志管理、访问权限管理和性能监测管理等。

1)Aspect切面,是对交叉业务逻辑的统称。

2)Joinpoint连接点,指切面可以织入到目标对象的位置(方法,属性等)。

3)Advice通知,指切面的具体实现。

4)Pointcut 切入点,指通知应用到哪些类的哪些方法或属性之上的规则。

5)Introduction引入,指动态地给一个对象增加方法或属性的一种特殊的通知。

6)Weaving 织入,指将通知插入到目标对象。

7)Target 目标对象,指需要织入切面的对象。

8)Proxy 代理对象,指切面织入目标对象之后形成的对象。

5. 依赖注入

依赖注入DI是一个程序设计模式和架构模型, 一些时候也称作控制反转,尽管在技术上来讲,依赖注入是一个IOC的特殊实现,依赖注入是指一个对象应用另外一个对象来提供一个特殊的能力,例如:把一个数据库连接已参数的形式传到一个对象的结构方法里面而不是在那个对象内部自行创建一个连接。控制反转和依赖注入的基本思想就是把类的依赖从类内部转化到外部以减少依赖

应用控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用,传递给它。也可以说,依赖被注入到对象中。所以,控制反转是,关于一个对象如何获取他所依赖的对象的引用,这个责任的反转。

IOC全称Inversion of Control,也称为“依赖注入”或着是“控制反转”。IOC容器就是用于管理Bean,创建Bean的一个内存区,在这个内存区中可以将操作Bean的代码以面向接口的方式进行开发,从编程技术上来说,IOC就是将接口和实现相分离。

6. struts2工作流程

Struts 2的架构

  • 用户发送一个资源需求的请求到服务器(例如:页面)。
  • 核心控制器查看请求后确定适当的动作。
  • 使用验证、文件上传等配置拦截器功能。
  • 执行选择的动作来完成请求的操作。
  • 另外,如果需要的话,配置的拦截器可做任何后期处理。
  • 最后,由视图显示结果并返回给用户。
  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rglkt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值