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发送请求过程?优缺点?应用场景?
优点:
1.最大的一点是页面无刷新,给用户体验非常好。
2.使用异步方式与服务器通信,不需要打断用户操作,具有更加迅速的响应能力
3.Ajax的原则是“按需取数据,最大程度的减少冗余请求,减少服务器的负荷”。
缺点:
1.破坏浏览器后退按钮的正常行为,在动态更新页面后,用户无法回到前一个页面的状态。
2.使用JavaScript作ajax引擎,JavaScript的兼容性和debug本身让人头疼。
应用场景:
1.文本输入提示的场景
2.对数据进行联动过滤场景。