填空
简答
1)简述 ajax 中 get 和 post 的请求方式及他们的优缺点?(6 分)
1
在 Ajax 中,可以使用 GET 和 POST 两种 HTTP 请求方法来发送请求和接收响应数据。
GET 请求方式:
使用 GET 请求方式时,将请求数据添加到 URL 的查询字符串中,发送至服务器。查询字符串的格式为:key1=value1&key2=value2&key3=value3,多个键值对之间使用&符号分隔。通过 XMLHttpRequest 对象的 open()方法设置请求方式和请求 URL,然后调用 send()方法发送请求。
例子:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://example.com/api/data?key=value', true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send();
POST 请求方式:
使用 POST 请求方式时,将请求数据作为请求主体发送至服务器。通过 XMLHttpRequest 对象的 open()方法设置请求方式和请求 URL,然后调用 send()方法发送请求,并将请求数据作为参数传递给 send()方法。请求数据可以是表单数据、JSON 数据、XML 数据等。
例子:
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://example.com/api/data', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
var data = {key: 'value'};
xhr.send(JSON.stringify(data));
在 POST 请求中,可以通过 setRequestHeader()方法设置请求头,用于指定请求数据的格式、编码方式等信息。在上面的例子中,setRequestHeader()方法设置了 Content-Type 请求头,用于指定请求数据的格式为 JSON。
GET 请求的优点:
- GET 请求比 POST 请求更快,因为它不需要发送任何请求主体。
- GET 请求可以被缓存,可以减少网络带宽的使用。
- GET 请求允许将数据作为 URL 参数发送,可以方便地在 URL 中传递数据。
- GET 请求在浏览器地址栏中可见,可以方便地调试和测试。
GET 请求的缺点:
- GET 请求的 URL 参数有长度限制,不适合发送大量数据。
- GET 请求的 URL 参数可以被缓存到浏览器历史记录或服务器日志中,可能存在安全风险。
- GET 请求不适合用于敏感数据的传输,因为 URL 参数可以被轻易地窃取。
POST 请求的优点:
- POST 请求可以发送大量数据,不受 URL 长度限制。
- POST 请求的数据被包含在请求主体中,不会被缓存到浏览器历史记录或服务器日志中,安全性更高。
- POST 请求适合用于敏感数据的传输。
POST 请求的缺点:
- POST 请求比 GET 请求慢,因为它需要发送请求主体。
- POST 请求不支持缓存,每次请求都需要从服务器获取响应。
- POST 请求的请求主体格式需要与服务器端相匹配,需要进行格式校验。
2)简述 Ajax 都有哪些优点和缺点?(6 分)
Ajax(Asynchronous JavaScript and XML)是一种基于 JavaScript 和 XML 的技术,可以在不重新加载整个页面的情况下向服务器发送和获取数据。下面是 Ajax 的优点和缺点:
优点:
- 提高用户体验。
- 减少带宽使用。
- 提高效率。
- 支持多种数据格式。
- 可以与服务器进行部分通信。
缺点:
- 对搜索引擎的支持不好,搜索引擎更新的内容,影响网站的 SEO 效果。
- 安全性问题:由于 Ajax 可以异步发送和接收数据,可能存在安全性问题,如跨站脚本攻击(XSS)等。
- 对 JavaScript 的依赖性强。
- 不同浏览器对 Ajax 的支持程度不同,开发和维护难度高。
- 调试和测试会更困难,需要使用调试工具和技术。
3)简述什么是 DOM 对象?(6 分)
DOM(Document Object Model,文档对象模型)是一种 API(Application Programming Interface,应用程序编程接口),它提供了一种访问和操作 HTML 或 XML 文档的方式。在 DOM 中,文档被视为一个树形结构,每个 HTML 或 XML 标签都是树中的一个节点,可以通过 DOM API 来访问和操作这些节点。
DOM 对象是指文档中的每个 HTML 或 XML 标签和文本节点,每个标签都有对应的 DOM 对象。在 JavaScript 中,可以通过 DOM API 来获取和操作 DOM 对象,从而实现对文档的访问和操作。
每个 DOM 对象都有一组属性和方法,用于获取和设置标签的属性和内容,以及与其他 DOM 对象进行交互。例如,可以通过 DOM API 来获取元素的标签名、类名、ID、样式等属性,也可以通过 DOM API 来添加、删除、修改元素的子元素、文本内容等。
DOM 对象是 JavaScript 与 HTML 或 XML 文档之间的桥梁,可以实现动态地修改和更新文档内容,从而实现交互和动态效果。
4)简述什么是 jQuery?(6 分)
jQuery 是一种 JavaScript 库,它简化了 JavaScript 编程,提供了一种跨浏览器的 JavaScript 编程方式,可以帮助开发人员快速地编写动态、交互式的网页。jQuery 提供了一系列的 API,使得开发人员可以轻松地操作 DOM、处理事件、实现动画效果、进行 AJAX 交互等。
5)简述什么是 Cookie?(6 分)
Cookie 是一种在客户端保存数据的技术,可以将一些数据保存在客户端的浏览器中,以便于下次访问同一网站时使用。
6)简述 Servlet 的生命周期?(6 分)
- 初始化阶段(Initialization):创建 Servlet 实例,并调用其 init()方法进行初始化。
- 处理请求阶段(Request Processing):当客户端发送 HTTP 请求时,Servlet 容器会将请求转发给对应的 Servlet 实例,并调用其 service()方法进行处理。
- 销毁阶段(Destroy):当 Servlet 容器关闭时,或 Web 应用程序被卸载时,Servlet 实例会被销毁,并调用其 destroy()方法进行清理工作。
7)简述 JSON (JavaScript Object Notation)和 XML 的区别(6 分)
JSON(JavaScript Object Notation)和 XML(eXtensible Markup Language)都是常用的数据格式,用于在不同的应用程序之间传递数据。它们之间的主要区别如下:
- 语法:JSON 使用 JavaScript 语法,是一种轻量级的数据交换格式,数据结构比较简单;而 XML 是一种基于标签的语言,具有非常丰富的标记及其属性,数据结构比较复杂。
- 可读性:JSON 数据格式可读性较高,易于理解和解析,可以直接在 JavaScript 中进行解析;而 XML 数据格式较为复杂,需要使用专门的解析器来解析。
- 数据大小:JSON 数据格式通常比 XML 更小,因为 JSON 不需要包含标记和属性等元信息,只包含数据本身。
- 扩展性:XML 具有较高的扩展性,可以通过定义新的标记和属性来扩展数据结构;而 JSON 的数据结构比较简单,不具有 XML 那样的扩展性。
- 性能:由于 JSON 的数据结构比较简单,解析和序列化的速度比 XML 更快,而且 JSON 的数据量比 XML 更小,可以减少网络传输的时间和带宽占用。
总之,JSON 和 XML 都有自己的优缺点,开发人员需要根据具体的应用场景来选择使用哪种数据格式。如果需要传输大量的数据或需要高性能的解析和序列化,可以选择 JSON;如果需要较高的扩展性或需要与其他系统进行数据交换,可以选择 XML。
8)JSP 有哪些内置对象?作用分别是什么?(6 分)
JSP(JavaServer Pages)是一种基于 Java 技术的服务器端动态网页技术,它可以将 Java 代码嵌入到 HTML 页面中,动态生成网页内容。在 JSP 中,有以下 9 个内置对象:
- request:表示 HTTP 请求对象,封装了客户端请求的信息,如请求头、请求参数等。
- response:表示 HTTP 响应对象,封装了服务端响应的信息,如响应头、响应内容等。
- pageContext:表示 JSP 页面上下文,可以访问当前页面的其他内置对象,如 request、response 等。
- session:表示 HTTP 会话对象,用于在用户访问多个页面时保存用户的状态信息。
- application:表示 Web 应用程序对象,用于保存全局的信息,如 Web 应用程序的初始化参数、全局变量等。
- out:表示 JSP 页面输出流,可以将内容输出到客户端浏览器。
- config:表示 Servlet 配置对象,用于获取 Servlet 的配置信息。
- page:表示当前 JSP 页面对象,可以访问当前页面的属性和方法。
- exception:表示 JSP 页面中发生的异常对象,用于处理异常信息。
这些内置对象在 JSP 页面中都可以直接使用,它们可以帮助开发人员方便地访问和操作 HTTP 请求、HTTP 响应、HTTP 会话、Servlet 配置等信息,简化了 JSP 页面的开发。
9)简述什么是 Session?(6 分)
Session 是一种在 Web 应用程序中保存用户状态信息的机制,用于跟踪用户的会话状态。在用户访问 Web 应用程序时,服务器会为每个用户创建一个 Session 对象,用于保存用户的状态信息,如登录状态、购物车信息等。Session 可以在不同的页面之间共享,可以方便地保存和传递用户的状态信息。
Session 的工作原理如下:
- 当用户第一次访问 Web 应用程序时,服务器会为该用户创建一个 Session 对象,并生成一个唯一的 Session ID。
- 服务器会将 Session ID 发送给客户端浏览器,通常是通过 Cookie 或 URL 重写的方式。
- 当用户访问 Web 应用程序的其他页面时,浏览器会将 Session ID 发送给服务器,服务器根据 Session ID 找到对应的 Session 对象,从而获取用户的状态信息。
- 当用户关闭浏览器或超时时,服务器会销毁该用户的 Session 对象,释放资源。
Session 的主要特点包括:
- 可跨页面共享:Session 可以在不同的页面之间共享,可以方便地保存和传递用户的状态信息。
- 安全性高:Session ID 是由服务器生成的唯一标识符,相对安全,不易被伪造。
- 可控性强:Session 可以设置超时时间和最大空闲时间等属性,可以避免资源浪费和安全问题。
- 存储容量限制:Session 的存储容量通常受到服务器内存的限制,如果 Session 对象过多,可能会导致服务器性能下降。
总之,Session 是一种常用的跟踪用户会话状态的机制,可以方便地保存和传递用户的状态信息,提高 Web 应用程序的交互性和用户体验。
读程题
1.采用纯 javascript 实现 cookie 读取操作
<html>
<head>
<title>setCookie</title>
<script> //脚本标识
function gefCookie(cname) { //函数定义
var id=document.getElementById("cname");
var name id.value()+"="; //取DOM的值.
var ca = document.cookie.split(';'); //将cookie值按';''拆分
for(var i = 0; i < ca.length; i++) {
var c=ca[i].trim();
if(c.indexOf(name)=0) { return c.substring(name.length, c.length) };
}
return "";
}
</script>
</head>
<body>
<input type=”text” id="username" value="myName">
<input type="button" onclick="getCookie ('username')"> //点击事件
</body>
</html>
2.在 Spring MVC 中定义一个控制类,实现服务分流
package edu.xupt.controller; //设置包.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller //控制注解
@RequestMapping("/index") //请求映射注解
public class IndexController {
@RequestMapping("/login").
public String login(){
return "login"; ∥返回服务响应
}
@RequestMapping ("/register") //请求映射注解
public String register(){
return "register";
}
}