java web面试

来源:互联网 发布:软件出现乱码怎么办 编辑:程序博客网 时间:2024/06/08 12:04
1.Spring
通过配置文件来实现模块和模块,对象和对象的分离。

2.hibernate
1.读取并解析配置文件
2.读取并解析映射文件,创建SessionFactory
3.打开Session
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭SessionFactory


1.说出一些常用的类、包、和接口
类:
1.java.lang.Object
2.java.lang.String
3.java.lang.System
4.java.io.file
5.java.io.FileInputStream

包:
1.java.lang包
2.java.io包
3.java.swt包
4.java.util包
5.java.sql包

接口:
1.java.util.List<E>
2.java.util.Map<E>
3.java.util.Iterator<E>
4.java.sql.CallableStatement
5.java.lang.Comparable<T>

.GET和POST有什么区别?   [难]   
GET是明码传递,POST是暗码传递   

Action的作用  [中]   
   Action的作用是接受用户的请求,通过调用业务方法实现业务处理的功能。

36. spring框架的7个模块是什么?   [ 难]   
答: (1) spring  AOP  --面象切面编程   
   (2)spring  DAO  --数据访问对象   
   (3)spring ORM   --对象关系影射   
(4)spring Contect  -- 上下文配置,向Spring框架提供上下文信息   
(5)spring WEB  - -WEB上下文模块   
(6)\spring WEB-MVC  --实现了MVC   
(7)spring CORE –核心容器提供Spring框架基本功能   

 Struts属于表示层组件,它的作用主要体现在以下几个方面:   
1)     输出用户界面和接收用户的输入,实现与用户的交互。   
2) 调用业务方法,完成业务处理,还要包括处理后的显示工作。

2.forward和redirect的区别

(1).从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.

(2).从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.

(3).从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.

(4).从效率来说
forward:高.
redirect:低.

Hibernate实体对象生命周期的三种状态  [难]   
答 Transient(瞬态) ,persistent(持久态)和Detached(游历态)   


Hibernate中Session对象的load()方法和get()方法的区别(请列举出两点)[难]   
答:①记录不存在时 get()方法会返回空(null),而load()方法将会抛出一个HibernateException异常 ② load()方法查询数据时会先找Hibernate的内部缓存和二级缓   
存中的现有数据,get()方法在内部缓存中没有打到相对应的数据时装直接执行SQL语句   
进行查询   

3.简单阐述一下Hibernate和JPA
Hibernate作为JPA的一种实现,jpa的注解已经是hibernate的核心,
hibernate只提供了一些补充,而不是两套注解。hibernate对jpa的支持够足量,
在使用hibernate注解建议使用jpa。


Ajax的工作原理 ? [难]   
在会话的开始,浏览器加载Ajax引擎   
请求动作通过JavaScript调用Ajax引擎来代替.    
引擎负责绘制用户界面以及与服务器端通讯。   
Ajax引擎采用异步交互过程--不用等待服务器的通讯。   

4.js,JQuery分别实现Ajax

1.JQuery
 $.ajax({
   type:"post",
   url:"some.jsp",
   data:"name="joue",
   success:function(msg){
     alert(msg);
   }
  })


2.js
var ajax = function(conf) {
    // 初始化
    //type参数,可选
    var type = conf.type;
    //url参数,必填
    var url = conf.url;
    //data参数可选,只有在post请求时需要
    var data = conf.data;
    //datatype参数可选    
    var dataType = conf.dataType;
    //回调函数可选
    var success = conf.success;
                                                                                         
    if (type == null){
        //type参数可选,默认为get
        type = "get";
    }
    if (dataType == null){
        //dataType参数可选,默认为text
        dataType = "text";
    }
    // 创建ajax引擎对象
    var xhr = createAjax();
    // 打开
    xhr.open(type, url, true);
    // 发送
    if (type == "GET" || type == "get") {
        xhr.send(null);
    } else if (type == "POST" || type == "post") {
        xhr.setRequestHeader("content-type",
                    "application/x-www-form-urlencoded");
        xhr.send(data);
    }
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4 && xhr.status == 200) {
            if(dataType == "text"||dataType=="TEXT") {
                if (success != null){
                    //普通文本
                    success(xhr.responseText);
                }
            }else if(dataType=="xml"||dataType=="XML") {
                if (success != null){
                    //接收xml文档    
                    success(xhr.responseXML);
                }  
            }else if(dataType=="json"||dataType=="JSON") {
                if (success != null){
                    //将json字符串转换为js对象  
                    success(eval("("+xhr.responseText+")"));
                }
            }
        }
    };
};
0 0
原创粉丝点击