简介:
SimpleMVC 是一个通用的MVC框架,适用于企业应用与互联网应用平台,是一个成熟的、耦合性很低的优秀框架,本文将结合实例来介绍如何使用它来进行 J2EE 的开发。
我们在基于SimpleFramework开发应用组件,一个概念是SimpleMVC,它可以方便的解决我们遇到的问题,那么到底如何使用?本篇文档组件以具体的例子介绍下SimpleMVC。下面先对mvc概念做一个回顾,然后,介绍SimpleMVC。
MVC 回顾:
在使用JAVA技术建立Web应用的实例中,由于JSP技术的发展,很快这种便于掌握和可实现快速开发的技术就成了创建Web应用的主要技术。JSP页面
中可以非常容易地结合业务逻辑(jsp:useBean)、服务端处理过程(jsp:scriplet)和
HTML(<html>),在JSP页面中同时实现显示,业务逻辑和流程控制,从而可以快速地完成应用开发。现在很多的Web应用就是由一组
JSP页面构成的。这种以JSP为中心的开发模型我们可以称之为Model 1。
当然这种开发模式在进行快速和小规模的应用开发时,是有非常大的优势,但是从工程化的角度考虑,它也有一些不足之处:
- 应用的实现一般是基于过程的,一组JSP页面实现一个业务流程,如果要进行改动,必须在多个地方进行修改。这样非常不利于应用扩展和更新。
- 由于应用不是建立在模块上的, 业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离。所以非常不利于应用系统业务的重用和改动。
考虑到这些问题在开发大型的Web应用时必须采用不同的设计模式--就出现了 Model2
Model
2 表示的是基于MVC模式的框架。MVC是Model-View-Controller的简写。"Model"
代表的是应用的业务逻辑(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),"Controller"
是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重
用。从而弥补了Model 1的不足。
Model 2具有组件化的优点从而更易于实现对大规模系统的开发和管理,但是开发MVC系统比简单的JSP开发要复杂许多,它需要更多的时间学习和掌握。同时新东西的引入会带来新的问题。传统的Model 2 也有以下问题:
- 基于MVC组件的方式重新思考和设计应用结构。原来通过建立一个简单的JSP页面就能实现的应用现在变成了多个步骤的设计和实现过程,并且很多业务模块没办法更好的复用。
- 所有的页面和组件必须在MVC框架中实现,所以必须进行附加地开发工作。
SimpleMVC 把组件化的思想应用到业务模块的开发中,SimpleMVC提供统一的组件开发规范,而是使用SimpleMVC就是基于jsp技术就可以完成工作。可以保证开发效率更高,更灵活。
MVC
本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果。现在有很多可供
使用的MVC框架,基于Simplemvc
开发功能灵活的组织机构管理,支持企业应用的组件库,也有类似文件存储,论坛,博客,消息等企业或者网站常用的功能,所以基于Simplemvc开发
MVC系统更方便,效率更好。
SimpleMVC的结构和处理流程简介
SimpleMVC是一个比较好的MVC框架提供了对开发MVC系统的底层支持,它采用的主要技术是基于Filter的后处理和组件开发定义接口。
SimpleMVC 框架的基本构成由下图所示:
基本流程由“组件描述”、“注册中心”、“组件资源”、“渲染器”四大部分组成,更多可以参考官方http://simpleframework.net/doc/d2/2.2.2.html的介绍.
利用SimpleMVC框架开发实战
下面我们用 SimpleMVC 来实现一个典型查询功能,在访问jsp的请求发出后完成数据的查询,然后对查询的数据进行展现。为了更清楚的理解Simple是基于组件开发的思想,先以SimpleMVC实现传统Model 2的例子。
在开始之前,根据官方介绍,搭建一个工程。
开发步骤如下:
1) 新建一个jsp文件。在请求url的时候,需要获得后台返回的数据进行展示。calendar.jsp 如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String calendar = (String)request.getAttribute("calendar"); // 这里就是SimpleMvc 完成普通MVC 获得的数据。
%>
<html>
<head>
<link rel='stylesheet' type='text/css' href='css/reset.css' />
<link rel='stylesheet' type='text/css' href='css/jquery-ui.css' />
<link rel='stylesheet' type='text/css' href='css/jquery.weekcalendar.css' />
<link rel='stylesheet' type='text/css' href='css/calendar.css' />
<script type='text/javascript' src='js/jquery.min.js'></script>
<script type='text/javascript' src='js/jquery-ui.min.js'></script>
<script type='text/javascript' src='js/jquery.weekcalendar.js'></script>
<script type='text/javascript' src='js/calendar.js'></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
</head>
<body>
<div id='calendar'></div>
<div id="event_edit_container">
<input type="hidden" />
<ul>
<li>
<span>日期: </span><span class="date_holder"></span>
</li>
<li>
<label for="start">开始时间:
</label><select name="start"><option value="">Select
Start Time</option></select>
</li>
<li>
<label for="end">结束时间:
</label><select name="end"><option value="">Select End
Time</option></select>
</li>
<li>
<label for="title">活动标题: </label><input type="text" name="title" />
</li>
<li>
<label for="body">活动内容: </label><textarea name="body"></textarea>
</li>
</ul>
</div>
</body>
</html>
<script type="text/javascript">
var year = new Date().getFullYear();
var month = new Date().getMonth();
var day = new Date().getDate();
var datas = <%=calendar%>
</script>
2) 新建一个对应的xml文件。这里主要完成SimpleMVC的声明,这里可以指定对于jsp文件所对应的Handle。
calendar.xml 如下:
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd">
<scriptEval>first</scriptEval>
<handleClass>net.simpleframework.calendar.CalendarAction</handleClass>
<handleMethod>initCalendarLoad</handleMethod>
</page>
3) 编写对于的Action
public class CalendarAction extends DefaultPageHandle {
public void initCalendarLoad(PageParameter pageParameter,
Map<String, Object> dataBinding,
List<String> visibleToggleSelector, List<String> readonlySelector,
List<String> disabledSelector) throws Exception {
}
public Object getBeanProperty(final PageParameter pageParameter,
final String beanProperty) throws Exception {
final PageBean pageBean = pageParameter.pageDocument.getPageBean();
final DataSource dataSource = IWebApplication.Instance.getWebApplication().getDataSource();
final IQueryEntityManager qem = DataObjectManagerFactory.getQueryEntityManager(dataSource);
final List<CalendarBean> calendar = new ArrayList<CalendarBean>();
IQueryEntitySet<CalendarBean> qs = qem.query(new SQLValue("SELECT * FROM calendar"), CalendarBean.class);
CalendarBean bean;
while((bean = (CalendarBean) qs.next()) != null) {
calendar.add(bean);
}
//获得日历的显示字符串
String jsonEvenets = Json.toJsonToCalendar(calendar);
pageParameter.request.setAttribute("calendar_data", jsonEvenets);
return BeanUtils.getProperty(pageBean, beanProperty);
}
}
4) 运行查看效果。
基于SimpleMVC 开发企业应用只需要上面三步,后续介绍使用组件带来的优势。
总结: SimpleMVC 可以完成常用mvc的功能,代码量更小,逻辑清晰,另外simpleFramework 提供的组件库又是其主要优势。
分享到:
相关推荐
【实战SimpleMVC开发应用】 SimpleMVC是一个通用的MVC框架,专为J2EE应用设计,尤其适合企业级和互联网应用平台。这个框架以其低耦合性、灵活性和成熟性著称,能有效解决在开发过程中遇到的各种问题。在本文中,...
《Ruby MVC框架基础与实践——以simplemvc-blog为例》 在IT行业中,MVC(Model-View-Controller)设计模式是一种广泛应用于Web开发的架构模式,它将应用程序分为三个主要部分,分别是模型(Model)、视图(View)和...
Java Web开发实战经典课件涵盖了从基础到高级的Java Web技术,旨在帮助开发者全面掌握构建Web应用程序的关键技能。本课程的课件详细讲解了以下几个核心知识点: 1. **Java基础知识**:首先,学习Java编程语言的基本...
Java MVC项目实战主要涉及到的是基于Java的模型-视图-控制器(Model-View-Controller)架构模式来构建Web应用程序。在本项目中,你将学习如何自定义一个MVC框架,而不是使用现成的如Spring MVC这样的成熟框架。下面将...
这本书以项目实战的方式,系统地讲解了如何使用Java语言进行Web应用程序的开发,涵盖了从基础到高级的各种知识点。教程内容丰富,结构清晰,是学习Java Web技术的宝贵资料。 1. **Java Web基础**:首先,教程会介绍...
在《Java Web开发实战经典》这本书中,读者将深入学习如何使用Java技术来构建动态、交互式的Web应用。以下是基于书名和描述所涵盖的一些关键知识点: 1. **Java基础**:首先,理解Java语言的基础至关重要,包括语法...
总的来说,《独门架构:Java Web开发应用详解》是一本全面覆盖Java Web开发技术的书籍,无论你是初学者还是经验丰富的开发者,都能从中获取宝贵的实战经验和深入理解。通过阅读和实践书中的内容,你将能够构建出高效...
在本资源中,"java web 2.0架构开发与项目实战 源代码01",我们聚焦于Java Web应用程序的开发,特别是在Web 2.0时代的技术和实践。Web 2.0是一个概念,它强调互联网作为交互式平台,用户参与度更高,社交网络和富...
此外,读者会接触到Spring MVC,这是Spring框架的一部分,它也是一种MVC框架,但比JSF更轻量级,灵活性更高,广泛应用于企业级应用开发。 数据访问层是Java Web应用的重要部分,通常采用DAO模式来实现。DAO(Data ...
在租房网项目中,可能通过SOAP(Simple Object Access Protocol)或RESTful API来提供公开的租房服务,使其他应用或网站能集成这个租房平台的数据和服务。 项目实战过程中,开发者还需要了解和掌握以下知识点: - ...
《Java Web开发实战经典(基础篇MLDN)》是一本深度剖析Java Web开发技术的书籍,旨在帮助初学者和有经验的开发者系统地理解和掌握Java Web应用开发的基础知识。本书涵盖了从基本概念到实际开发流程的诸多方面,是学习...
Java Web开发是软件行业中一个重要的领域,主要用于构建基于互联网的应用程序。李兴华老师的"JAVA_WEB开发实战经典PPT"是一份宝贵的教育资源,为学习者提供了深入理解和实践Java Web技术的途径。这份PPT可能涵盖了从...
在PHP应用实战中,我们可以深入探索一系列实际的项目开发案例,这些案例涵盖了RSS阅读器、博客平台、论坛系统以及企业网站开发模板等多样化的内容。PHP作为一款强大的服务器端脚本语言,广泛应用于Web开发,其灵活性...
《Java.Web应用开发.J2EE和Tomcat第2版》这本书深入探讨了使用Java平台进行Web应用程序开发的技术和实践,特别是在J2EE(Java 2 Platform, Enterprise Edition)框架下结合Tomcat应用服务器的实现方法。以下是根据...
此外,还有RSS(Really Simple Syndication)用于内容聚合,以及APIs(应用程序接口)允许不同服务之间的数据交换。 3. **PHP与数据库交互**:在Web 2.0应用中,数据存储和检索通常是关键。PHP支持多种数据库系统,...
### Java软件开发实战:Java基础与案例开发详解 #### 14-4 Swing简介 Swing作为Java图形用户界面(GUI)的一个重要组成部分,被广泛应用于桌面应用程序的开发。相较于AWT(Abstract Window Toolkit),Swing提供了...
在“轻量级Java EE企业应用实战第4版第4章02源代码”这个压缩包中,我们聚焦于Java EE技术在企业级应用开发中的轻量化实践。本章主要探讨了如何通过简化架构和使用适当的框架来构建高效且易于维护的Java EE应用。...
2. **MVC设计模式**:Model-View-Controller模式是Java Web开发中的常见架构模式,用于组织应用程序结构。模型负责数据处理,视图负责展示,控制器协调它们之间的交互。 3. **JDBC与数据库连接**:Java Database ...