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.对数据进行联动过滤场景。

上一篇:prometheus 监控 jar应用服务 + 修改监听IP和端口


下一篇:Unity中使用ulua的个人经验总结