计算机答辩常见问题汇总(一)

答辩过程中,老师问的问题一般都和你的设计有关,特别是设计中的一些关键技术,比如:

数据库链接方式,数据库设计中的 ER 图、范式等。一般不会太难,都是一些学过的知识。

用到的所有概念都了解(例如用的 MVC 设计模式、SSM 框架)都要知道概念和优缺点

都是增删改查操作

毕业答辩问题与答案(回答一定要温柔,不要顶嘴)

遇到不会的问题:

1SSM 框架是指什么,其优缺点,怎样用到在你的程序里

Spring:全栈轻量级开源框架

容器框架,可以接管 web 层业务层,dao 层,持久层的合格组件,并且可以

配置各种 bean

spring MVC:基于 Java 实现的 MVC 设计模式请求驱动类型的轻量级 Web 框架

mybatis:持久层的一个框架,方便对数据库操作,封装 JDBC,原始 jdbc 操作繁琐

核心逻辑代码在 controlle

Controller 层通过调用 servi

里面

l 里的接口调用 mybatis 层的 mapper 里的 SQL 语句

trollercontroller 再返回给前端 view 层显示

SQL 语句执行完毕后反馈数据

业务逻辑:controller->service 接口->serviceimpl->dao 接口->daoimpl->mapper->datebase

Controller 入口->service 业务逻辑处理(接口)->dao 访问数据库->引用 mapper 最终执

行数据库->引用 entity 与数据库的映射对象

Controller 是控制器,连接页面请求服务器获取页面请求的参数,通过自动装配映

射不同的 url 到相应的处理函数。

访问数据库通过 dao 层。Dao 是数据库接口,只是一个接口,实际的实现都在 mapper

里面

2Mybatis

mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注

sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过

程。

mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和

statement  sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行

sql 并将结果映射为 java 对象并返回。

MyBatis 的主要设计目的就是让我们对执行 SQL 语句时对输入输出的数据管理更加方便,

所以方便地写出 SQL 和方便地  SQL 的执行结果才是 MyBatis 的核心竞争力。

3打开代码,介绍一下这

能的 mapper 的作用是什么?

mapper 层的作用是对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的

现在用 mybatis 逆向工程生成的。

mapper 层,其实就是 dao 层,主要是做数据持久层的工作,负责与数据库进行联络的一

些任务都封装在此。

其设计首先是设计 DAO 的接口,然后在 Spring 的配置文件中定义此接口的实现类,然后就

可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,

显得结构非常清晰。

4JDBC

Java 数据库连接, Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口

提供了诸如查询和更新数据库中数据的方法。

5jQuery

UI 前端框架

实现网页的客户端响应效果

6B/S  C/S 架构的区别?

BS:(Browser/Scrver,浏览器/服务器模式),web 应用可以实现跨平台,客户端零维护,但是个

性化能力低,响丛速度较慢。

.CS:(Client/Server,客户端/服务器模式),桌面级应用响应速度快,安全性强,个性化能力强,

响应数据较快

一、网络不同

1b/s 架构:b/s 架构主要用于外网,可通过广域网进行访问。

2c/s 架构:c/s 架构主要用于内网,建立在专用的网络上,小范围里访问。

二、安全性不同

1b/s 架构:b/s 架构的安全性较低,容易受到他人的网络入侵。

2c/s 架构:c/s 架构的安全性较高,封闭式网络不容易容易受到他人的网络入侵。

C/S:全称是 Client/Server ,是客户端/服务器架构。主要应用于局域网内。是一种典型的

两层架构。客户端:用户程序(表示层) 服务器端:一种是数据库服务器,一种是 Socket

服务器。(数据库层)

B/S       Browser/Server     /          广    

Browser 客户端:只有简单的输入输出功能

webapp 服务器端:

数据库端:存放大量数据

7springMVC 工作原理

SpringMVC  DispatcherServlet(前端控制器)为核心

负责协调和组织不同组件以完成请求处理并返回响应的工作,实现了 MVC 模式

1.Spring  SpringMvc 的关系:

SpringMVC 是一个 MVC 的开源框架,SpringMVC  Spring 的一个后续产品,其实就是

Spring 在原有基础上,又提供了 web 应用的 MVC 模块,可以简单的把 SpringMVC 理解为是

