admin 管理员组

文章数量: 887031


2023年12月23日发(作者:js和python速度)

Web框架技术期末复习提纲

简答题。

1. 简述什么是MVC设计模式。

MVC设计模式是一个存在于服务器表达层的模型,它将应用分开,改变应用之间的高度耦合,其中MVC是Model-View-Control的简称,即模型-视图-控制器。

2. 简述Struts2的工作原理。

1、 客户端发送请求 (客户端初始化一个指向Servlet容器(如Tomcat)的请求)

2、请求经过一系列过滤器(如ActionContextCleanUp、SiteMesh等),ActionContextCleanUp-->FilterDispatcher

3、FilterDispatcher通过ActionMapper来决定这个Request需要调用哪个Action

4、如果ActionMapper决定调用某个Action,FilterDispatcher把请求的处理交给ActionProxy,

5、ActionProxy通过ConfigurationManager询问Struts配置文件(),找到需要调用的Action类。

6、ActionProxy创建一个ActionInvocation的实例

7、ActionInvocation调用真正的Action,当然这涉及到相关拦截器的调用(interceptor)

8、Action执行完毕,ActionInvocation创建Result并返回,返回结果前要做些动作也是可以的。

3.简述配置文件的作用。

1) 为Struts 2的核心配置文件。文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。

2)中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。还包括各种拦截器的配置等。

4.简述Struts2核心控制器FilterDispatcher的作用。

(1)读取静态数据信息

(2)决定需要转发或者导航的Action配置

(3)创建Action的Context

(4)创建Action代理

(5)内存清理和性能优化

5.简述Struts2业务控制器Action的作用。

用来调用某个java类的某个方法进行数据预处理和一些相关的业务逻辑处理,然后把最终处理结果和要返回的对象放在request或者session里面,最后更具结果确定返回那个result,这个可以是一个页面,也可带或者不带参数访问别的服务或者链接.或者什么都不做.

0

6.什么是国际化,为什么使用国际化?

国际化是指一个应用程序在运行时能够根据客户端请求所有来自国家或地区语言的不同而显示不同的用户界面。

目的在于提供自适应的、更友好的用户界面,而不必改变程序的其他功能或业务逻辑。

7.简述Struts2中实现国际化的过程。

(1)不同地区使用的操作系统环境不同,如中文操作系统、英文操作系统等。获得客户端地区的语言环境后,在文件中会找到相应的国际化资源文件,如果操作系统环境是中文语言环境,就加载中文国际化资源文件。所以国际化需要编写支持多个语言的国际化资源文件,并且在文件中配置。

(2)根据选择的语言加载相应的国际化资源文件,视图通过Struts2标签读取国际化资源文件并把数据输出到页面上,完成页面显示。

8.什么是拦截器,拦截器的作用是什么?

(1)拦截器是动态拦截Action调用的对象。它提供了一种机制,使开发者可以定义一段代码,在Action执行之前或之后被调用执行,也可以在一个Action执行前阻止其执行,同时也可以提取Action中可重用部分的方式。通俗一点说,拦截器是一个实现了一定功能的类,它以一种可插拔的方式被定义在某个Action执行的之前或之后,用来完成特定的功能。

(2)拦截器实现了面向切面编程(AOP)的设计思想,拦截器是AOP的一种实现策略。

9.简述Struts2中输入校验的作用。

在互联网上,web站点是对外提供服务的,由于站点的开放性,web站点保存的数据主要是从客户端接收到的。输入数据的用户来自不同的行业,他们有着不同的生活习惯、教育背景,从而不能绝对保证输入内容的正确性。例如,用户操作计算机不熟练、输入出错、网络问题或者恶意输入等,这些都可能导致数据的异常。如果对数据不加校验,有可能导致系统阻塞甚至崩溃。

10.简述Hibernate的特点。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

优点:

a. Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。

ate 的性能非常好,因为它是个轻量级框架。 映射的灵活性很出色。

c. 它支持各种关系数据库,从一对一到多对多的各种复杂关系。

缺点:

0

它限制您所使用的对象模型。其独有的界面和可怜的市场份额也让人不安,尽管如此,Hibernate 还是以其强大的发展动力减轻了这些风险。其他的开源持久性框架也有一些,不过都没有 Hibernate 这样有市场冲击力。

11.简述Hibernate的工作原理。

1.配置好hibernate的配置文件和与类对应的配置文件后,启动服务器

2.服务器通过实例化Configeration对象,读取文件的配置内容,并根据相关的需求建好表或者和表建立好映射关系

3.通过实例化的Configeration对象就可以建立sessionFactory实例,进一步,通过sessionFactory实例可以创建session对象

4.得到session之后,便可以对数据库进行增删改查操作了,除了比较复杂的全文搜索外,简单的操作都可以通过hibernate封装好的session内置方法来实现

5.此外,还可以通过事物管理,表的关联来实现较为复杂的数据库设计

12.简述Hibernate配置文件的作用。

