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面试题(一)———更新中相关推荐

  1. 2020年Java面试题及答案_Java面试宝典_Java笔试题(持续更新中)

    推荐面试视频教程 2019年最新Java互联网大厂面试精粹 前言 前言: 少年易老学难成,一寸光阴不可轻.未觉池塘春草梦,阶前梧叶已秋声 .-朱熹<劝学诗> 勤奋才是改变你命运的唯一捷径. ...

  2. 美团点评、小米、菜鸟等等目前遇到的面试题(更新中)

    美团面试题: 1.为什么要用SOA?有什么好处? 面向服务编程,是一种思想,一种方法论,一种分布式的服务架构, SOA是⼀种软件架构,它⽤于构建由⼀组松耦合,⿊盒组件组成的商业应⽤.每个组件代表 一个 ...

  3. SpringBoot面试题大汇总附答案,SpringBoot面试题-持续更新中

    2021最新SpringBoot面试题[附答案解析]SpringBoot面试题及答案2021,SpringBoot2021最新面试题及答案,SpringBoot面试题新答案已经全部更新完了,有些答案是 ...

  4. Dubbo面试题及答案,2021年Dubbo面试题-持续更新中

    2021最新Dubbo面试题[附答案解析]Dubbo面试题及答案2021,Dubbo最新面试题及答案,Dubbo面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的.这些答 ...

  5. html+css面试题(更新中)

    html面试题 「学习笔记」HTML基础 (qq.com) (17条消息) html面试题总结_Mr.Gu的博客-CSDN博客 (17条消息) HTML面试题_萌萌哒の瑞萌萌的博客-CSDN博客 文章 ...

  6. java史上最全面试题--持续更新中(一)

    1.面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来构造类. 继承:基于基类创建新类. 封装:将数据隐藏起来,对数据的访问只能通过特定接口. 多态性:不同子类型对象对相同消息作出不同响应 ...

  7. 史上最全的spark面试题——持续更新中

    1.spark中的RDD是什么,有哪些特性? 答:RDD(Resilient Distributed Dataset)叫做分布式数据集,是spark中最基本的数据抽象,它代表一个不可变,可分区,里面的 ...

  8. 100道最常见的校招前端面试题(更新中)

    Http协议中Post和Get方法的区别? Get请求比Post执行更有效率,是因为浏览器在发送Post请求时,会先将请求头发送给服务器确认,服务器返回100 continue响应后,浏览器才开始发送 ...

  9. 初级前端面试题(更新中)

    一.html+css 1.css 实现元素水平垂直居中 1.1绝对定位(已知宽高) width:100px;height: 100px;position: absolute;left: 50%;top ...

  10. 高级运维工程师面试题(更新中)

    2019独角兽企业重金招聘Python工程师标准>>> senior operations engineer Mar 3, 2016 高级运维工程师 服务器硬件 RAID 磁盘阵列 ...

最新文章

  1. swiftswift3.0自己封装的快速构建页面的方法
  2. can通道采样频率_CAN总线基础(上)
  3. spring @import注解使用场景
  4. 求周期方波信号的傅里叶级数_1-1 求周期方波(见图1-4)的傅里叶级数(复指数函数形 ….doc...
  5. ECMAScript 新提案:JSON模块
  6. 渝粤教育 陕西师范大学 《金融中介学Ⅰ》作业
  7. excel填充序列_what?你的excel可以按照班级填充序列?
  8. Discuz在Firefox下无法切换至编辑器状态解决(Z)
  9. Netty如何解决粘包拆包?(二)
  10. 万用表判断场效应管的好坏
  11. oracle取本月最后一天是星期几_在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间...
  12. BZOJ4827: [Hnoi2017]礼物
  13. HTML图片热点及表单
  14. IPMI IPMB协议
  15. BP神经网络python的实现
  16. CAN总线波特率计算方法
  17. layui + tp5分页(非数据表格渲染形式)
  18. 全网搜索 6.0 - 超级网搜 SuperSearch 最新版 - 主要更新内容
  19. 2019 “钱”途光明的 8 大前端开发技术,你还差几个?
  20. 无盘服务器架设之一:编译iPXE,用于网络,ISO,USB等无盘启动

热门文章

  1. msm8937 porting iic device
  2. lavas自动创建目录及说明
  3. php存省市,PHP格式化全国省市区列表
  4. 虚幻4引擎虚拟现实项目制作教程
  5. 通达OA2017 工作流设计中“退回”功能的升级测试(图文)
  6. windows server 2012的DHCP保留地址导出导入、DHCP故障转移配置、DNS条目命令导入
  7. win10解压文件时,出错:不能创建符号链接 你可能需要以管理员权限运行Winrar 客户端没有所需的特权
  8. 用Python暴力破解WiFi
  9. 企业IT架构的发展历程
  10. Fddb数据集人脸label可视化(matlab)