spring 的一个模块(类似 AOPIOC 这样的模块),网络上经常会说 SpringMVC  Spring 

缝集成,其实 SpringMVC 就是 Spring 的一个子模块,所以根本不需要同 spring 进行整合。

SpringMvc 工作流程

第一步:用户发起请求到前端控制器DispatcherServlet

第二步:前端控制器请求处理器映射器HandlerMappering)去查找处理器(Handle):通

 xml 配置或者注解进行查找

第三步:找到以后处理器映射器(HandlerMappering )像前端控制器返回执行链

HandlerExecutionChain

第四步:前端控制器(DispatcherServlet)调用处理器适配器HandlerAdapter)去执行

理器(Handler

第五步:处理器适配器去执行 Handler

第六步:Handler 执行完给处理器适配器返回 ModelAndView

第七步:处理器适配器向前端控制器返回 ModelAndView

第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析

第九步:视图解析器像前端控制器返回 View

第十步:前端控制器对视图进行渲染

第十一步:前端控制器向用户响应结果

8SSM 业务逻辑

Controller 通过调用 serviceimpl 里的接口调用 model 层的 mapper 里的 sql 语句,sql 执行完

毕后反馈数据给 controller 层,controller 再返回给前端 view 层显示

Eg:商品编辑功能

1 页面点击编辑按钮,form 表单中的 action=communitylist”响应,communitylist

 controller 中的@requstMapping(/***)中的参数一样

2 controller 层从前端页面

提交的参数,创建 map 对象,封装参数于 map 

  service             map           

request.setAttribute(  commodity  , commodity); notice  @controller

@requestMaping  controller 中每创建一个对象都要引入注解@Autowired

3 serviceimpl    service               

@Service(CommodityService)

同时在实现层创建 Dao 层的对象也需要加入自动注入@Autowired 这个注解。在重

写方法上加入重写注解@override

并在重写方法中调用 DAO 层的方法。

4 dao 层引入注解@mapper,在 mapper 层的.xml 文件中进行 sql 语句的操作。

5 其中的 namespace 中写的是 dao 层的全路径;其中增删改查标签中的 id  Dao 

对应的方法名

9JavaScript

 HTML 页面添加 JavaScript,使得网站的动态性和交互性更强

10Jquery

jQuery  JavaScript 库,简化了 JavaScript 编程

11JSP

Java server pages 动态网页编程技术,实现了在 Java 中使用 HTML 标签,在服务器端执

12MVC 设计模式框架是指什么,其优缺点,怎样用到在你的程序

在我们实际开发的最后到产品上线,供给客户使用,客户通过浏览器或者 app 等进行

数据的操作,实现这个的有,处理发送请求,业务逻辑处理以及访问数据库

这三个功能我们是可以放到一块使用的,但是如果放在一起,代码便会很臃肿,不利

于维护,于是便出现了代码分层思想,把代码按照功能分为三层,即模型层(Model)、显示

(View)、控制层(Controller),这种代码的组织架构就叫 MVC 模式

模型层(Model):在模型层中又可以分为两层,即 Service 层和 Dao ,这两层的主要功能是

Service :负责一些业务处理,比如说:获取数据库连接,关闭数据库连接,事务回滚或者

一些复杂的逻辑业务处理

Dao 层:(Database Accept Object) 负责访问数据库,对数据的操作,获取结果集,将结果

集中的数据装到 OVObject Value)对象中,之后再返回给 Service 

Controller :处理用户请求

View 层:主要负责显示数据(HtmlCssjQuery 等等)

一种设计模式,分层设计思想

Mmodel 模型

Vview

Ccontroller

13、前端用到了什么技术(例如 CSSHTML

14controller 代码

@RequestMapping(value = "/register",method = RequestMethod.GET)

public ModelAndView register(ModelAndView model){

model.addObject("title", "用户注册");

model.setViewName("home/index/register");

return model;

}

这是定义的接口,这个是 register 接口

15msg  message 的缩写

16、服务器(web 服务器)

Tomcat 端口号 8080/8088

16 Axios

Axios,是一个基于 promis

网络请求库,作用于 node.js 浏览器中,它是

行在浏览器和 node.js )。在服务端它使用原生

isomorphic (即同一套代码可

node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequest

17Ajax

请求 url ,请求类型 post get , 同步异步,参数

前端往后端提交

异步提交

无需重新加载整个页面,能够更新部分页面内容

Ajax 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从

服务器请求少量的信息,而不是整个页面

刷新局部网页,只刷新网页的某一部分

Ajax 是异步 JavaScript  XML,是一种用于创建快速动态网页的技术,通过在后台与

服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加

载整个网页的情况下,对网页的某部分进行更新。

同步与异步的区别

同步提交:当用户发送请求时,当前页面不可以使用,服务器响应页面到客户端,响应完

成,用户才可以使用页面。

异步提交:当用户发送请求时,当前页面还可以继续使用,当异步请求的数据响应给页面,

页面把数据显示出来

创建了 XMLHttpRequest 对象之后,必须为 XMLHttpRequest 对象创建 HTTP 请求,用于

说明 XMLHttpRequest 对象要从哪里获取数据。通常可以是网站中的数据,也可以是本地

中其他文件中的数据。

URL:该参数用于指定 HTTP 请求的 URL 地址,可以是绝对 URL,也可以是相对 URL

18、为什么选用 MySQL 数据库(看你用的是什么数据库)

19、采用的什么数据库,数据库端口号

MYSQL 一般端口号是 3306 开源免费、运行速度快、可移植性高

20、页面怎么传值?

Post 表单提交

Get 请求

url 地址传值

1. 当点击登录按钮时,通过按钮触发页面 ajax 请求【请求方式分为 POST(有数据返回页

面)和 GET(无返回)】,前端数据通过 json 进行传递。根据 ajax 中的配置 URL 找到对

应的 controller 方法。然后从 controller 层发送到 service 层再通过实现类发送到 DAO 层,

dao 层再根据 mybatis  XML 的映射关系找到对应的 SQL 进行数据库,进行相应处理。

简述:用 ajax 发送前端请求到后端处理,并返回数据。通过 json 进行传递。

用户登录如何实现的:简述+服务器比对用户输入的用户名密码于数据库中的用户名密

码是否一致。

 更多源码获取:

宫众浩         文心海资源库~

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

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

相关文章

鸿蒙原生应用元服务开发-Web相关说明

Web组件用于在应用程序中显示Web页面内容,为开发者提供页面加载、页面交互、页面调试等能力。 页面加载:Web组件提供基础的前端页面加载的能力,包括加载网络页面、本地页面、Html格式文本数据。 页面交互:Web组件提供丰富的页面交…

css 子元素 圆 均匀分布 展开动画

一般情况下使用scss就可以实现 import "math";#app {display: flex;align-items: center;justify-content: center;width: 200px;height: 200px;position: relative;border-radius: 50%;border: 1px solid #000;> span {position: absolute;display: flex;align-…

什么是HTTP/2?

HTTP/2(原名HTTP 2.0)即超文本传输协议第二版,使用于万维网。HTTP/2主要基于SPDY协议,通过对HTTP头字段进行数据压缩、对数据传输采用多路复用和增加服务端推送等举措,来减少网络延迟,提高客户端的页面加载…

Java数组(如果想知道Java中有关数组的知识点,那么只看这一篇就足够了!)

前言:数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同,Java 语言中提供的数组是用来存储固定大小的同类型元素。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSD…

PixelYourSite PRO插件下载:提升网站性能与用户体验的终极解决方案

在数字时代,网站的性能和用户体验是企业成功的关键。PixelYourSite PRO插件是专为WordPress网站设计的一款高效工具,旨在通过先进的像素管理和优化技术,提升网站加载速度,增强用户互动,从而显著提高转化率。 一、为什…

智慧便民小程序源码系统 求职招聘+房产出租+相亲交友 带完整的安装代码包以及系统搭建教程

在数字化、智能化的今天,我们的生活节奏越来越快,对于各种服务的需求也越发多元化和个性化。为了满足广大市民对于便捷、高效、全面的服务需求,罗峰给大家分享一款智慧便民小程序源码系统,集求职招聘、房产出租、相亲交友三大功能…

深入理解指针(4)

目录 1. 字符指针变量2. 数组指针变量2.1 数组指针变量是什么?2.2 数组指针变量怎么初始化 3. ⼆维数组传参的本质4. 函数指针变量4.1 函数指针变量的创建4.2 函数指针变量的使⽤4.3 两段有趣的代码4.3.1 typedef 关键字 5. 函数指针数组6. 转移表 1. 字符指针变量 …

Redis7降级到Redis6如何AOF备份恢复(错的)

Redis7降级到Redis6如何AOF备份恢复(错的) 前提:从始至终开启AOF 介绍的Docker安装的Redis,不是Docker也一样,差不多 一、data目录差异 redis版本7 - /data/appendonlydir - appendonly.aof.manifest - appendo…

条件变量详解

概述 条件变量是限制线程执行的一种机制,即在某些条件满足之前限制线程的执行。这种限制的目的,大多是为了减少线程之间信息闭塞,达到线程同步,从而提高线程之间的通信效率。 线程中访问共享数据的代码常常带有一定的逻辑顺序&a…

处理解决python

1、问题现象: ModuleNotFoundError: No module named pkg_resources 2、解决方案 安装pip install setuptools即可解决:

Windows环境下VSCode C无法跳转自动补全

前言: 本文记录了自己在配置 Windows环境下 VSCode C开发环境的遇到的问题和解决方法。 参考: vscode c语言没有代码提示_clangd提示不生效-CSDN博客 VSCODE无法跳转_vscode 不能跳转-CSDN博客 vscode c/c环境配置(MinGW)调用第三官方库…

华为OD机试 - 反射计数 - 矩阵(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

Vulstack红队评估(一)

文章目录 一、环境搭建1、网络拓扑2、web服务器(win7)配置3、域控(winserver2008)配置4、域内机器(windows 2003)配置5、调试网络是否通常 二、web渗透1、信息搜集2、端口扫描3、目录扫描4、弱口令5、phpmyadmin getshell日志gets…

OBS插件--声音波形显示

声音波形显示 波形显示是一个可以定制化的动态音频频谱图案,可以多音频进行可视化,对于音乐类主播必不可少,通过灵活的配置选项可以设计出非常个性化的频谱图形。 下面截图演示下操作步骤: 首先,打开 OBS直播助手 在…

探索生命奥秘的新征程:谷歌AlphaFold 3发布!

大家好!今天和大家分享的是让人热血沸腾的消息——谷歌AlphaFold 3的发布!这次的新版本可不仅仅是一次升级,而是一次生物科技的革命! 回顾一下AlphaFold系列的历程,从AlphaFold 1的问世到AlphaFold 2的惊艳登场&#…

ChatGPT Web Midjourney一键集成最新版

准备工具 服务器一台 推荐使用浪浪云服务器 稳定 安全 有保障 chatgpt api 推荐好用白嫖的api 项目演示 项目部署 浏览器访问casaos 添加软件原添加 https://gitee.com/langlangy_1/CasaOS-AppStore-LangLangy/raw/master/chatmjd.zip 安装此软件 等待安装 安装后再桌面设置…

信息安全技术-分析题【太原理工大学】

没有历年题或明确说明大题会考什么,以下为个人猜测 简答题和选择判断占60,认真看题库和总结,能过d(^_^o) 好像说是加解密这类题会给公式让你直接套,但还是看一下基本原理,要不到时候蒙圈 1.加密算法步骤 图 1 是一个采…

Spring Boot | Spring Boot 整合 “异步任务“ 的实现

目录: 一、异步任务1.1 "无返回值" 异步任务调用 :① 创建项目② 编写 "异步调用方法" ( 使用 Async 注解 )③ "主程序启动类"中 开启基于 "注解" 的异步任务支持 ( 使用EnableAsync注解 )④ 编写 "控制层" 相关…

Linux 的相关应用

当涉及到 Linux 应用程序时,有许多优秀的选择。以下是一些在不同类别下你可能会喜欢的 Linux 应用程序: 1.网页浏览器:Google Chrome:功能强大且拥有完美的同步功能和丰富的扩展。Firefox:稳定且强大的网页浏览器。Vi…

从0到1构建AI agent【零代码】

一、前言 想象一下,如果AI的想象力被彻底释放,那将是一场怎样的革命?“大语言模型不过是个贪吃蛇,而AI Agent却能创造出‘王者荣耀’。”这不仅是网上的一句戏言,它预示着一个不可逆转的趋势。比尔盖茨更是一语中的&am…