MVC架构实现基础:
  基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类。调用控制类时,根据配置文件初始化控制类相关的参数。数据库连接可持久化存在。控制类处理完毕,返回数据以及模板文件,渲染模板文件,返回给客户端。
步骤简化,则有4步:

  1. 按照配置文件或者注解,初始化所有的控制类,完成url和控制类的映射;
  2. 接收请求,判断使用的控制类;
  3. 注入控制类或方法需要的参数,调用对应的控制类或方法处理,返回数据和模板文件地址;
  4. 根据返回的数据和模板文件地址,渲染模板文件,返回给客户端。

  这是基本的MVC架构必须实现的流程,性能问题通过各种优化,基本可以达到可用的水平。

  控制类的实例化,依赖于反射机制。利用反射,获悉控制类的属性以及方法的参数,在调用控制类的方法时,可按照参数名称以及请求参数的对应关系,初始化相关参数,执行控制类方法。控制类方法执行完后,会返回约定的类型,比如字符串,表示需要使用的模板文件,或者重定向的地址;Spring的ModelAndView,包含数据和模板文件;Map,包含数据,使用默认的模板文件;void,没用数据,只是调用默认的模板文件。通过判断返回值类型,MVC框架可进行约定的行为,完成最后的View数据装配,返回给客户端。

  常见基于java语言的MVC架构有struct以及struct2,spring mvc。早期的spring多作为struct的控制类实例化模块存在,在web.xml中使用的是listener完成所有的bean初始化,依赖注入等操作,但配置文件的编写繁琐。struct的配置文件,需将请求地址以及控制类的映射关系,集中写在配置文件中,编写也很繁琐。

  在大型网站开发时,多人协作,集中编写同一个配置文件,会产生冲突,因此需要使用一种相对简单的方式实现,请求地址同控制类的映射关系配置。
  在java注解出现后,Spring MVC使用了注解的形式完成了此映射初始化,易于在多协作开发时实现。其实,工程结构即配置的关系映射方式,辅以注解特殊处理的方式,应该更加易于接受。

  返回的模板文件,struct使用了自定义的标签,侵入厉害,不易于复用。应使用一种侵入最小,修改最容易的方式作为模板的编写形式。或者前后端使用json格式进行通信,减少后端模板文件的使用,更加易于功能的扩展开发。

java MVC架构-spring mvc,struct2(理解)的更多相关文章

  1. java企业架构 spring mvc +mybatis + KafKa+Flume+Zookeeper

    声明:该框架面向企业,是大型互联网分布式企业架构,后期会介绍linux上部署高可用集群项目. 项目基础功能截图(自提供了最小部分)      平台简介        Jeesz是一个分布式的框架,提供 ...

  2. 第63节:Java中的Spring MVC简介笔记

    前言 感谢! 承蒙关照~ Java中的Spring MVC简介笔记 MVC简介 Spring MVC 基本概念 Spring MVC 项目搭建 maven 使用Spring MVC进行开发 实现数据绑 ...

  3. Java方式配置Spring MVC

    概述 使用Java方式配置Spring MVC,以及回顾一下Spring MVC的各种用法. Spring MVC简述 关于Spring MVC的介绍网上有很多,这里就不再赘述了,只是要说一下,Spr ...

  4. [MVC] 深入浅出Spring MVC

    [MVC] 深入浅出Spring MVC 转:http://4925054.blog.51cto.com/4915054/1176855 Spring MVC主要包括以下要点: 1:由Dispatch ...

  5. Java框架之Spring MVC(二)

    一.Spring MVC 验证 JSR 303 是ajvaEE6 中的一项子规范 ,叫 Bean Validation 用于对javaBean中的字段进行校验. 官方的参考实现是: Hibernate ...

  6. 【Java】关于Spring MVC框架的总结

    SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦.基于请求驱动指的就是使用请求-响应模型,框架的 ...

  7. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  8. [Java] Maven 建立 Spring MVC 工程

    GIT: https://github.com/yangyxd/Maven.SpringMVC.Web 1. 建立 WebApp 工程 下一步: 下一步: 选择 maven-archetype-web ...

  9. Spring MVC和Spring Boot的理解以及比较

    Spring MVC是什么?(1)Spring MVC是Spring提供的一个强大而灵活的模块式web框架.通过Dispatcher Servlet, ModelAndView 和 View Reso ...

随机推荐

  1. 10年程序员谈.Net程序员的职业规划(图/文) (转载)

    转载地址:http://www.cnblogs.com/donghongtao/p/3611623.html

  2. 设计模式学习之工厂方法(Factory Method,创建型模式)(2)

    接着上一讲中的简单工厂继续讲解,假如我们有了需要采集新的水果梨子,如果我们使用简单工厂中的方式的话,就会新增一个Pear类,然后实现Fruit类,然后修改FruitFactory类中获取实例的方法 g ...

  3. Xamarin.Android开发实践(十五)

    Xamarin.Android学习之应用程序首选项 一.前言 任何App都会存在设置界面,如果开发者利用普通控件并绑定监听事件保存设置,这 一过程会非常的枯燥,而且耗时.我们可以看到Android系统 ...

  4. 64位ubuntu安装32位jdk

    转自:http://blog.csdn.net/anladeyatou/article/details/8213334 ubuntu-11.10-desktop-amd64 jdk-6u23-linu ...

  5. Zookeeper的功能以及工作原理

    1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的 ...

  6. win 8.1 安装framework3.5

    其实win8的iso上带着net 3.5的功能的,但是并没有随着系统安装二安装上去.所以只要你有跟你系统同个版本的iso文件,就可以实现不联网安装net3.5.首先把装载你的iso.Win8系统可以打 ...

  7. Xamarin.iOS编译时无法连接苹果系统

    Xamarin.iOS编译时无法连接苹果系统   错误信息:Unable to connect to Address=’***.***.***.***’ with User=’***’   即使Vis ...

  8. HealthKit开发快速入门教程之HealthKit数据的操作

    HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...

  9. WPF之资源字典zz

    最近在看wpf相关东西,虽然有过两年的wpf方面的开发经验,但是当时开发的时候,许多东西一知半解,至今都是模模糊糊,框架基本是别人搭建,自己也就照着模板写写,现在许多东西慢慢的理解了,回顾以前的若干记 ...

  10. Fengshui-[SZU_B40]

    Description Fengshui is an ancient subject in Chinese tradition. Someone considers it as science and ...