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. Linux 内核中断内幕

    转自:http://www.ibm.com/developerworks/cn/linux/l-cn-linuxkernelint/index.html#resources Linux 内核中断内幕 ...

  2. 会员制实现C2B定制有机农产品,被中粮我买投资的良食网这样卖有机生鲜

    前几天,中粮我买网战略投资了位于深圳的有机生鲜自营平台良食网,宣布双方将会在供应链上展开合作.然而良食网对大家来说还是比较陌生的,为此36氪专访了良食网的创始人唐忠. 良食网成立于2011年,是一家以 ...

  3. Unity3D入门之GUI基础以及常用GUI控件使用(2)

    1.GUI基础 (1)GUI部分是每帧擦除重绘的,只应该在OnGUI中绘制GUI,按钮:GUILayout.Button(“Hello”); 只读标签:GUILayout.Label() (2)修改控 ...

  4. 动态调用Webservice 支持Soapheader身份验证(转)

    封装的WebserviceHelp类: using System; using System.CodeDom; using System.CodeDom.Compiler; using System. ...

  5. DB2修改表字段

    1:删除字段非空属性 alter table XXX alter column XXX drop not null 此特性需要DB2 9.0以上的版本 2:添加字段非空属性alter table XX ...

  6. WebLogic Exception

    访问Weblogic发生以下异常: 2013-08-20 10:15:11 ERROR [ExceptionConvertOnlyFilter] doFilter (line:70) Could no ...

  7. java_ant详解

    转自:http://hi.baidu.com/victorlin23/item/721b892c770be3d7a517b695 1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说 ...

  8. HttpURL

    * 步骤:     1. new一个URL对象     2. new一个HttpURLConnection对象     3. connection连接     4. getResponseCode() ...

  9. JavaScript案例七:简单生成表格

    JavaScript简单生成表格,巩固基础知识点... <!DOCTYPE html> <html> <head> <title>JavaScript简 ...

  10. hdu 5761 Rowe Bo 微分方程

    1010 Rower Bo 首先这个题微分方程强解显然是可以的,但是可以发现如果设参比较巧妙就能得到很方便的做法. 先分解v_1v​1​​, 设船到原点的距离是rr,容易列出方程 \frac{ dr} ...