当前位置: 首页 > news >正文

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程序信息流向可变化,更像交易中心。

相关文章:

Java EE面试题解析(下)

21、 什么是Servlet&#xff1f;【掌握】 Servlet是使用Java Servlet应用程序接口&#xff08;API&#xff09;及相关类和方法的Java程序。所有的Servlet都必须要实现的核心接口是javax.servlet.servlet。每一个Servlet都必须要直接或者间接实现这个接口&#xff0c;或者继承j…...

从零开始手写mmo游戏从框架到爆炸(二十一)— 战斗系统二

导航&#xff1a;从零开始手写mmo游戏从框架到爆炸&#xff08;零&#xff09;—— 导航-CSDN博客 上一章&#xff08;从零开始手写mmo游戏从框架到爆炸&#xff08;二十&#xff09;— 战斗系统一-CSDN博客&#xff09;我们只是完成了基本的战斗&#xff0c;速度属性并没有…...

强化学习入门(Matlab2021b)-创建环境【3】

目录 1 前言2 根据类模板创建自定义环境2.1 创建类模板2.2 Environment properties(环境特性)2.3 Required Functions(需要的环境方法)2.3.1 Constructor function(构造函数)2.3.2 reset function2.3.3 step function2.4 Optional Functions(可选的环境方法)2.5 Environment Vi…...

C++如何避免float误差?

C如何避免float误差&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; …...

深信服技术认证“SCCA-C”划重点:深信服超融合HCI

为帮助大家更加系统化地学习云计算知识&#xff0c;高效通过云计算工程师认证&#xff0c;深信服特推出“SCCA-C认证备考秘笈”&#xff0c;共十期内容。“考试重点”内容框架&#xff0c;帮助大家快速get重点知识 划重点来啦 *点击图片放大展示 深信服云计算认证&#xff08;S…...

Vue3路由元信息

