MVC模式在Java web应用程序中的实现
1. MVC简介
MVC是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。MVC用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC一般用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。
2.Java web应用程序的主要组件
1.Servlet组件
Servlet运行于Web容器当中,比如Tomcat,它可以被Web容器动态加载,接收浏览器请求,调用其他组件处理请求,然后把处理结果返回。
当浏览器访问某个Servlet时,Web容器将会创建一个Servlet Request对象和Servlet Response对象,并且把用户的请求信息封装在Servlet Request对象中。然后把这两个对象作为参数传输给Servlet的特定方法中。在该方法中处理请求,把处理结果封装在Servlet Response对象中,返回给Web容器。最后Web容器把结果返回到浏览器去解析、显示。
2.JSP组件
JSP是一种动态网页技术。它把HTML页面中加入Java脚本,以及JSP标签构成了JSP文件。当浏览器请求某个JSP页面时,Tomcat会把JSP页面翻译为Java文件。然后将它编译为class文件,接着执行它,并且把生成的HTML页面返回到客户端显示。
3.JavaBean组件
JavaBean组件是一种符合特定规范的Java对象。在JavaBean组件中定义一系列的属性,并且每个属性都提供setter和getter方法,这样就可以使用该组件存储一些中间数据。例如Servlet Request的请求信息、从数据库中查询出来的信息等。
4.EJB组件
Enterprise Java Bean(EJB)组件是服务器端的Java组件。该组件基于标准分布式对象技术、CORBA和RMI等技术,用于实现企业级应用的业务逻辑。设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。
5.XML语言
XML(Extensible Markup Language)是一种用来创建自定义标记的标记语言。
6.Web服务器和应用服务器
Web服务器用来处理HTTP请求,并返回HTTP数据。它主要用来和浏览器进行交互,给用户提供服务。应用服务器可以被Web服务器调用,进行业务逻辑的处理。它返回的数据被Web服务器组织为HTML格式,然后返回到浏览器去解析。
3.JAVA WEB应用解决方案(开发方法)
Java web开发中有很多的框架和协议来实现基于不同程序语言的项目的互联互通,Web Service是其中的一种主要方式。Web Service最主要的优点是:跨语言,跨平台的不同系统之间的通信。 现在企业内部的很多系统集成,企业和企业之间的系统集成的问题。Web Service是主要的解决方案。(服务重用,降低开发成本,只开放自己愿意开放的服务)。
目前Web Service开发主要有以下两种开发模式:一是传统基于SOAP模式的Web Service开发;二是基于rest模式的Web Service开发。
SOAP协议是简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比基于SOAP和XML-RPC技术的Web Service更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。
4.常用的JAVA WEB 的MVC框架
Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。
Spring MVC应该最常用的。 Spring Web MVC框架( 简称Spring MVC)是一个丰富的模型视图控制Web框架。使用 Dispatcher Servlet发布请求处理,他使用可配置的处理程序映射,视图解析和主题解决方案。
Model 2是基于MVC(Model-View-Controller,模型-视图-控制)架构模式的,通常将小服务(Servlet)或过滤器(Filter)作为控制器,其作用是接受用户请求并获得模型数据然后跳转到视图;将JSP页面作为视图,用来显示用户操作的结果;模型当然是POJO(Plain Old Java Object),它是区别于EJB(Enterprise JavaBean)的普通Java对象,不实现任何其他框架的接口也不扮演其他的角色,而是负责承载数据,可以作为VO(Value Object)或DTO(Data Transfer Object)来使用。
文献引用:
[1] 百度百科 MVC框架
[2] Java Web中的组件及其作用
http://blog.csdn.net/yyh001001/article/details/8203112?locationNum=4&fps=1
[3] java开发中经常使用到的几种WebService技术实现方案
http://blog.csdn.net/zolalad/article/details/25158995
[4] 采用框架总结
http://blog.csdn.net/u010431640/article/details/51104172
[5] Java Web自定义MVC框架详解