Java EE面试题解析(下)

21、 什么是Servlet?【掌握】

Servlet是使用Java Servlet应用程序接口(API)及相关类和方法的Java程序。所有的Servlet都必须要实现的核心接口是javax.servlet.servlet。每一个Servlet都必须要直接或者间接实现这个接口,或者继承javax.servlet.GenericServlet或 javax.servlet.HTTPServlet。

Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。

22、 Request对象的作用?【掌握】

获取请求参数,对应方法:getParameter();

获取当前Web应用的虚拟路径,对应方法: getContextPath();

获取当前Web应用的上下文对象ServletContext,对应方法:getServletContext();

请求转发,对应方法:getRequestDispatcher(路径).forward(request,response);

储存数据,request还是一个域对象。

23、 如何防止表单重复提交?【重点】

针对于重复提交的整体解决方案:

用redirect(重定向)来解决重复提交的问题;

点击一次按钮之后,按钮失效;

Loading原理:在点击提交时,生成Loading样式,在提交完成之后隐藏该样式;

自定义重复提交过滤器。

24、 JSP的四大作用域范围?【掌握】

Jsp中的四种作用域包括page、request、session和application,具体来说:

page代表与一个页面相关的对象和属性,对应的对象是:pageContext。

request代表Web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个Web组件;需要在页面显示的临时数据可以置于此作用域,对应的对象是:request。

session代表某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的session中,对应的对象是:session。

application代表与整个Web应用程序相关的对象和属性,它实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域,对应的对象是:servletContext。

25、 JSP中时间格式化?【掌握】

第一步,在JSP页面添加标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

第二步,进行格式化:<fmt:formatDate pattern="yyyy-MM-dd" value="${t.time }"/>

26、 Ajax与Json的优点?【重点】

Ajax是异步JavaScript和xml,用于在web页面中实现异步数据交互。

优点:可以在页面不重复加载的情况下加载局部内容,降低数据传输量。

Json是一种轻量级的数据交互格式。

优点:轻量级,易于阅读和编写,便于解析。

27、 Ajax同步和异步的区别?【重点】

同步:提交请求->等待服务器处理->处理完毕返回,这个期间客户端浏览器不能干任何事。

异步:请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理完毕。

28、 AJAX的工作原理?以及实现步骤?【掌握】

工作原理:

客户端通过Javascript提交Ajax请求。

Ajax引擎(XMLHttpRequest对象,包含在浏览器中)服务器发送Http请求。

服务器端处理请求后返回相应(XML/JSON/HTML)格式数据。

Ajax引擎解析数据后,通过DOM+CSS修改页面元素、改变样式,实现局部刷新。

实现步骤:

创建XMLHttpRequest对象。

创建请求,并发送请求。

处理请求回调。

示例代码:

function doAjax() {

var provinceName=document.getElementById("provinceName").value;

var xhr;

try {

// Firefox, Opera 8.0+, Safari

xhr = new XMLHttpRequest();

} catch (e) {

try {

// Internet Explorer

xhr = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

    xhr = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {}

}

}

//使用post方式异步请求

xhr.open("post", "Test/IsExistsByProvinceName?t="+new Date().getTime(), true);

//设置回调函数

xhr.onreadystatechange = function(){

//如果XMLHttpRequest对象读取响应结束

if (xhr.readyState == 4&&xhr.status == 200) {

if(xhr.responseText=="true")

document.getElementById("provinceName_info").innerHTML="该省份已经存在";

else

document.getElementById("provinceName_info").innerHTML="";

}

};

//如果以post方式请求,必须要添加

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

//发送请求

xhr.send("provinceName="+provinceName);

}

29、 Web开发中,http协议工作流程是什么? 【重点】

创建Http连接。

初始化方法请求。

设置HTTP请求头。

发送请求。

读取请求。

调用方法。

初始化方法响应。

设置HTTP响应头。

发送响应。

关闭连接。

30、 BS与CS的联系与区别?【了解】

硬件环境不同:

C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务。

