MVC 模式及对象持久化

简介: MVC 模式及对象持久化


开发框架简介

在了解MVC 之前,首先来了解框架的概念。要理解框架的含义得从开发的实际需求说起。在软件开发过程中总有很多基础的功能是相同或者相近的,所以在实际开发中再花费时间重复基础工作显然是人们不愿意做的事情,所以开发者们将一些可重用的、易扩展的,井且经过良好测试的组件独立出来抽象成一个框架,当开发新的项目时便可以直接基于框架开发,可以有更多的精力放在分析和构建业务逻辑上,从而避免繁琐的底层事务和代码工程,这就是框架的由来。

MVC 的层结构

MVC 是Mod e l View Controller 的缩写,是一种开发模式,因为其合理的设计,诞生了很多以MVC 开发模式为主导的框架,称为MVC 框架,如图所示。

(1) Model (模型):表示程序的核心,处理一些底层的业务逻辑。

(2) View (视图):显示页面数据。

(3) Controller (控制器):控制输入/ 输出,协调各个层的关系。

对象关系映射ORM 技术

虽然关系型数据库已经大大地方便了程序员进行程序开发,但在一些大型的项目中数据关系比较复杂,业务逻辑要求可能更多,此时再从底层进行数据库的操作显得比较费事,于是人们提出了ORMCObject Relational Mapping )技术,它是一种将关系型数据映射到类的技术。使用ORM 技术进行开发,程序员不需要去处理繁琐的底层数据,而是通过映射类进行数据操作,更加符合软件工程面向对象的思想。使用O RM 技术,开发者可以访问到底层的数据,但完全不用去关心底层数据的结构,这个过程也可以称为持久化的过程。

SSH 集成开发框架

SSH 为Struts+Spring+ Hibernate 的一个集成框架,是目前较流行的一种Web 应用

程序开源框架。Struts2 是一个Java 的MVCWeb 开发框架, Struts2 以Web Work 为核心,

采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与

ServletAPI 完全脱离开。Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而

创建的。Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC 进行了轻量级的对

象封装,使得Java 程序员可以随心所欲地使用对象编程思维来操作数据库。Hibernate 可

以应用在任何使用JDBC 的场合,既可以在Java 的客户端使用,也可以在Servlet /JSP 的

Web 应用中使用。

Struts2 框架的使用

Struts2 框架的下载及部署

在使用Struts2 前需要去官网下载最新的框架包,地址为http: // struts. apache. org/

release/ 2. 0. x/ 。可以选择下载完整包,里面除了包含必需的文件外还包含了文档和案例,也

可以选择只下载运行包。这里选择下载完整的压缩包,解压后会看到目录结构

需要用到的是lib 文件夹下的jar 文件,现在复制这些文件到之前新建的工程中的WebContent/ WEB-INF / lib 文件夹下,以便在工程中使用这些文件。lib 文件夹中通常会放置工程需要用到的jar 文件,引用相关的Java 类时会自动加载该文件夹下的资源,可以理解为一个资源库,需要什么取什么。在Eclipse 中刷新之前的工程可以看到在WebAppLibraries 节点下复制过来的jar 文件,说明已经成功将Struts2 的文件部署到了工程中,如果不能看到文件请重新检查复制的路径是否正确。Struts2 框架的部署本质上就是将文件添加到我们的工程中以便调用而已。

Struts2 配置

在部署好了相关的Struts2 文件后只是做好了预备工作,只有框架是不能够运行出什

么效果的,现在需要进一步对框架进行配置才能使其工作。

从前面讲述JSP 显示简单页面的内容已经知道,我们不需要任何配置文件,只需要在

应用的根目录下建立新的JSP 文件,然后通过网址/文件名就可以访问动态页面了,这是最

基本的Web 开发形式,因为和本地浏览文档的逻辑几乎一样。但复杂的Web 程序通常不

会以文件为地址单位进行开发,这不利于项目的开发和维护,并且会暴露工程的目录结构。

通常会统一使用一个路口来管理应用的访问,这好比进入一幢楼的某个房间必须先经过大门

一样,而不是直接就能进入某个房间。在Java Web 开发中,扮演人口角色的通常是web. xml

文件,在里面可以进行工程的各种配置工作,所以想要让Struts2 的框架正常工作起来,首

先要配置web. xml 这张地图,只有通过web. xml 程序才能找到Struts2 的人口。在WEB- INF 文件夹新建一个web. xml 文件。编辑该文件如下:

〈?xml version =” 1. 。” encoding =”UTF- 8 ”?>
<web- app id= "WebApp_9 ” version =气4 ” xrnlns =” http://java. sun.com/xrnl/ns/j2ee” xrnlns:xsi
=” http://w 阳. w3. org/2001/XMLSchema inst ” xsi: schemaLocation =” http://java.sun.com/
xml/ns/j2ee http: //java. sun. com/xml/ns/j2ee/web - app_2_ 4 . xsd">
< display - name> Struts Blank</ display - name>
<filter>
<filter - name> struts2 </filter - name>
<filter - class>
erg . apache. struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter - class>
</filter>
< filter - mapping>
<filter - name> struts2 </filter- name>
< url - pattern >/铃</ url - pattern>
</filter - mapping>
<welcome - file - list>
<welcome - file> index. html </welcome - file>
</welcor盹- file - list>
</web- app>

这里要提醒的是,不同版本的Struts2 可能文件的配置会略有不同,所以在下载完新版

