Javaweb面试题(一)———更新中
Javaweb面试题
- 1.什么是B/S与C/S架构,区别?
- 2.GUI与CUI程序区别
- 3.静态网站和动态网站的区别
- 3.前端和后端的区别
- 3.MVC(Model-View-Controller)开发
1.什么是B/S与C/S架构,区别?
C/S架构是第一种比较早的软件架构,主要用于局域网内。也叫 客户机/服务器模式。
它可以分为客户机和服务器两层:
第一层: 在客户机系统上结合了界面显示与业务逻辑;
第二层: 通过网络结合了数据库服务器。
简单的说就是第一层是用户表示层,第二层是数据库层。
B/S架构的全称为Browser/Server,即浏览器/服务器结构。
Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。
B/S架构的系统无须特别安装,只有Web浏览器即可。
其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。
B/S架构的分层:
与C/S架构只有两层不同的是,B/S架构有三层,分别为:
第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。
第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
第三层数据层:主要是接受客户端请求后独立进行各种运算。
2.GUI与CUI程序区别
控制台用用程序CUI:
控制台程序是基于文本的,他一般不会创建窗口或者进程消息而且不需要GUi
GUI(图形用户界面)
GUI是图形化的前端,可以创建窗口,可以拥有菜单,能通过对话框与用户进行交互,能够使用标准的视窗化的标准,在window中几乎所有的应用附件程序都是GUI程序
3.静态网站和动态网站的区别
静态网页:
(1)静态网页不能简单地理解成静止不动的网页,他主要指的是网页中没有程序代码,只有HTML(即:超文本标记语言),一般后缀为.html,.htm,或者.xml等。虽然静态网页的页面一旦做成,内容就不会再改变了。但是,静态网页也包括一些能动的部分,这些主要是一些GIF动画等
(2)静态网页的打开,用户可以直接双击,并且不管任何人任何时间打开的页面的内容都是不变的。
动态网页:
(1)动态网页是指跟静态网页相对的一种网页编程技术。动态网页的网页文件中除了HTML标记以外,还包括一些特定功能的程序代码,这些代码可以使得浏览器和服务器可以交互,所以服务器端根据客户的不同请求动态的生成网页内容。
即:动态网页相对于静态网页来说,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
(2)动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术(如PHP、ASP、JSP等)生成的网页都可以称为动态网页。
3.前端和后端的区别
什么是前端开发?
前端,也称为“客户端开发”,简单来说,你可以在应用程序或网站的屏幕上看到的所有内容都属于前端。
网站和移动应用的前端
让我们考虑一个现实的例子:你正在访问的网站。内容设计、图像、段落和线条之间的间距,左上角的公司徽标,以及右下角的小通知按钮——所有这一切都是前端。
移动应用的前端与网站相同。例如,你在移动或 Web 应用中看到的内容,按钮、图像是前端的一部分。此外移动屏幕还具有触摸响应功能,因此当应用响应你所做的所有手势时,需要进行缩放放大/缩小、双击、滑动等操作。
前端开发人员构建所有的这些。它们创造了你在屏幕上看到的外观和触摸到的体验。
Ionic,Swift,Kotlin,Bootstrap,Angular,Vue,jQuery,React.js 是用于前端开发的一些工具和技术。
什么是后端开发?
后端,也称为“服务器端开发”,也就是在系统“后面”所发生的事情。同样,在后端服务器和浏览器或应用程序之间存储网站、应用数据和中间媒介的服务器都属于后端。简单来说,在应用程序或网站的屏幕上看不到的所有东西都是前端的后端。
网站和移动应用后端
网站的后端需要设置服务器,存储和检索数据,以及将这些服务器与前端进行连接的接口。如果说前端开发人员梗关注网站的外观,后端开发人员则更更关注网站的速度、性能和响应能力,后端通过编码、云 API 和数据库进行集成。
就像前端一样,移动应用的后端开发在各个方面都与网站后端相同。此外,你为移动应用设置后端服务器的选项包括:云计算(AWS,Firebase)定制服务器或 MBaaS(移动后端即服务)。
Ruby,Apache,Nginx,PHP,MySQL,MongoDB 等用于后端开发的工具和技术很少。
3.MVC(Model-View-Controller)开发
1.MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
2.控制器controller:对请求进行处理,负责请求转发,servlet
视图层view :界面设计 jsp
模型model :编写程序的应用功能,实现算法等,数据库管理,处理业务逻辑,封装实体对象,JavaBean
3.现在几乎所有的B/S结构的软件都采用了MVC 设计模式,但MVC模式在B/S结构的软件中并没有完全实现,例如有些并没有事件驱动
jsp model 1第一代
JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。
jsp model 1第二代
JSP Model1第二代有所改进,把业务逻辑的内容放到了JavaBean中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。
JSP Model2模式已经可以清晰的看到MVC完整的结构了。
JSP:视图层,用来与用户打交道。负责接收用来的数据,以及显示数据给用户;
Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图;
JavaBean:模型层,完成具体的业务工作,例如:开启、转账等。
javaweb经典三层架构
我们常说的三层框架是javaweb提出的,也就是javaweb独有的
所谓三层是 表述层(WEB) 业务逻辑层(business logic) 数据访问层(Data Acess)
(1)web层:包含jsp,servlet等与web相关的内容
(2)业务层:只关心业务逻辑
(3)数据层:封装了对数据库访问细节
最终软件(网站)的代码结构是,View层是界面,Controller层是业务逻辑,Model层是数据库访问。
Javaweb面试题(一)———更新中相关推荐
- 2020年Java面试题及答案_Java面试宝典_Java笔试题(持续更新中)
推荐面试视频教程 2019年最新Java互联网大厂面试精粹 前言 前言: 少年易老学难成,一寸光阴不可轻.未觉池塘春草梦,阶前梧叶已秋声 .-朱熹<劝学诗> 勤奋才是改变你命运的唯一捷径. ...
- 美团点评、小米、菜鸟等等目前遇到的面试题(更新中)
美团面试题: 1.为什么要用SOA?有什么好处? 面向服务编程,是一种思想,一种方法论,一种分布式的服务架构, SOA是⼀种软件架构,它⽤于构建由⼀组松耦合,⿊盒组件组成的商业应⽤.每个组件代表 一个 ...
- SpringBoot面试题大汇总附答案,SpringBoot面试题-持续更新中
2021最新SpringBoot面试题[附答案解析]SpringBoot面试题及答案2021,SpringBoot2021最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是 ...
- Dubbo面试题及答案,2021年Dubbo面试题-持续更新中
2021最新Dubbo面试题[附答案解析]Dubbo面试题及答案2021,Dubbo最新面试题及答案,Dubbo面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的.这些答 ...
- html+css面试题(更新中)
html面试题 「学习笔记」HTML基础 (qq.com) (17条消息) html面试题总结_Mr.Gu的博客-CSDN博客 (17条消息) HTML面试题_萌萌哒の瑞萌萌的博客-CSDN博客 文章 ...
- java史上最全面试题--持续更新中(一)
1.面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类. 继承:基于基类创建新类. 封装:将数据隐藏起来,对数据的访问只能通过特定接口. 多态性:不同子类型对象对相同消息作出不同响应 ...
- 史上最全的spark面试题——持续更新中
1.spark中的RDD是什么,有哪些特性? 答:RDD(Resilient Distributed Dataset)叫做分布式数据集,是spark中最基本的数据抽象,它代表一个不可变,可分区,里面的 ...
- 100道最常见的校招前端面试题(更新中)
Http协议中Post和Get方法的区别? Get请求比Post执行更有效率,是因为浏览器在发送Post请求时,会先将请求头发送给服务器确认,服务器返回100 continue响应后,浏览器才开始发送 ...
- 初级前端面试题(更新中)
一.html+css 1.css 实现元素水平垂直居中 1.1绝对定位(已知宽高) width:100px;height: 100px;position: absolute;left: 50%;top ...
- 高级运维工程师面试题(更新中)
2019独角兽企业重金招聘Python工程师标准>>> senior operations engineer Mar 3, 2016 高级运维工程师 服务器硬件 RAID 磁盘阵列 ...
最新文章
- swiftswift3.0自己封装的快速构建页面的方法
- can通道采样频率_CAN总线基础(上)
- spring @import注解使用场景
- 求周期方波信号的傅里叶级数_1-1 求周期方波(见图1-4)的傅里叶级数(复指数函数形 ….doc...
- ECMAScript 新提案:JSON模块
- 渝粤教育 陕西师范大学 《金融中介学Ⅰ》作业
- excel填充序列_what?你的excel可以按照班级填充序列?
- Discuz在Firefox下无法切换至编辑器状态解决(Z)
- Netty如何解决粘包拆包?(二)
- 万用表判断场效应管的好坏
- oracle取本月最后一天是星期几_在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间...
- BZOJ4827: [Hnoi2017]礼物
- HTML图片热点及表单
- IPMI IPMB协议
- BP神经网络python的实现
- CAN总线波特率计算方法
- layui + tp5分页(非数据表格渲染形式)
- 全网搜索 6.0 - 超级网搜 SuperSearch 最新版 - 主要更新内容
- 2019 “钱”途光明的 8 大前端开发技术,你还差几个?
- 无盘服务器架设之一:编译iPXE,用于网络,ISO,USB等无盘启动