• Java面试题集(四)


    二. Java Web基础部分

    在js中如何创建一个对象?

    var p1={name:”tom”,”age”:12};
    
    function Person(name,age){
    
       this.name=name;
    
       this.age=age;
    
    }
    
    var p2=new Person(“jack”,14);
    
    在js中如何得到对象的属性?
    
    Var age=p2.age;
    
    age=p1[“age”];
    
    Alert(age);

    $(document).ready()方法和window.onload()方法的区别?

    1.window.onload()方法是在网页中所有的元素完全加载到浏览器后才执行的。

    2.$(document).ready()方法可以在dom载入就绪时就对其进行操作,并调用执行绑定的函数。

    Xml有哪些解析方式?区别是什么?项目中用到了xml技术的哪些方面?如何实现的?

    1.DOM方式:一次性将整个文档加载到内存中,生成一个对象树,在处理大型文件时其性能下降的非常厉害。

    2.SAX:基于事件驱动的方法回调机制。每读取一小部分数据时就会回调事件处理器对象的方法,但解析一旦开始就不能停止。

    实际运用:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

    Servlet的生命周期?

    1.初始化阶段调用init()方法。

    2.响应客户端请求阶段调用service()方法即doGet()和doPost()方法

    3.终止阶段调用destory()方法。

    http请求的转发(forward)和重定向(redirect)的区别?

    1.地址栏:转发显示的是请求的url而重定向显示的不是请求的url,是指向新的url。

    2.浏览器发送请求次数:转发浏览器发送了一次请求,而重定向浏览器发生了2次请求。

    3.是否可以进行request数据共享:转发2个资源之间是同一个request对象,可以共享request中数据,而重定向2个资源之间不是同一个request对象,不可以共享。

    补充:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址; 

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

    Http中请求的get和post方式的区别?

    Get用于信息获取,而post用于更新信息,

    get请求用来从服务器上获得资源,而post是用来向服务器提交数据;

    数据查询时用Get方式,而数据添加、修改或删除时用Post方式;

    1.携带请求参数的方式

      Get:通过请求行携带参数,参数显示在地址栏

      Post:通过请求体携带参数,参数不会显示在地址栏

    2.服务器端处理请求的方法

      Get:会调用servlet的doGet()来处理请求

      Post:会调用servlet的doPost()来处理请求

    3.数据大小和安全性

      Get:大小有显示,不安全

      Post:大小没显示,安全

    JSP有哪些内置对象?作用分别是什么?

    jsp一共有9个内置对象:

    Request:用户端请求,此请求会包含来自get/post请求的参数

    Reponse:网页传回用户端的回应

    Session:与请求有关的会话期,Session可以存贮用户的状态信息

    Application: 与当前应用对应的ServletContext对象,应用中只有一个

    pageContext:网页的属性在这里管理

    Out:用来传送回应的输出{}<%=%>

    Page:jsp对应的servlet对象

    Exception:针对错误网页,未捕捉的异常对象

    Config:与jsp对象

    jsp中动态include与静态include的区别?

    1.动态包含:用<jsp:include file=”optimal.jsp”>包含动作是在jsp对应的servlet处理请求时去执行,每请求一次执行一次。

    2.静态包含:<%@include file=”optimal.jsp”>包含动作在jsp被编译成java文件时执行,只有第一次请求时执行。

    注意:在日常开发中会出现这样错误:

    The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit

    则该错误是jsp文件过大编译失败。解决方法是动态引入jsp文件,拆分jsp文件

    JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 

    JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。 

    我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 

     Public String translate (String str) {
    
       String tempStr = "";
    
       try {
    
         tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
    
         tempStr = tempStr.trim();
    
       }
    
       catch (Exception e) {
    
         System.err.println(e.getMessage());
    
       }
    
       return tempStr;
    
     }

    Jquery使用好处?为什么使用jquery?

    1.轻量级:jquery是轻量级的JavaScript框架.

    2:强大的选择器:JQuery不仅支持CSS里的所有选择器,还有JQuery独有的选择器.

    3:出色的DOM操作封装:JQuery封装了大量常用的DOM操作。

    4.兼容性好:JQuery能够在不同浏览器中兼容,同时还修复了一些浏览器之间的差异.

    5.可靠的事件处理机制

    6.完善的ajax封装

    7.链式操作方式,隐式迭代

    8.支持丰富的插件

    Ajax发送请求过程?优缺点?应用场景?

    $.ajax({  
         url : "user/login.do",  
         type : "post",  
         data : {  
             mobile : $("#mobile").val(),  
             password : $("#password").val()  
         },  
         dataType : "json",  
         success : function (data) {  
             $("#login").text(JSON.stringify(data));//这里进行了将字符串封装成json对象形式  
         },  
         error:function(data){  
             //返回数据失败提示  
         }  
    });   

    优点:

    1.最大的一点是页面无刷新,给用户体验非常好。

    2.使用异步方式与服务器通信,不需要打断用户操作,具有更加迅速的响应能力

    3.Ajax的原则是“按需取数据,最大程度的减少冗余请求,减少服务器的负荷”。

    缺点:

    1.破坏浏览器后退按钮的正常行为,在动态更新页面后,用户无法回到前一个页面的状态。

    2.使用JavaScript作ajax引擎,JavaScript的兼容性和debug本身让人头疼。

    应用场景:

    1.文本输入提示的场景

    2.对数据进行联动过滤场景。

  • 相关阅读:
    如何使用git提交代码
    Eclipse升级ADT
    android学习:android开发常见技巧设置,提高开发效率
    Apache -Common-lang包使用
    最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
    Asp.Net MVC entity framework模型验证
    Activity启动模式
    http服务器交互get,put,post,delete等说明
    js模块化插件开发
    Android Asynchronous Http Client异步网络请求使用
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/7683789.html
Copyright © 2020-2023  润新知