技术综合面试题目(含参考答案) 联系客服

发布时间 : 星期二 文章技术综合面试题目(含参考答案)更新完毕开始阅读529e684302d276a201292e6a

1/38

目 录

1 2 3 4 5 6 7

Struts框架 .............................................................. 2 Spring框架 .............................................................. 9 AJAX技术 ............................................................... 15 Hibernate框架 .......................................................... 18 框架综合运用 ............................................................ 25 J2EE初级题目 ........................................................... 28 J2SE初级题目 ........................................................... 34

2/38

1 Struts框架

1. Struts框架的整体运行流程

在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象,例如:Action的映射信息存放在ActionMapping对象中. 当ActionServlet接收到一个客户请求时,将执行如下流程.

A. 检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径

无效信息;

B. 如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表

单数据保存到ActionForm对象中;

C. 根据配置信息决定是否需要表单验证.如果需要验证,就调用

ActionForm 的validate()方法;

D. 如果ActionForm的validate()方法返回null或返回一个不包含

ActionMessage的ActuibErrors对象,就表示表单验证成功;

E. ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪

个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;

F. Action的execute()方法返回一个ActionForward对象,ActionServlet再

把客户请求转发给ActionForward对象指向的JSP组件; G. ActionForward对象指向JSP组件生成动态网页,返回给客户

2. ActionServlet在Struts框架中的总体作用功能是什么

A. 在web应用启动时ActionServlet从struts-config.xml文件中读取配置信息,

把它们存放到各种配置对象,例如:Action的映射信息存放在ActionMapping对象中。

B. ActionServlet是整个struts 框架的骨干,也是主要的控制部件,它能够处

理客户request 并且决定由哪个Action 处理客户request。它象一个Action工厂,创建基于客户request请求的Action类的对象

3/38

3. Struts框架的后缀名一般为.do,后缀后能不能更改,如果能更改的话,如何进行更改

后缀名

可以更改,在web.xml中把

action *.do

中的url-pattern值改成你想要的后缀名就可以了。

4. 如何在Struts-config.xml中配置数据源以及获取数据源

Key 绑定在ServletContext上的DataSource实例的索引键,若不设定则缺省为Action.DATA_SOURCE_KEY,如果在应用程序中有多于一个的DataSource,则必须设置Key的值。 DriverClassName 所用的JDBC驱动类(必须的)如:com.microsoft.jdbc.sqlserver.SQLServerDriver url MaxCount MinCount User Password Description ReadOnly LoginTimeout AutoCommit

所用的JDBC的URL(必须的)如:jdbc:microsoft:sqlserver://xg088:1433 同时打开的最大连结数,缺省值为2(可选的) 同时打开的最小连结数,缺省值为1(可选的) 连结到数据库的用户名(必须的) 连结到数据库的密码(必须的) 关于DataSource的描述信息(可选的) 如果设为true,则表示该连结是只读的,缺省为false。(可选的) 创建连结的最大允许时间,以秒为单位。(可选的) 如果为true,则每次execute之后会强制回滚。缺省为true。(可选的) 4/38

在action中只要继承了org.apache.struts.actions.Action及子类,即可通过getDataSource方法获得数据源,代码如下: //多个数据源

DataSource datasource = this.getDataSource(httpServletRequest, \值\//单个数据源

DataSource datasource = this.getDataSource(httpServletRequest);

5. Struts-config.xml文件action配置中的attribute属性和name属性有什么区别

name:用来表示Actionform的名称,

attribute:表示ActionFrom的实例放到作用域中的名称.

6. Struts中的Action是不是线程安全的?如果不是有什么方式可以保证Action的线程安

全?如果是,说明原因 不是线程安全的。

在Struts的生命周期中,只会为每个Action类创建一个实例,所有的客户请求共享这个实例。因此,必须保证在多线程环境中,Action也能正常工作。因此在Action类中要谨慎使用实例变量。

如果在Action类中定义了实例变量,那么在Action实例的整个生命周期中,这个实例变量被所有请求的线程共享。因此不能在Action类,特别是execute方法中定义代表特定客户状态的实例变量。如果要采用实例变量,需要采用Java的线程同步机制。

7. Action的Execute方法有几个参数,这几个参数的具体作用是什么

一共有4个参数

ActionMapping mapping 获取映射 ActionForm form 获取表单

HttpServletRequest request 获得请求 HttpServletResponse response 获得响应

8. Action的Execute方法的返回值是什么类型,有几种方式可以返回此类型

Action的Execute方法的返回值的类型是ActionForward,返回此类型的方法有三种:1、new ActionForward(path)

2、mapping.findForward(key),action中配置

3、mapping.getInputForward(),根据action配置中的input属性来查找。

4、return new ActionRedirect(path);