1.什么是MVC
MVC全名是Model View Controller,是模型-视图-控制器的缩写,MVC设计模式的思想就是把Web应用程序分为3个核心模块:模型(Model)、视图(View)和控制器(Controller)。这三个模块分别充当不同的角色,完成不同的任务。它们之间彼此又相互联系,构成一个结构分明而又高效的整体。MVC的结构如图所示。
- 在这个三角关系中,它们各自的功能如下所述。
- 模型:模型是Web程序中用于表示业务数据、进行业务逻辑操作的部分。
- 视图:视图是用户在Web浏览器中可以看到的界面。视图用来与用户进行交互:显示用户感兴趣的业务数据,并且给用户提供输入界面。
- 控制器:控制器用来接收用户的请求,并调用模型和视图最终完成请求。
按照MVC设计模式开发的Web应用系统,当接收到用户的请求后,处理的过程如图所示。
MVC作为一种分层的、模块化的设计思想,它的优点有以下几方面:
- 模型可以被重用。
- 模型是自包含的,它与视图和控制器相独立。
- 控制器提高了应用程序的灵活性和可配置性。
2.Java web应用程序的主要组件
(1)Servlet
Servlet是用Java语言编写的,它是一个Java类。因而Servlet遵守所有Java语言的语法规则,并且它可以调用一般Java程序可以调用的系统包。
Servlet是在服务器端运行的。它编译后的“.class”文件被服务器端调用和执行。Web服务器使用该class文件去处理浏览器请求,并将处理的结果返回到客户端。
Servlet的主要功能是用来接受、处理客户端请求,并把处理结果返回到客户端显示。其过程如下所述。
1.客户端把请求送到Servlet处理
2.Servlet处理请求
3.Servlet把请求的结果返回到客户端显示
(2)JavaBean
JavaBean组件就是一些遵循特定接口格式的Java类。这种接口格式对Java类的方法命名、底层行为、继承与实现等有特定的要求。在Java Web开发中,JavaBean往往用来封装程序的业务逻辑,它们是可以重用的组件。通过使用JavaBean,JSP文件中的Java脚本可以大大地减少,从而使JSP更容易维护。
JavaBean在Java Web开发中主要用来处理业务逻辑。JSP或者Servlet可以调用JavaBean去处理复杂的操作。
JavaBean的属性用于表示其内部状态。在Java Web开发中,其属性主要用来存储中间数据。例如,可以用从数据库中取出的数据来设置JavaBean的属性。这样JSP文件就可以在需要时从JavaBean中把这些值取出,然后在客户端将其显示出来。
我们常用<jsp:useBean>这个标签在JSP文件中使用JavaBean。在JavaBean中,可以使用JDBC进行数据库操作,比如连接数据库、查询数据库、向数据库中插入数据等。在JSP中使用Java脚本虽然也可以进行数据库操作,但是这样会造成页面过于复杂、臃肿,维护起来非常不方便,这种缺点在大型项目中更加突出。使用JavaBean操作数据库,然后把操作的结果返回给JSP页面去显示,这样就减轻了JSP的负担,使其更专注于页面显示。
3.Java Web解决方案(开发方法)
JSP页面编程
JSP+JavaBean设计模式
JSP+Servlet设计模式
JSP+Servlet+JavaBean设计模式
4.常用的Java Web的MVC框架
(1)Spring MVC
它的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。核心是 DispatcherServlet,它的作用是将请求分发给不同的后端处理器(controller)。
(2)Struts
它是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。Struts就是MVC中的C的角色,因为它主要是负责action,处理各种请求。