抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

填空

image.png

简答

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 请求的优点:

  1. GET 请求比 POST 请求更快,因为它不需要发送任何请求主体。
  2. GET 请求可以被缓存,可以减少网络带宽的使用。
  3. GET 请求允许将数据作为 URL 参数发送,可以方便地在 URL 中传递数据。
  4. GET 请求在浏览器地址栏中可见,可以方便地调试和测试。

GET 请求的缺点:

  1. GET 请求的 URL 参数有长度限制,不适合发送大量数据。
  2. GET 请求的 URL 参数可以被缓存到浏览器历史记录或服务器日志中,可能存在安全风险。
  3. GET 请求不适合用于敏感数据的传输,因为 URL 参数可以被轻易地窃取。

POST 请求的优点:

  1. POST 请求可以发送大量数据,不受 URL 长度限制。
  2. POST 请求的数据被包含在请求主体中,不会被缓存到浏览器历史记录或服务器日志中,安全性更高。
  3. POST 请求适合用于敏感数据的传输。

POST 请求的缺点:

  1. POST 请求比 GET 请求慢,因为它需要发送请求主体。
  2. POST 请求不支持缓存,每次请求都需要从服务器获取响应。
  3. POST 请求的请求主体格式需要与服务器端相匹配,需要进行格式校验。

2)简述 Ajax 都有哪些优点和缺点?(6 分)

Ajax(Asynchronous JavaScript and XML)是一种基于 JavaScript 和 XML 的技术,可以在不重新加载整个页面的情况下向服务器发送和获取数据。下面是 Ajax 的优点和缺点:

优点:

  1. 提高用户体验。
  2. 减少带宽使用。
  3. 提高效率。
  4. 支持多种数据格式。
  5. 可以与服务器进行部分通信。

缺点:

  1. 对搜索引擎的支持不好,搜索引擎更新的内容,影响网站的 SEO 效果。
  2. 安全性问题:由于 Ajax 可以异步发送和接收数据,可能存在安全性问题,如跨站脚本攻击(XSS)等。
  3. 对 JavaScript 的依赖性强。
  4. 不同浏览器对 Ajax 的支持程度不同,开发和维护难度高。
  5. 调试和测试会更困难,需要使用调试工具和技术。

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 交互等。

Cookie 是一种在客户端保存数据的技术,可以将一些数据保存在客户端的浏览器中,以便于下次访问同一网站时使用。

6)简述 Servlet 的生命周期?(6 分)

  1. 初始化阶段(Initialization):创建 Servlet 实例,并调用其 init()方法进行初始化。
  2. 处理请求阶段(Request Processing):当客户端发送 HTTP 请求时,Servlet 容器会将请求转发给对应的 Servlet 实例,并调用其 service()方法进行处理。
  3. 销毁阶段(Destroy):当 Servlet 容器关闭时,或 Web 应用程序被卸载时,Servlet 实例会被销毁,并调用其 destroy()方法进行清理工作。

7)简述 JSON (JavaScript Object Notation)和 XML 的区别(6 分)

JSON(JavaScript Object Notation)和 XML(eXtensible Markup Language)都是常用的数据格式,用于在不同的应用程序之间传递数据。它们之间的主要区别如下:

  1. 语法:JSON 使用 JavaScript 语法,是一种轻量级的数据交换格式,数据结构比较简单;而 XML 是一种基于标签的语言,具有非常丰富的标记及其属性,数据结构比较复杂。
  2. 可读性:JSON 数据格式可读性较高,易于理解和解析,可以直接在 JavaScript 中进行解析;而 XML 数据格式较为复杂,需要使用专门的解析器来解析。
  3. 数据大小:JSON 数据格式通常比 XML 更小,因为 JSON 不需要包含标记和属性等元信息,只包含数据本身。
  4. 扩展性:XML 具有较高的扩展性,可以通过定义新的标记和属性来扩展数据结构;而 JSON 的数据结构比较简单,不具有 XML 那样的扩展性。
  5. 性能:由于 JSON 的数据结构比较简单,解析和序列化的速度比 XML 更快,而且 JSON 的数据量比 XML 更小,可以减少网络传输的时间和带宽占用。

总之,JSON 和 XML 都有自己的优缺点,开发人员需要根据具体的应用场景来选择使用哪种数据格式。如果需要传输大量的数据或需要高性能的解析和序列化,可以选择 JSON;如果需要较高的扩展性或需要与其他系统进行数据交换,可以选择 XML。

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

JSP(JavaServer Pages)是一种基于 Java 技术的服务器端动态网页技术,它可以将 Java 代码嵌入到 HTML 页面中,动态生成网页内容。在 JSP 中,有以下 9 个内置对象:

  1. request:表示 HTTP 请求对象,封装了客户端请求的信息,如请求头、请求参数等。
  2. response:表示 HTTP 响应对象,封装了服务端响应的信息,如响应头、响应内容等。
  3. pageContext:表示 JSP 页面上下文,可以访问当前页面的其他内置对象,如 request、response 等。
  4. session:表示 HTTP 会话对象,用于在用户访问多个页面时保存用户的状态信息。
  5. application:表示 Web 应用程序对象,用于保存全局的信息,如 Web 应用程序的初始化参数、全局变量等。
  6. out:表示 JSP 页面输出流,可以将内容输出到客户端浏览器。
  7. config:表示 Servlet 配置对象,用于获取 Servlet 的配置信息。
  8. page:表示当前 JSP 页面对象,可以访问当前页面的属性和方法。
  9. exception:表示 JSP 页面中发生的异常对象,用于处理异常信息。

这些内置对象在 JSP 页面中都可以直接使用,它们可以帮助开发人员方便地访问和操作 HTTP 请求、HTTP 响应、HTTP 会话、Servlet 配置等信息,简化了 JSP 页面的开发。

9)简述什么是 Session?(6 分)

Session 是一种在 Web 应用程序中保存用户状态信息的机制,用于跟踪用户的会话状态。在用户访问 Web 应用程序时,服务器会为每个用户创建一个 Session 对象,用于保存用户的状态信息,如登录状态、购物车信息等。Session 可以在不同的页面之间共享,可以方便地保存和传递用户的状态信息。

Session 的工作原理如下:

  1. 当用户第一次访问 Web 应用程序时,服务器会为该用户创建一个 Session 对象,并生成一个唯一的 Session ID。
  2. 服务器会将 Session ID 发送给客户端浏览器,通常是通过 Cookie 或 URL 重写的方式。
  3. 当用户访问 Web 应用程序的其他页面时,浏览器会将 Session ID 发送给服务器,服务器根据 Session ID 找到对应的 Session 对象,从而获取用户的状态信息。
  4. 当用户关闭浏览器或超时时,服务器会销毁该用户的 Session 对象,释放资源。

Session 的主要特点包括:

  1. 可跨页面共享:Session 可以在不同的页面之间共享,可以方便地保存和传递用户的状态信息。
  2. 安全性高:Session ID 是由服务器生成的唯一标识符,相对安全,不易被伪造。
  3. 可控性强:Session 可以设置超时时间和最大空闲时间等属性,可以避免资源浪费和安全问题。
  4. 存储容量限制: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";
	}
}

评论