B/S建立在广域网之上的,不必是专门的网络硬件环境,信息自己管理。比 C/S 更强的适应范围,一般只要有操作系统和浏览器就行。

安全要求不同:

C/S一般面向相对固定的用户群,对信息安全的控制能力很强,一般高度机密的信息系统采用C/S结构适宜。

B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。

程序架构不同:

C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。

B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上。比C/S有更高的要求,B/S结构的程序架构是发展的趋势。

软件重用不同:

C/S程序的重用性不如B/S的重用性好。

B/S程序构建相对独立的功能,能够相对较好的重用。

系统维护不同:

C/S程序必须整体考察,处理出现的问题以及系统升级都比较难,有可能是再做一个全新的系统;

B/S程序方便个别组件的更换,实现系统的无缝升级、系统维护开销减比较小,客户端无需升级,只针对服务器端维护即可。

处理问题不同:

C/S程序主要处理用户面相对固定、并且在相同区域、安全要求高、与操作系统相关的情况。

B/S建立在广域网上、面向不同的用户群、分散地域,与操作系统平台关系最小。

用户接口不同:

C/S多是建立的Window平台上,开发难度比较大,对程序员普遍要求较高;

B/S建立在浏览器上,开发难度相对较低,开发成本相对较低。

信息流不同:

C/S程序一般是典型的中央集权的机械式处理,交互性相对低;

B/S程序信息流向可变化,更像交易中心。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/690467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThreadLocal “你”真的了解吗?

今天想梳理一个常见的面试题。在开始之前&#xff0c;让我们一起来回顾一下昨天的那篇文章——《Spring 事务原理总结七》。这篇文章比较啰嗦&#xff0c;层次也不太清晰&#xff0c;所以以后有机会我一定要重新整理一番。这篇文章主要想表达这样一个观点&#xff1a;Spring的嵌…

基于SpringBoot+Vue的零食零售管理系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

Rocky Linux 下载安装

一、VMware Workstation下载安装 1、安装教程 VMware Workstation下载安装&#xff08;含密钥&#xff09; 二、VMware Workstation 创建虚拟机 1、创建教程 VMware Workstation 创建虚拟机 三、Rocky Linux 下载 1、下载官网 RockyLinux.org 2、选择X86架构_64位系统_DVD镜…

部分回溯法题解

