MVC模式在Java Web应用程序中的实现

MVC模式在Java Web应用程序中的实现

一、前言

         MVC 作为一种框架模式已经有很久的历史了,这么多年来经受住了工程实践的考验,获得了巨大的成功,今天我们来重新回顾一下MVC 框架模式,并以 java web 应用程序为例来具体说明一下 MVC 的实现过程。

二、MVC简介

         MVC原本存在于桌面程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以用柱状图来表示,也可以用扇形图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。MVC是一个框架设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。下面我们来具体对这三个核心部件进行具体的说明。

         视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,比如xml和JSP等。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

         模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

         控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。

         由此我们可以看MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

三、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格式,然后返回到浏览器去解析。

四、Java Web解决方案(开发方法)

         1.JSP+JAVABEAN开发模式:

    该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。但是页面将控制与显示集于一身。虽然简单,但是知识适合小型项目的快速构建与运行。

         2.JSP+Servlet+JavaBean开发模式:

    JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式。实现了MVC ,但是没有统一的开发框架导致开发周期长。

         3.Struts+Spring+Hibernate

         Struts负责表示层, Spring负责逻辑层的业务,Hibernate持久层中数据库的操作,是一套成熟稳定的开发方案。

五、常用的Java Web的MVC框架
Struts1.X

         是一个较为早期的MVC框架实现,它的历史最早可以追溯到2000年,作为Apache开源组织的一个重要项目,取名为“Struts”,有“基础构建”的含义。在那个程序框架尚处于朦胧阶段的年代,“基础构建”无疑是每个程序员梦寐以求的东西。

Webwork2 / Struts2

         Struts项目将与Webwork2项目合并,并联合推出Struts2 .Webwork2和Struts2是一脉相承的Web层解决方案。优势突出表现为对Controller的彻底改造以及请求映射的配置。

Spring MVC
相比较Webwork2 / Struts2,Spring MVC走了一条比较温和的改良路线。因为Spring MVC 自始至终都没有突破传统Servlet编程模型的限制,而是在这过程中不断改良,不断重构,反而在发展中开拓了一条崭新的道路。 它有两个特点,是使用参数-返回值实现模式来打造Controller 以及引入Annotation来完成请求-响应的映射关系 

转载于:https://www.cnblogs.com/420Rock/p/6753761.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,首先我们需要了解一下MVC模式MVC模式是一种设计模式,其目的是将应用程序分为三个部分:模型(Model),视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑,视图负责呈现数据,控制器负责处理用户输入和调度模型和视图之间的交互。 下面是一个简单的基于MVC模式Java Web应用程序的构建过程: 1. 创建MVC结构的目录结构 ``` myapp/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── controller/ │ │ │ ├── model/ │ │ │ └── view/ │ │ └── resources/ │ └── test/ └── webapp/ ├── WEB-INF/ │ └── web.xml ├── css/ ├── js/ └── views/ ``` 2. 创建模型(Model) 在model目录下创建一个Java类,该类将实现数据和业务逻辑处理的方法。例如,我们创建一个名为User的Java类来处理用户数据: ```java package model; public class User { private String name; private String email; public User(String name, String email) { this.name = name; this.email = email; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } ``` 3. 创建视图(View) 在view目录下创建一个JSP页面,该页面将呈现数据。例如,我们创建一个名为user.jsp的页面来显示用户数据: ```html <html> <head> <title>User Information</title> </head> <body> <h1>User Information</h1> <table> <tr> <td>Name:</td> <td>${user.name}</td> </tr> <tr> <td>Email:</td> <td>${user.email}</td> </tr> </table> </body> </html> ``` 4. 创建控制器(Controller) 在controller目录下创建一个Servlet类,该类将处理用户输入并协调模型和视图之间的交互。例如,我们创建一个名为UserController的Servlet类来处理用户数据: ```java package controller; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import model.User; public class UserController extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String email = request.getParameter("email"); User user = new User(name, email); request.setAttribute("user", user); request.getRequestDispatcher("/views/user.jsp").forward(request, response); } } ``` 5. 配置web.xml 在WEB-INF目录下创建一个web.xml文件,该文件将定义Servlet和JSP的映射关系。例如,我们在web.xml添加以下内容: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>UserController</servlet-name> <servlet-class>controller.UserController</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserController</servlet-name> <url-pattern>/user</url-pattern> </servlet-mapping> </web-app> ``` 6. 运行应用程序应用程序部署到Web服务器上,并访问http://localhost:8080/myapp/user?name=Tom&email=tom@example.com ,即可看到显示用户信息的页面。 以上就是一个简单的基于MVC模式Java Web应用程序的构建过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值