JSP运行原理和JSP中的HTTP请求响应模型以及MVC模式

一、JSP运行原理
(1)首先由浏览器向Web服务器提出访问JSP页面的请求(Request);
(2)Web服务器中的JSP容器根据请求,将用户所需的JSP页面转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行;
(3)最后由Web服务器将执行结果响应(Response,通常是HTML页面)给客户端浏览器。
JSP运行原理图如下所示:
JSP运行原理和JSP中的HTTP请求响应模型以及MVC模式
二、JSP中的HTTP请求响应模型
HTTP协议是一种无状态的协议,及客户端和服务器端不需要建立持久的链接。客户端和服务器的链接是基于一种请求应答模式。即客户端和服务器建立一个链接,客户端提交一个请求,服务器端收到请求后返回一个响应,然后二者就断开链接。在JSP中的HTTP请求响应具体为:
浏览器向Web服务器发送HTTP请求时,由Servlet容器负责将该请求包装成HttpServletRequest对象并传送给HttpServlet类的doGet或者doPost方法。对GET方式的请求,使用doGet方法,对POST方式的请求则使用doPost方法。GET或者POST请求是在HTML表单中form标记的method属性定义的。处理的结果会被包装成HttpServletResponse对象反馈给Web服务器,再由Web服务器再将结果返回至浏览器。JSP中的HTTP请求响应模型图如下所示:
JSP运行原理和JSP中的HTTP请求响应模型以及MVC模式
三、MVC模式
MVC(Model-View-Controller,模型—视图—控制器)是一种程序设计概念,它同时适用于简单的和复杂的程序。使用该模式可将待开发的应用程序分解为3个独立的部分:模型、视图和控制器。提出这种设计模式主要是因为应用程序中用来完成任务的代码——模型(也称为“业务逻辑”)通常是程序中相对稳定的部分,并且会被重复使用,而程序与用户进行交互的页面——视图,却是经常改变的。如果因需要更新页面而不得不对业务逻辑代码进行改动,或者要在不同的模块中应用到相同的功能而重复地编写业务逻辑代码,不仅降低了整体程序开发的进程,而且会使程序变得难以维护。因此,将业务逻辑代码与外观呈现分离,将会更容易地根据需求的改变来改进程序。
MVC模式中的Model(模型)指的是业务逻辑的代码,是应用程序中真正用来完成任务的部分。
View(视图),实际上就是程序与用户进行交互的界面,用户可以看到它的存在。视图可以具备一定的功能并应遵守对其的约束,在视图中不应包含对数据处理的代码,即业务逻辑代码。
Controller(控制器),主要控制用户请求并作出响应。它根据用户的请求选择模型或修改模型,并决定返回怎样的视图。
在JSP中,Model被编写成JavaBean, View被编写成JSP,Controller被编写成Servlet.