由于Web应用通常被分类归为分布式应用,所以一直以来都采用的是“客户/服务器”结构,且Web应用程序中有一部分的代码运行在客户端,另一部分代码则运行在服务器端。那些运行在客户端上的应用通常被称为前端,指的就是运行在浏览器上的代码;运行在服务器上的那部分代码则被称为后端。
Web前端就是网站前台部分,运行在PC端、移动端等浏览器上,展现给用户浏览的网页。随着互联网技术的发展,HTML5、CSS3、前端框架应用、跨平台响应式网页设计能够适应各种屏幕分辨率,采用合适的动效,给用户带来极高的用户体验。JavaScript是前端工程师使用的唯一编程语言,最常用的前端开发技术是HTML+CSS+JavaScript DIV、Ajax和jQuery,高级的前端开发人员通常使用这些技术的组合来进行Web前端开发,还有一个常用的美化前端的技术就是Photoshop设计,配合其他技术共同完成Web页面的制作。
HTML(Hyper Text Markup Language,超文本标记语言)是构成网页文档的主要语言。一般情况下,网页上看到的文字、图形、动画、声音、表格、链接等元素大部分都是由HTML语言描述的。
HTML文档的基本结构如下:
HTML form表单的基本结构如下:
HTTP请求方式为get时,是通过URL方式传内容与参数,这个时候通过网址URL能看见自己填写内容并提交处理;HTTP请求方式为post时,是通过类似缓存传填写内容与参数,而URL是不能看到form表单填写内容并提交处理的。
Browser请求的 3 种方式:
①在Web浏览器地址栏中输入:
②在form标签中输入:
③在<a>标签中输入:
Browser请求的 3 种方式包括HTTP服务器处理请求方法、do_GET(self)或do_POST(self)。
服务器在每次收到请求后,都会自动调用处理请求的方法(get或post),处理请求的方法可根据不同的请求调用对应的具体数据处理方法。
后端通常是指与数据库进行交互,用以处理相应的业务逻辑。后端开发人员编写那些运行在服务器上的代码,通常这部分的工作需要和数据库打交道,比如读写数据、读写文件等。有些时候,业务逻辑存储在客户端,这时后端就是用来以Web服务的形式提供数据库中的数据。后端强调的是如何处理业务逻辑、实现功能、数据存取、增强平台稳定性与性能等,这些都是用户不可见的。后端开发人员需要掌握一种Web编程语言和一种数据库管理系统。最常用的后端开发技术是JSP、PHP、ASP以及SSH、SSM等Web开发框架。
一般而言,前后端的技术是区分开来的,前端只是完成数据的显示,而其他主要工作都在后端完成。但也有例外:后端只是提供数据,而所有的计算和具体功能都在前端完成。所以,前后端工作的分配,通常都是由项目的设计和架构来决定的。
Web开发是基于Web浏览器/Web服务器模式(B/S模式)的应用开发。
HTML是在浏览器上运行的页面,是静态页面,页面内容在运行过程中不能改变。JSP是在HTML中,通过JSP标签插入了Java代码,是在Web服务器上运行的页面,是动态页面,页面内容在运行过程中可以改变。Servlet是在Java代码中插入HTML标签,是在Web服务器上运行的Java程序。
JSP和Servlet都是HTML和Java混合编程,不符合MVC编程规范。
MVC框架可以使HTML和Java混合编程改变为纯HTML或Java编程,可以实现MVC编程规范。
MVC框架早期采用Spring + struts2 +Hibernate。
MVC框架目前采用Spring +SpringMVC+MyBatis。
MVC是一种使用MVC(Model View Controller模型—视图—控制器)设计创建Web应用程序的模式,MVC模式同时提供了对HTML、CSS和JavaScript的完全控制。
Model( 模型 )是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View( 视图 )是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller( 控制器 )是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入并向模型发送数据。
MVC分层有助于管理复杂的应用程序,可以在不依赖业务逻辑的情况下专注于视图设计,同时也让应用程序的测试更加容易;MVC分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器和业务逻辑。
MVC是一种设计模式,通常是代码复用,而设计模式是设计复用,框架则介于两者之间,部分代码复用,部分设计复用,有时分析也可复用。框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。
Web 前端示例 : 前端有请求 。
HTML文档的基本结构如下:
Web 后端示例 : 后端必须有响应 。