本的Struts2 后使用本书或者其他资料中的文件未必正确,最好的方法是参考查看下载文

件中的webapp 范例中的配置文件。

可以看到,该文件中添加了一个过滤器,将过滤所有访问请求, < filter- name > struts2

</ filter-name >声明了该过滤器的名字为struts2 ,而< url- pattern >/*</ url- pattern >

指明了过滤的路径为工程下的所有访问路径,这里用到的正则表达,/表示为根目录,而铃用

于匹配所有字符。

在filter 标签中声明了该过滤器用到的类为org. apache. struts2 . dispatcher. ng. filter .

StrutsPrepareAndExecuteFilter ,这个类就在之前添加到lib 文件夹中的jar 文件中。现在

来总结web. xml 将如何工作,当用户访问我们的应用时会先经过预定好的Struts2 过滤器,

org. apache. struts2. dispatcher. ng. filter . StrutsPrepareAndExecuteFilter 过滤器类会将所

有的访问请求全部转交给Struts2 处理。

同样, Struts2 本身也有自己的xml 配置文件,担当着类似web. xml 的作用,在src 文件

夹下再新建一个名为struts . xml 的文件。编辑该文件内容如下:

〈?xml version =” 1. 。” encoding =” UTF- 8 ”?>
<! DOCTYPE struts PUBLIC
”- //Apache Software Foundation//DTD Struts Configuration 3. 3//EN”
” http: I I struts. apache . org/ dtd s/ struts - 3. 3 . dtd ”>
<struts>
< constant name =” struts.enable.DynamicMeth odinvocation” value =”false" />
< constant name =” struts.devMode” value =” true" />
< package name =”default” namespace =”/” extends =” struts - default ”>
</package>
</struts>

在该文件中添加了一个package ,命名为helloworld ,在struts. xml 文件中, package 起

着分类管理Actio n 的作用,对于大型的项目,将所有的action 放置在一起显然会让人眼花

缭乱,不利于开发和维护,有了Action 便可以对它们进行分类管理。

目录
相关文章
|
5月前
|
设计模式 存储 前端开发
MVVM、MVC、MVP三种常见软件架构设计模式的区别
MVC、MVP 和 MVVM 是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
116 12
|
6月前
|
前端开发 数据安全/隐私保护
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
什么是mvvm,mvp、mvc和mvvm模式有什么区别?
125 0
|
12天前
|
存储 前端开发 测试技术
MVC、MVP、MVVM 模式
MVC、MVP 和 MVVM 是三种常见的软件架构模式,用于分离用户界面和业务逻辑。MVC(Model-View-Controller)通过模型、视图和控制器分离数据、界面和控制逻辑;MVP(Model-View-Presenter)将控制逻辑移到 Presenter 中,减少视图的负担;MVVM(Model-View-ViewModel)通过数据绑定机制进一步解耦视图和模型,提高代码的可维护性和测试性。
|
5月前
|
设计模式 存储 前端开发
MVC(Model-View-Controller)是一种软件设计模式,用于将应用程序的输入逻辑、业务逻辑和用户界面逻辑分离
【6月更文挑战第17天】**MVC模式**是软件设计模式,用于分离输入逻辑、业务逻辑和用户界面。模型处理数据和业务,视图展示数据,控制器协调两者响应用户请求。优点包括:关注点分离、提高开发效率、简化测试、支持多视图及便于大型项目管理。
50 3
|
2月前
|
设计模式 开发框架 前端开发
MVC 模式在 C# 中的应用
MVC(Model-View-Controller)模式是广泛应用于Web应用程序开发的设计模式,将应用分为模型(存储数据及逻辑)、视图(展示数据给用户)和控制器(处理用户输入并控制模型与视图交互)三部分,有助于管理复杂应用并提高代码可读性和维护性。在C#中,ASP.NET MVC框架常用于构建基于MVC模式的Web应用,通过定义模型、控制器和视图,实现结构清晰且易维护的应用程序。
46 2
|
6月前
|
设计模式 存储 前端开发
MVC(模型-视图-控制器)是一种在Web应用程序开发中广泛使用的软件设计模式
【5月更文挑战第12天】MVC模式是Web应用开发中的常见设计模式,将逻辑、数据和界面分离,提升代码可维护性和重用性。模型处理数据逻辑,视图展示数据,控制器协调用户输入与模型视图交互。优点包括代码分离、易维护、可扩展和组件重用,促进高效灵活的开发。
54 2
|
1月前
|
前端开发 Java
【案例+源码】详解MVC框架模式及其应用
【案例+源码】详解MVC框架模式及其应用
33 0
|
2月前
|
前端开发 测试技术 开发者
MVC模式在现代Web开发中有哪些优势和局限性?
MVC模式在现代Web开发中有哪些优势和局限性?
|
2月前
|
设计模式 前端开发 PHP
PHP中实现简易的MVC模式
【8月更文挑战第31天】 本文将引导你了解如何在PHP中应用MVC(Model-View-Controller)架构模式,通过一个简单的例子展示其实现过程。我们将从基础的概念出发,逐步深入到代码实践,最终让你能够自己动手构建一个简易的MVC框架。文章不仅提供理论知识,还包含具体的代码示例,帮助你更好地理解并运用MVC模式。
|
5月前
|
存储 前端开发 数据库
MVC模式和三层架构
MVC模式和三层架构
58 2