阅读笔记—MVC
MVC设计模式
Model 1 体系结构
在Model 1 体系结构中,每一个请求的目标都是JSP页面。JSP页面负责完成请求所需要的而所有任务,其中包括验证客户、使用JavaBeans访问数据库及管理用户状态等。最后响应结果也通过JSP页面发送给客户。
在该结构中没有一个核心组件控制应用程序的工作流程,所有业务处理都是用JavaBeans实现。该结构具有明显的缺点:
- 他需要将实现业务逻辑的大量Java代码嵌入到JSP页面,这对不熟悉服务器端编程的Web页面设计人员来说将十分困难。
- 这种方法并不具有代码可重用性。
Mode 2 体系结构
Model 2 体系结构又称MVC设计模式。在这种结构中,将Web组件分为模型(Model)、视图(View)和控制器(Controller),每种组件完成各自的任务。
在这种体系结构中,所有请求的目标都通过Servlet或过滤器(Filter),它充当应用程序的控制器。Servlet分析请求并将响应所需要的数据收集到Action对象或JavaBeans对象中,该对象作为应用程序的模型。最后Servlet控制器将请求转发到JSP页面。这些页面使用存储在JavaBeans中的数据产生响应。JSP页面构成了应用程序的视图。
优点:将业务逻辑和数据访问从表示层分离出来。控制器提供了应用程序的单一入口点,它提供了较为清晰的实现安全性和状态管理的方法,并且这些组件可以根据需要实现重用。然后,根据客户的请求,控制器将请求转发给合适的表示组件,由该组件来响应客户。这使得Web页面开发人员值关注数据的表示,因为JSP页面不需要任何复杂的业务逻辑。
实现MVC设计模式的一般步骤
- 定义JavaBeans存储数据
在Web应用中通常使用JavaBeans对象或实体类存放数据,从JSP页面作用域中取出数据。因此,首先应根据应用处理的实体设计合适的JavaBeans。 - 使用Servlet处理用户请求。
在MVC设计模式中,Servlet充当控制器功能,它从请求中读取请求信息、创建JavaBeans对象、执行业务逻辑,最后将请求转发到视图组件。Servlet通常不直接向客户输出数据。 - 结果的存储
创建了与请求有关的数据并将数据存储到JavaBeans对象中后,接下来应该将这些对象存储在JSP页面能够访问的地方。 - 将请求转发到JSP页面
再是用请求作用域共享数据的时候,应该使用RequestDispatcher对象的forward()方法将请求转发到JSP页面。在使用会话作用域共享数据的时候,使用响应对象的sendRedirect()方法重定向可能更合适。 - 从JavaBeans或其他作用域对象中提取数据。
请求到达JSP页面之后,使用JSP动作指令提取JavaBeans数据,也可以使用表达式语言提取数据。
阅读笔记—MVC的更多相关文章
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
- <<UML大战需求分析>>阅读笔记(2)
<<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- Hadoop阅读笔记(七)——代理模式
关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...
- Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...
- Hadoop阅读笔记(五)——重返Hadoop目录结构
常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...
- Hadoop阅读笔记(四)——一幅图看透MapReduce机制
时至今日,已然看到第十章,似乎越是焦躁什么时候能翻完这本圣经的时候也让自己变得更加浮躁,想想后面还有一半的行程没走,我觉得这样“有口无心”的学习方式是不奏效的,或者是收效甚微的.如果有幸能有大牛路过, ...
随机推荐
- BZOJ 2724 [Violet 6]蒲公英(分块)
题意 在线区间众数 思路 预处理出 f[i][j] 即从第 i 块到第 j 块的答案.对于每个询问,中间的整块直接用预处理出的,两端的 sqrtn 级别的数暴力做,用二分查找它们出现的次数.每次询问的 ...
- CMSIS-RTOS 中断处理Interrupt Handling
RTOS中断处理Interrupt Handling 在RTOS中使用信号来触发线程间的行为是比较简单和高效的,而对于Cortex-M微控制器来讲,从中断源获取信号来触发线程同样是一种重要的方式.虽然 ...
- ruby redis的集群管理器
#========================================================================================== # => ...
- Hadoop集群管理--保证集群平稳地执行
本篇介绍为了保证Hadoop集群平稳地执行.须要深入掌握的知识.以及一些管理监控的手段,日常维护的工作. HDFS 永久性数据结构 对于管理员来说.深入了解namenode,辅助namecode和da ...
- Python(七) 高级部分:面向对象
一.类的定义 # 面向对象 #有意义的面向对象代码 # 类 = 面向对象 # 类.对象 #实例化 # 类最基本的作用:封装 class Student(): name = '' age = 0 def ...
- ireport 追加新报表
ireport 追加新报表 /* To change this template, choose Tools | Templates * and open the template in the e ...
- Multi-process Architecture
For Developers > Design Documents > Multi-process Architecture This document describes Ch ...
- 紫书 习题 10-22 UVa 10479 (找规律)
自己一直在纠结这个串的构造方法 而没有观察串本身的规律-- 2的63次方用 unsigned long long 然后可以发现串是递归构造的. 将串分成1,1,2,4,8,16, 然后会发现s串里面1 ...
- 【Uva 1626】Brackets sequence
[Link]: [Description] 括号序列由这样的规则生成: 1.空字符是一个括号序列; 2.在括号序列两端加上一对括号也是括号序列; 如(s),[s]; 3.两个括号序列A和B,连在一起, ...
- Vijos——T1053 Easy sssp
https://vijos.org/p/1053 描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的带权有向图. 要求你写一个程 ...