## 题目1:请描述Post请求和Get请求的区别以及二者一般应用场景
Post请求和Get请求都是向服务器获取数据的请求,Get是通过URL向服务器发送获取数据的请求,Post是把要提交的数据放在HTTP包体中向服务器提交数据的请求。二者理论上都没有长度限制,例如IE浏览器对URL的长度限制为2KB。Post请求比Get请求安全性更高,因为Get请求通过URL实现,用户名和密码很容易暴露,所以在传参的时候一定要加密。可以采用Base64()进行编解码。
~~~
var b = new Base64();
b.encode(pwd)
b.decode(pwd)
~~~
这篇文章对于二者的分析比较到位:[话说GET与POST那点恩怨](http://blog.csdn.net/liujiahan629629/article/details/17585899)
## 题目2:请说明forward和redirect的主要区别
forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户端无需知道;redirect则是服务器收到请求后发生一个状态头给用户,用户再次请求,这样会有两次客户端到服务端的通信,由于是再次请求,因此上一个jsp的信息不被保留。
![](https://box.kancloud.cn/91de7f7fd9abcbbcaa2d188c152e5a70_592x195.jpg)
题目3:请写出以下javascript代码的执行结果
~~~
var a1 = 10; var a2 = 20;
var r1 = "a1+a2=" + a1 + a2;
var str1 = "I am a soft engineer";
var r2 = str1.substring(9, 14);
document.write(r1);
document.write("%");
document.write(r2);
~~~
结果是:a1+a2=1020%ft en
## 题目4:请写出以下javascript代码的执行结果,并说明原因
~~~
function Person(name) {
this.name = name;
this.move = function () { alert("Prepare move for person [" + this.name + "]") };
}
Person.prototype.move = function () { alert("Ready move for person [" + this.name + "]") };
$(function () {
var person = new Person("Jim");
person.move();
});
~~~
执行的结果是:Prepare move for person [Jim]
个人觉得原因是由于对象如果自带有move()方法就不会向原型链查找。