欢迎访问牛耳教育官网 专注实战IT培训技术20年!
400-0731-162
当前位置:IT培训机构 > IT培训资讯 > IT培训课程--自定义MVC框架实现之原理分析

IT培训课程--自定义MVC框架实现之原理分析

时间: 2020-12-10 | 作者: admin | 分类:IT培训资讯 | 关键字:IT培训,IT培训课程 | 阅读量:

导读:简单的说,MVC就是Model—View—Control(模型,视图、控制器)结构。

   1.MVC结构原理

 

   1.1.什么是MVC

 

   简单的说,MVC就是Model—View—Control(模型,视图、控制器)结构。MVC结构的编程思想在三十年就提出了,它基于这个一个现实:大多数软件根据模块的用途在逻辑上都可以分为三个部分:负责展示数据对象给用户的界面层—view层、根据界面反馈处理业务逻辑的控制层---Control层、系统的数据模型,即域对象Model层。MVC这个概念最早是为桌面应用程序开发提供指导的;在WEB应用开发中按照MVC思想实现,在如下原因:

 

   无论是使用jsp还是servlet,都很容易将html和java代码混合到一起,这会导致系统维护困难、分工不清;例如在加有jsp代码段的网页中,程序员与美工之间的配合就非常困难!MVC结构的系统会从根本上强制我们将web系统中的数据对象、业务逻辑、用户界面三者分离---虽然这不可能绝对做到!

 

   在web开发中,这样的一个模型是通常见到的:

IT培训课程--自定义MVC框架实现之原理分析

   通常,我们将jsp、html等页面文件称做视图,因为它负责显示东东给用户看;将Servlet称做控制器,因为它在服务器上接收用户请求;最重要的原因是,Servlet是纯java代码,用它处理用户请求便于封装和模块化;至与模型,就是要显示给用户的数据对象,也必须写成纯java代码,本例中就是我们前面分析的那三个数据对象。那么怎么把它们结合起来呢?goon!

 

   1.2.MVC构架设计

 

   一个系统将不断增加新的服务功能,从设计之初就必须考虑到支持后继的迭代开发;前期设计必须严格按照MVC思路进行设计开发,符合Mode-2标准,即以jsp做视图表现;以Servlet做业务转发;以后台java对象处理具体业务;使三者在编码时分离,以为后续开发打下良好基础。HTML+JSP+Servlet+JavaBean结构:

 

   JSP负责生成动态网页

 

   Servlet负责流程转发至对应的Action实现

 

   JavaBean(pojo和dao)负责业务数据模型存取

 

   如下例图:

IT培训课程--自定义MVC框架实现之原理分析

   1.12.控制器servlet设计分析

 

   前面我们己分析到用户可以执行的几种操作,现在必须具体定义。系统中我们只使用到了一个servlet,即ControlServlet,用户的所有请求都会提交给这个Servlet,用户提交的数据可分为两种:一种为用户输出的业务信息,如个人资料、一种是用户操作的类型,如注册、修改个人信息等,我们一般称作用户动作;甚止可以认为每户在页面上每点击一个提交铵钮或一个链接,就是一个动作。在web应用编程中,区别这两种数据非常重要!一类是处理的数据对象,一类决定了用什么样的逻辑处理!显然后者更重要。

 

   为了便与系统的扩展,我们使用servlet请求路径可以模糊配置的特点,将所有的用户请求都发给主控servlet。那么后台servlet中如何区分用户是何种(需要用什么样的逻辑处理)请求呢?我们在web.xml这样定义:

IT培训课程--自定义MVC框架实现之原理分析

   所以有请求路径都以(动作名字.do)格式发送,接受请求的servlet解析这个路径就会得到对应的动作名字符串,再根据这个字符串做出相应处理。稍作分析,会发现系统需要有如下动作实现:

IT培训课程--自定义MVC框架实现之原理分析

   这些动作请求处理的对象都是主控servlet中得到的Request和Response对象,根据这个规则,我们设计如下处理方式:每一个action对应与一个处理Request和Response对象的类,这样,每个类中就可以定义一个execute(Requestreq,Responseresp)方法,这个方法处理完用户请求后,返回一个字符串,代表要输出到客户端的url,是一个HTML,也可能是一个JSP文件---由ControlServlet转发给客户端;根据这些分析我们将进一步深入以便构造一个简洁的MVC结构。

 

   关键规则:所有请求的路径的格式为{命令名字}.do<?请求参数>

 

   我们的MVC理框架结构有五部分组成:

 

   1.ControllerServlet.java:请求分发控制器,解析请求中的动作名字,调用动作工厂对象生成的动作对象处理请求,处理后返回的结果为目地url,控制器再将请求和应答对象转向目标url。

 

   2.ActionFactory.java:该工厂类将请求中的动作名转换成servlet可以用来完成其工作的动作类。

 

   3.Action.java:接口类,该接口定义所有动作的公共接口。

 

   4.具体Action的实现类:指实现了Action接口的类,会被ActionFactory工厂根据请求中的名字创建,从而调用其具体实现的方法处理Request\Response对象后,返回一个URL由主控Servlet转发给用户。可以理解为,为一个具体的Action实现类用于处理页面上每一种用户点击(请求)

 

   所有的请求在servlet的service()方法中处理。结构图如下:

IT培训课程--自定义MVC框架实现之原理分析

免责声明:本文内容来源于公开网络,若涉及侵权联系尽快删除!,【本文标题和网址】IT培训课程--自定义MVC框架实现之原理分析:http://www.csnewer.com/biancheng/939.html
申请免费试学
快捷咨询
资深IT讲师一对一为您解答IT问题
电话
咨询服务电话
400-0731-162
微信
IT培训_长沙java培训机构_专注于实战IT培训技术20年-牛耳教育官网
关注了解更多IT知识
QQ
热门课程
java软件开发课程 Java是一种可以撰写跨平台应用程不齐人60%Java工程师缺口序的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、...
嵌入式应用开发课程 嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的...
软件测试课程 软件测试具有人才缺口大、发展方向广、专业无限制、适合零基础、技术上手快、职业生涯稳等优势。 人才缺口大 国内测试...
Web前端开发课程 web前端开发是创建Web页面或app等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方...
java+大数据课程 什么是Java大数据? Java,是一门面向对象编程语言,具有功能强大和简单易用的特征。作为**受欢迎的计算机语言,发展至今...
python人工智能课程 Python是一门神奇的编程语言,它具有简单易学、就业面广、就业薪资高、竞争压力小、开发效率高、行业风口等6个优势,下...
热门资讯
本文:(零基础学java)零基础也能学Java,5大Java学习方法!,最近有很多同学来问小编,关于学习java的方法,下面小编根据...
大家的生活已经离不开嵌入式就连常用的共享单车都离不开嵌入式。所以越来越多的人看中了嵌入式的就业前景,转行来做嵌...
Web前端培训机构的好坏直接决定了你学习后的就业薪资,市面上web前端培训机构那么多,应该如何选择靠谱的web前端培训机构...
当谈到Python时,一般指的是CPython。但Python实际上是一门语言规范,只是定义了Python这门语言应该具备哪些语言要素,应当能...
打算参加嵌入式培训的同学对于嵌入式培训课程的内容都特别的关心,只有在了解了课程内容之后才能更好的知道这个嵌入式...
2020年学习嵌入式晚不晚?1、学技术不像学艺术,只要坚持,任何时候学都不晚。很多人对于学习嵌入式应用开发都会有所顾...
本文(零基础学python)0基础学习Python容易犯哪些错误呢?主要介绍1. 忘记写冒号 在if、elif、else、for、while、class、def 语句后...
参加IT培训,学哪个技术前景更好呢?java开发、大数据、人工智能、机器学习都是很好的方向。至于选择什么专业,这需要根...
it培训学校有用吗?其实判断IT培训学校有没有用,看培训的课程是否能满足自己的需求就可以了,如果培训的课程自己都了...
本文:IT培训就业感言(牛耳教育IT培训就业感言),介绍:转眼间几个月在牛耳教育的IT培训就结束了,从学习到就业也算是...