经典MVC框架技术-struts2基础知识
Struts2框架简介
struts2框架是在struts1和webwork技术的基础上,进行合并的全新框架,struts2以Webwork为核心,采用拦截器来处理用户的请求,这样的设计使得业务逻辑控制器与servletAPI完全分离,所以struts2可以理解为Webwork的更新产品。
Struts MVC模式
MVC全名 Model View Controller 是模型,视图,控制器的缩写,是用于将业务逻辑,数据和界面显示分离的方法。该模式是20世纪80年代为Smaltalk语言发展提出的,至今已经成为一种著名的设计模式
Struts框架是基于MVC设计模式的web应用框架。Struts框架主要有Struts1.x和Struts2.x两个版本,他们都是遵循MVC设计理念的开源Web框架
1.模型(Model)
模型层主要负责管理应用程序的数据,通过响应视图的请求和控制器的指令来跟新数据。在Web应用程序中一般用JAVABean或EJB来实现系统的业务逻辑。在Struts框架中,模型层也是使用JavaBean或EJB实现的
2.视图(View)
视图层主要用于应用程序中处理数据的显示。在Struts中视图主要有 jSP 页面和ActionForm两部分。视图层是系统与用户交互的界面,用于接收用户的输入信息,并将处理后的数据显示给用户,但视图并不负责数据的实际处理。
JSP页面是MVC模式中主要视图组件,他承当了页面信息显示或控制处理结果显示的功能。JavaBean封装了用户提交数据,在这些JavaBean中没有具体业务逻辑,只提供了所有属性的getter和setter方法,这些属性与用户表单的输入项一一对应。在Struts框架中,通过使用javaForm将用户输入的表单信息提交给控制器
3.控制器(Controller)
控制器主要负责接收用户的请求和数据,并判断应该将请求和数据交给哪个模型来处理以及处理后的请求和数据应该调用哪个视图来显示。控制器扮演的是调度者的角色。在web中一般是Servlet来实现控制作用
ActionServlet是Struts框架中的主要控制器,用来处理用户发送过来的所有请求。ActionServlet接收到用户的请求后,根据配置文件Struts.xml找到匹配的url然后再将请求发送给合适的控制器进行处理
经典MVC框架技术-struts2基础知识的更多相关文章
- Struts2入门1 Struts2基础知识
Struts2入门1 Struts2基础知识 20131130 代码下载: 链接: http://pan.baidu.com/s/11mYG1 密码: aua5 前言: 之前学习了Spring和Hib ...
- [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
[源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...
- 【JavsScript】JavaScript MVC 框架技术选型
你很喜欢Gmail和Trello之类的单页面应用,但是不太确定该从何开始.也许你的JavaScript代码是如此的杂乱无章,以致于你很想在下一个项目上尝试下JavaScript MVC库和框架,却苦于 ...
- Struts2基础知识
1.什么是Struts2框架? 答:struts2是一款优秀的mvc框架,集中解决了Controlller的相关问题,解决了部分视图相关的问题(struts2标签): mvc 是一种思想,包括Mode ...
- Shiro框架 - 【shiro基础知识】
转载:https://segmentfault.com/a/1190000013875092#articleHeader27 读完需要 63 分钟 前言 本文主要讲解的知识点有以下: 权限管理 ...
- shell编程技术之-基础知识
一.脚本结构 linux下shell的脚本,是将一系列命令序列写在一个文本文件,而这个文本文件时可执行的.相对命令行来说,开发效率提高.因此他的构架有2部分构成#!和命令序列.其中#!指明此脚本是用哪 ...
- DotnetBrowser高级教程-(4)使用MVC框架1-搭建基础框架
我们这次重点介绍下MVC框架的使用. 如果您之前使用过微软的mvc web框架,那么dotnetbrowser的mvc框架相信您也会很快上手,两者之间相似度约有80%. 所谓的mvc,以一个例子为例: ...
- 05基于python玩转人工智能最火框架之TensorFlow基础知识
从helloworld开始 mkdir mooc # 新建一个mooc文件夹 cd mooc mkdir 1.helloworld # 新建一个helloworld文件夹 cd 1.helloworl ...
- Hadoop学习笔记—15.HBase框架学习(基础知识篇)
HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase是一个开源的,分布式的,多版本的,面向列的存储模型,它存储的是 ...
随机推荐
- process_创建进程
import multiprocessingimport time#方式一def worker(interval): n = 5 while n > 0: print("The tim ...
- bat 调用exe
@set errorlevel=>nul :reInput @echo 请输入批次号: @set/p 批次号= >nul @set 批次号|findstr "\\<%sea ...
- Spark实践 -- 性能优化基础
性能调优相关的原理讲解.经验总结: 掌握一整套Spark企业级性能调优解决方案:而不只是简单的一些性能调优技巧. 针对写好的spark作业,实施一整套数据倾斜解决方案:实际经验中积累的数据倾斜现象的表 ...
- spring-data-jpa+hibernate 各种缓存的配置演示
本文所有测试用代码在https://github.com/wwlleo0730/restjplat 的分支addDB上 目前在使用spring-data-jpa和hibernate4的时候,对于缓存关 ...
- hdu-1166(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166 思路:线段树模板 #include<iostream> #include<cs ...
- ABP框架系列之二十三:(EF-MySql-Integration-EF-MySql-集成)
Introduction While our default templates designed to work with SQL Server, you can easily modify the ...
- 第二章:冠词(Les articles)
★定冠词(Les articles définis ): 阳性单数:le(l') 阴性单数:la(l') 阴阳性复数:les ()表示前面已经提到的人或事物: ()有关的名词已被其它的成分(补语,关系 ...
- MySQL的NO_BACKSLASH_ESCAPES
官方说明: https://dev.mysql.com/doc/refman/5.7/en/mysql-real-escape-string.html 相关资料: https://dev.mysql. ...
- hdu 5024 最长的L型
http://acm.hdu.edu.cn/showproblem.php?pid=5024 找到一个最长的L型,L可以是斜着的 简单的模拟 #include <cstdio> #incl ...
- POJ1066线段交点
POJ1066 题意:给出一个100*100的正方形区域,通过若干连接区域边界的线段将正方形区域分割为多个不规则多边形小区域,然后给出宝藏位置,要求从区域外部开辟到宝藏所在位置的一条路径,使得开辟路径 ...