部分回溯法题解 一、22. 括号生成二、39. 组合总和 一、22. 括号生成 中 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[“((()))”,“(()())…

javascript 中的class 和typescript中的class的区别

JavaScript 中的类&#xff08;class&#xff09;和 TypeScript 中的类有一些相似之处&#xff0c;但 TypeScript 在其类的定义和使用方面引入了一些额外的功能和语法糖&#xff0c;以提供更严格的类型检查和更丰富的面向对象编程功能。下面是一些主要的区别&#xff1a; 类型注…

【第61例】市场管理MM流程:定价策略

目录 1. 内容简介 2. 为什么要做定价? 3. 一些主流的定价策略 作者简介 1. 内容简介 在之前的内容&#

1.网络游戏逆向分析与漏洞攻防-游戏启动流程漏洞-测试需求与需求拆解

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;分析接收到的对话数据包 这是一个新的篇章&#xff0c;之前是关于把我们的东西放进游戏里和内存里的数据分析与利用&#xff0c;现在是专注于网络部分&#xff0c;通过分析网络数据包得到应用程序中各…

什么是MVVM?MVC、MVP与MVVM模式的区别?

MVVM&#xff08;Model-View-ViewModel&#xff09;是一种软件架构模式&#xff0c;用于将用户界面&#xff08;View&#xff09;与业务逻辑&#xff08;Model&#xff09;分离&#xff0c;并通过ViewModel来连接两者。MVVM的目标是实现可测试性、可维护性和可复用性。 MVC&am…

Python安装GDAL库

目录 一、GDAL介绍 二、GDAL应用 三、python安装GDAL库 一、GDAL介绍 GDAL&#xff08;Geospatial Data Abstraction Library&#xff09;是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式&#xff0c;并且提供了一系列命令…

基于Spring Boot的智能物流管理系统,计算机毕业设计(带源码+论文)

源码获取地址&#xff1a; 码呢-一个专注于技术分享的博客平台一个专注于技术分享的博客平台,大家以共同学习,乐于分享,拥抱开源的价值观进行学习交流http://www.xmbiao.cn/resource-details/1759581137025445890

linux基础学习(10):基本权限与相关命令

1.基本权限 用ls -l查看当前目录文件时&#xff0c;可以看到文件的基本权限 其由10位组成&#xff0c;其中&#xff1a; 第1位&#xff1a;代表文件类型。 - d lbc普通文件目录文件软链接文件块设备文件&#xff0c;也就是硬盘等存储设备的文件字符设备文件&#xff0c;是鼠…

详解MySQL增删查改

众所周知&#xff0c;MySQL是非常重要的数据库语言&#xff0c;下面我们来回顾一下mysql的增删查改吧 MySQL创建数据库&#xff1a; CREATE DATABASE 数据库名;MySQL删除数据库&#xff1a; DROP DATABASE <database_name>; --直接删除&#xff0c;不检查是否存在 DROP…

外包干了3个多月,技术退步明显。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

【LUA】时间面板显示

最近看了个HS的时间显示的例子&#xff0c;顺便学习了一下这个lua定义函数的方法&#xff0c;被折腾了许久&#xff0c;最后竟然是gpt解答了。 定义方式 -- 定义一个对象 local myObject {isVisible false, }-- 定义对象的方法 function myObject:toggleShow()self.isVisibl…

代码随想录算法训练营29期|day54 任务以及具体安排

第九章 动态规划part11 123.买卖股票的最佳时机III // 版本一 class Solution {public int maxProfit(int[] prices) {int len prices.length;// 边界判断, 题目中 length > 1, 所以可省去if (prices.length 0) return 0;/** 定义 5 种状态:* 0: 没有操作, 1: 第一次买入…

OpenCV中图像的HSV色彩空间

在HSV 色彩空间中H, S, V 这三个通道分别代表着色相(Hue)&#xff0c;饱和度(Saturation)和明度(Value)&#xff0c; 原本输出的HSV 的取值范围分别是0-360, 0-1, 0-1; 但是为了匹配目标数据类型OpenCV 将每个通道的取值范围都做了修改,于是就变成了0-180, 0-255, 0-255 impo…

RabbitMQ保证消息的可靠性

1. 问题引入 消息从发送&#xff0c;到消费者接收&#xff0c;会经理多个过程&#xff1a; 其中的每一步都可能导致消息丢失&#xff0c;常见的丢失原因包括&#xff1a; 发送时丢失&#xff1a; 生产者发送的消息未送达exchange消息到达exchange后未到达queue MQ宕机&…

Leetcode 21-25题

合并两个有序链表 将两个升序链表合并为一个新的升序链表。 用两个指针指向两个链表的表头&#xff0c;然后每次比较一下哪个值小&#xff0c;将较小的节点接到答案后面即可。 ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {auto dummy new ListNode(), p du…

EI级 | Matlab实现TCN-GRU-MATT、TCN-GRU、TCN、GRU多变量时间序列预测对比

EI级 | Matlab实现TCN-GRU-MATT、TCN-GRU、TCN、GRU多变量时间序列预测对比 目录 EI级 | Matlab实现TCN-GRU-MATT、TCN-GRU、TCN、GRU多变量时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 【EI级】Matlab实现TCN-GRU-MATT、TCN-GRU、TCN、GRU多变量时间…

云原生概念

云原生是一条使用户能&#xff1a; 1.低运维、 2.敏捷的、 3.以可扩展、可复制的方式&#xff0c; 最大化的利用”云“的能力、发挥”云“的价值的最 佳路径 云原生&#xff0c;是一条最佳路径或实践 参考&#xff1a;https://edu.aliyun.com/course/314164/lesson/7815