路由元信息即定义路由时的meta信息 使用路由元信息定义页面在浏览器显示的标题 定义路由 const router createRouter({history:createWebHistory(import.meta.env.BASE_URL),routes:[{path:"/",component:()>import("/components/Login.vue"),meta:{…...

实用区块链应用:去中心化投票系统的部署与实施

一、需求分析背景 随着技术的发展&#xff0c;传统的投票系统面临着越来越多的挑战&#xff0c;如中心化控制、透明度不足和易受攻击等问题。为了解决这些问题&#xff0c;我们可以利用区块链技术去中心化、透明性和安全性来构建一个去中心化投票系统。这样的系统能够确保投票过…...

Flink中的双流Join

1. Flink中双流Join介绍 Flink版本Join支持类型Join API1.4innerTable/SQL1.5inner,left,right,fullTable/SQL1.6inner,left,right,fullTable/SQL/DataStream Join大体分为两种&#xff1a;Window Join 和 Interval Join 两种。 Window Join又可以根据Window的类型细分为3种…...

协程源码 launch 流程跟踪学习

为了更深入学习协程的底层实现原理&#xff0c;了解协程线程切换的根本本质。也为了以后在工作中可以根据不同的需求场景&#xff0c;更加随心所欲的使用不同的协程。 今天通过 launch 跟踪一下协程的执行流程。 fun getData() {Trace.beginSection("getData");Log.…...

苍穹外卖Day02——总结2

前期文章 文章标题地址苍穹外卖Day01——总结1https://blog.csdn.net/qq_43751200/article/details/135466359?spm1001.2014.3001.5501苍穹外卖Day01——解决总结1中存在的问题https://lushimeng.blog.csdn.net/article/details/135473412 总结2 前期文章1. 新增员工模块1.1 …...

探索Nginx:一款高效、稳定的Web服务器和反向代理工具

在网站性能优化和架构设计中&#xff0c;Nginx以其高性能、低资源消耗和良好的扩展性成为了许多开发者和服务器管理员的首选。本文将为您详细介绍Nginx的概念、特点、安装、配置和使用&#xff0c;帮助您更好地了解并运用这款优秀的工具。 一、Nginx简介 Nginx&#xff08;发…...

文案改写软件,高效改文案的方法

在互联网飞速发展的今天&#xff0c;文案的重要性在营销和传播中变得越发突出。而高质量的文案内能够吸引人们的注意力&#xff0c;打动他们的心弦&#xff0c;这样更能促使他们产生需求。然而&#xff0c;想要写一篇引人入胜的文案并不容易&#xff0c;需要时间和经验来调整和…...

黑马头条-day10

文章目录 app端文章搜索1、文章搜索1.1 ElasticSearch环境搭建1.2 索引库创建①需求分析②ES导入数据场景分析③创建索引和映射 1.3 索引数据同步①app文章历史数据导入ES②文章实时数据导入ES 1.4 文章搜索多条件复合查询①关键词搜索②搜索接口定义 2、搜索历史记录2.1 需求说…...

C++的stack容器->基本概念、常见接口

#include<iostream> using namespace std; #include <stack> //栈stack容器常用接口 void test01() { //创建栈容器 栈容器必须符合先进后出 stack<int> s; //向栈中添加元素&#xff0c;叫做 压栈 入栈 s.push(10); s.push(20); s…...

VUE中引入外部jquery.min.js文件

jquery官网&#xff1a;https://jquery.com/ cdn链接&#xff1a;https://code.jquery.com/jquery-3.7.1.js <template><div class"">测试jq<div id"jq">这是一个盒子</div></div> </template><script> import…...

MongoDB聚合运算符:$avg

$avg运算符返回给定数值的平均值 $avg可用于以下阶段&#xff1a; $addFields阶段(从MongoDB 3.4开始可用)$bucket阶段$bucketAuto阶段$group阶段包含$expr表达式的$match阶段$project阶段$replaceRoot阶段(从MongoDB 3.4开始可用)$replaceWith阶段(从MongoDB 4.2开始可用)$s…...

Web 前端 UI 框架Bootstrap简介与基本使用

Bootstrap 是一个流行的前端 UI 框架&#xff0c;用于快速开发响应式和移动设备优先的网页。它由 Twitter 的设计师和工程师开发&#xff0c;现在由一群志愿者维护。Bootstrap 提供了一套丰富的 HTML、CSS 和 JavaScript 组件&#xff0c;可以帮助开发者轻松地构建和定制网页和…...

【Python笔记-设计模式】惰性评价模式

一、说明 将某些对象的创建或计算延迟到真正需要它们的时候&#xff0c;以减少不必要的资源消耗和提高性能。 惰性评价在Python中实现也成为生成器&#xff0c;一般通过yield关键字实现。 (一) 解决问题 在处理大量数据时&#xff0c;使用惰性加载可以避免一次性加载所有数…...

每日学习总结20240221

每日总结 20240221 花自飘零水自流。一种相思&#xff0c;两处闲愁。 —— 李清照「一剪梅红藕香残玉簟秋」 1. stat 在Linux中&#xff0c;stat 是一个用于显示文件或文件系统状态的命令行工具。它提供了关于文件的详细信息&#xff0c;包括文件类型、权限、大小、所有者、修…...

学生成绩管理系统(C语言课设 )

这个学生成绩管理系统使用C语言编写&#xff0c;具有多项功能以方便管理学生信息和成绩。首先从文件中读取数据到系统中&#xff0c;并提供了多种功能&#xff08;增删改查等&#xff09;选项以满足不同的需求。 学生成绩管理系统功能: 显示学生信息增加学生信息删除学生信息…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出&#xff1a;JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中&#xff0c;随机数的生成看似简单&#xff0c;却隐藏着许多玄机。无论是生成密码、加密密钥&#xff0c;还是创建安全令牌&#xff0c;随机数的质量直接关系到系统的安全性。Jav…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...