Hibernate框架的配置文件主要用来为程序配置连接数据库的参数,例如,数据库的驱动程序名、URL、用户名、和密码等。Hibernate的基本配置文件有两种形式:和ties。包含了Hibernate与数据库的基本连接信息,在Hibernate工作的初级阶段,这些信息被先后加载到Configuration和SessionFactory实例中;该文件还包含了Hibernate的基本映射信息,即系统中的每一个类和与其对应的数据库表之间的关联信息,在Hibernate工作的初级阶段,这些信息通过的mapping元素被加载到Configuration和SessionFactory实例中。这两种文件包含了Hibernate运行期间用到的所有参数。两者的配置内容基本相同,但前者的使用稍微方便一些,例如,在中可以定义要用到的映射文件,而使用ties则需要在程序中以编码方式指明映射文件。是默认的配置文件。

13.简述Hibernate中Configuration类的作用。

主要作用是解析Hibernate的配置文件和映射文件中的信息,即负责管理Hibernate的配置信息。Hibernate运行时需要获取一些底层实现的基本信息,如数据库驱动程序类、数据库的URL、数据库登录名、数据库登录密码等,这些信息定义在Hibernate的配置文件中。通过Configuration对象的buildSessionFactory()方法可创建SessionFactory对象,因此Configuration对象一般只有在获取SessionFactory对象时使用。当获取了SessionFactory对象之后,由于配置信息已经由Hibernate维护并绑定在返回的SessionFactory中,该Configuration将不再有价值。

(1) 实现对Hibernate进行配置。

(2) 它是启动Hibernate的对象。

(3)使用方法链编程风格。

14.简述Hibernate中Session的作用。

0

Session对象是Hibernate技术的核心,持久化对象的生命周期、事务的管理及持久化对象的增加、修改和删除都是通过Session对象来完成的。Hibernate在操作数据库之前必须先取得Session对象,相当于JDBC在操作数据库之前必须先取得Connection对象一样。Session对象不是线程安全的,一个Session对象最好只由一个单线程来使用。同时该对象

的生命周期要比SessionFactory短,其生命通常在完成数据库的一个短暂的系列操作之后结束。一个应用系统中可以自始至终只使用一个SessionFactory对象。Session对象通过SessionFactory对象的getCurrentSession()或者openSession()方法获取。

15.简述一对一关联关系两种方式的区别。

主键关联的重点是:关联的两个表共享一个主键值。

外键关联的的要点是:两个表各自有不同的主键,但其中一个表有一个外键引用另一个表的主键。

16.简述事务的特性。

原子性、一致性、隔离性和持久性4个属性,简称ACID。

(1)原子性:将事务中所做的操作捆绑成一个原子单元,即对于事务进行的数据修改等操作,要么全部执行,要么全部不执行。

(2)一致性:事务在完成时,必须使所有的数据都保持一致状态,而且在相关数据中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构都应该是正确的。

(3)隔离性:由并发事务所做的修改必须与任何其他事务所做的修改想隔离。事务查看数据时数据所处的状态,要么是被另一并发事务修改之前的状态,要么是被另一并发事务修改之后的状态,即事务不会查看由另一个并发事务正在修改的数据。这种隔离方式也称为可串行性。

(4)持久性:事务完成之后,它对系统的影响是永久的,即使出现系统故障也是如此。

17.简述Spring3框架各个组件的功能。

核心容器:提供Spring3框架的基本功能。

Spring上下文:是一个配置文件,向Spring3框架提供上下文信息。

Spring AOP:通过配置管理特性,Spring AOP模块直接将切面的编程功能集成到了Spring3框架中。

Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。

Spring ORM:Spring3框架插入了若干个ORM框架,从而提供了ORM的工具,其中包括JDO、Hibernate和iBatisSQL Map。

Spring Web:web上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。

Spring MVC Web框架:MVC框架是一个全功能的构建web应用程序的MVC实现。

18.简述Spring3框架的特点。

0

1、ioc,实现java bean的低耦合性,便于java code 的重用;

2、aop使用简便;

3、实现restful的mvc,便于web开发;

4、大量的注解pojo,简化了xml配置;

5、database的dao模板类,兼容多种数据库,而且底层只需要更换jdbc driver,datasource声明好驱动,jdbctemplate就可以访问数据库了;

6、spring官网有很多解决方案可以使用(安全,数据访问,页面流,android)

19.简述Spring3的AOP框架主要术语。

a) 横切关注点

b) 切面:将横切关注点设计为独立可重用的对象。

c) 连接点:切面在应用程序执行时加入目标对象的业务流程中的特定点。

d) 通知:切面在某个具体连接点采取的行为或动作。

e) 切入点:指定某个通知在哪些连接点被织入到应用程序之中。

f) 织入:将通知加入应用程序的过程。

g) 目标:通知被应用的对象。

h) 引人:通过引用,我们可以在一个对象中加入新的方法和属性,而不用修改他的程序。

i)

代理:是由AOP框架生成的一个对象,用来执行切面的内容。

0


本文标签: 对象 数据库 数据 文件 框架