一、JSP
JSP模式的过程分为以下几步:
- 客户端(Client)通过网络发送一个页面的请求(Request JSP Page)给服务器端(Sever With JSP Container)。
- 部署了应用程序的服务器端将会从硬盘上读取对应的文件(JSP Page)。
- 应用程序容器(Container)将读取的文件(JSP Page),调用相应的数据,进行编译,形成Servlet能够识别的java文件。
- Servlet容器将Java文件进行解析,形成HTML文件。
- 应用服务器返回HTML文件给客户端浏览器。
其中,Servlet是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。JSP经编译后就变成了Servlet。
- Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容。JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容。
- Servlet能够很好地组织业务逻辑代码,但是在Java源文件中通过字符串拼接的方式生成动态HTML内容会导致代码维护困难、可读性差。JSP虽然规避了Servlet在生成HTML内容方面的劣势,但是在HTML中混入大量、复杂的业务逻辑同样也是不可取的。
二、MVC
-
Model
数据模型,或者可以理解为业务逻辑,是系统的核心部分,主要职责是负责系统业务和数据的处理。 -
View
视图,对用户来说,通常就是展示页面,视图部分仅仅负责用户的展示。 -
Controller
控制器,主要负责装配业务模型产生的数据到视图里面。通常有三种职责:接受用户的请求;调用相应的业务逻辑处理;将业务逻辑处理的结果返回或者装配到视图中。
对于MVC的设计模式来说,主要过程如下:
- Controller接受前端发送过来的请求(Request),解析请求的路径、参数以及表达的意图。
- 根据请求的意图和参数向Model层调用相关的业务逻辑。
- Model层接受Controller层的调用,组装数据或调用数据库,返回数据给Controller层。
- Controller层接收到Model层返回的相关数据,组装形成View.
- Controller层将View返回给前端。
三、两者的区别
- 在MVC中,Model、View、Controller每个模块负责各自的事情,符合单一职责原则,使得代码更加易于维护和优化。
- 在JSP中,业务数据(业务逻辑)和展示逻辑(页面)耦合在一起,难以维护。而MVC通过Controller这一层,将视图和业务逻辑进行了解耦,将数据展示和数据生成放到了不同的模块中,易于维护。
在实际应用中,如图所示,采用Servlet来控制业务流程,而采用JSP来生成动态网页。
MVC模式在Web开发中的好处是非常明显,它规避了JSP与Servlet各自的短板,Servlet只负责业务逻辑而不需要动态生成HTML代码;JSP中也不会充斥着大量的业务代码。这大大提高了代码的可读性和可维护性。
image
网友评论