如果你想真正了解Struts2,不妨可以进来看看
首先我们就一起来认识认识Struts2到底是什么?作为框架,它又是用来处理哪些问题的呢?正所谓脚踏实地走,即时离梦想会远一点,但却很真实,那我们就一步一步的来了解Struts2吧!
一、既然我们刚才说了“框架”,就先来说说什么是web框架吧。为什么这么说呢?Struts2框架是基于Struts和webwork设计框架,Strus2也必将成为最为流行的web开发框架之一。
1.早期的wenb框架应用主要是静态页面浏览(如新闻的浏览),这些静态页面使用了html语言来编写,随着网络的发展,很多线下业务开始向网上发展,基于Internet的web也变得越来越复杂,不但要与数据库交互,而且还要和用户进行交互,由此衍生了各种服务器端页面编写技术,目前应用较多的三种页面编写技术就是ASP、JSP、PHP。
2.其中JSP通过在html页面文件中嵌入了java脚本代码,从而实现动态网页功能。然而,对于一些较大的应用,大量的html和java代码的混杂导致了页面的显示逻辑和业务逻辑交错在一起,使得代码可读性变差,维护难度增加,不利于html编辑人员和java开发人员的分工协作;为了分离页面的表现逻辑和业务逻辑,SUN公司在JSP早期规范中制定了两种JSP开发模型;分别为模型1(model 1)和模型2(model 2)。
2.1 模型1 使用JSP+JavaBeans技术将页面显示和业务处理分开,JSP实现页面显示,JavaBeans对象用来承载数据和实现业务逻辑。模型1的结构图如下:

2.2 模型2 在模型1中,JSP页面嵌入流程控制代码和部分的逻辑处理代码,我么你可以将这一部分提取出来,放到单独的角色中,这个角色就是控制器角色,而这样的web框架就是模型2了,因为模型2符合MVC框架模式,即模型-视图-控制器(Model-View-Controller),接下来我们通过图来了解MVC
到底做什么?它又有那些作用?再顺便看看模型2的图结构。












虽然理论有点多,但是你如果想要了解框架,最好还是多去看一些理论,因为只有这样才能让你明白,框架的思想到底是什么?
如果你想真正了解Struts2,不妨可以进来看看的更多相关文章
- 如果你想设置无人自动升级,我们推荐你将这个值修改为security,它会告诉 yum 仅仅升级修复安全问题的软件包。
定期升级你的 CentOS 系统,是所有系统安全中最重要的措施之一.如果你不使用最新的安全补丁升级你的操作系统软件包,你将会让你的机器很容易被攻击. 如果你管理者多个 CentOS 机器,手动升级系统 ...
- 如果你想写自己的Benchmark框架
目录 简介 八条军规 第一条军规 第二条军规 第三条军规 第四条军规 第五条军规 第六条军规 第七条军规 最后一条军规 总结 简介 使用过JMH的同学一定会惊叹它的神奇.JMH作为一个优秀的Bench ...
- 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server
我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer& ...
- js如果你想删除您问
if (confirm("OK删除?") == true)
- [APP]如果你想反编译
反编译,主要用到两类工具,一个就是获取apk包的包名(appPackage)和类名(appActivity)的工具,其实就是反编译出java源代码,dex2jar和jd-gui:一个是将一个apk包反 ...
- 如果你想or即将成为一名程序员,那你需要知道这些东西!上岗须知~
前两天公司学院的同学给我看了一下即将入职的应届生的数量,真是不少.感慨一下,一批新人即将到来,而自己又老去了一岁.码农是一个必将终身学习的职业.而相关的知识越来越多了.接下来该学什么?接下来该干什么? ...
- struts2官方 中文教程 系列三:使用struts2 标签 tag
避免被爬,先贴上本帖地址:struts2 官方系列教程一:使用struts2 标签 tag http://www.cnblogs.com/linghaoxinpian/p/6901316.html 本 ...
- react 入门与进阶教程
react 入门与进阶教程 前端学习对于我们来说越来越不友好,特别是随着这几年的发展,入门门槛越来越高,连进阶道路都变成了一场马拉松.在学习过程中,我们面临很多选择,vue与react便是一个两难的选 ...
- iOS和macOS上的Message-ID和Mail.app深度链接
如何在iOS上通过电子邮件进行无缝的“无密码”身份验证. Apple平台上的邮件和日历集成 在macOS和iOS上查看电子邮件时,邮件会在[检测到的日期和时间]下划线 .您可以与他们互动以创建新的日历 ...
随机推荐
- 如何在Linux中搭建禅道8.4.1(httpd+php+mysql)
1.安装httpd 命令:yum install httpd 然后一路y即可 2.安装php 命令:yum install php 3.安装php-mysql 命令:yum install php ...
- springmvc session和model解析
关于springMVC中的session,有2种使用方法,第一种是直接传递httpsession,第二种是使用@SessionAttributes("userId") 注解 这里附 ...
- 非旋treap模板
bzoj3580 非旋转treap 在大神教导下发现split一段区间时先split右边再split左边比较好写 #include <cstdio> #include <cstdli ...
- 模拟搭建Web项目的真实运行环境(七)
下面这个是mongo驱动的小案例,里面也有涉及到一点redis的操作 https://github.com/SuperRocky/MyMongoDriver 接下来通过几张图片主要介绍一下每个文件的具 ...
- Destroying The Graph(poj 2125)
题意: 给你一张有向图,你可以选择一个点:• 摧毁其所有的入边,代价A[i].• 摧毁其所有的出边,代价B[i].• 求摧毁这张图的最小代价.• 数据范围1000 /* 很经典的一道题目(我这么弱,稍 ...
- json_decode返回NULL
最近在调用某公司的API时,将对方返回的数据,使用PHP的json_decode函数解析,但是返回NULL,最终排查为对方传送来的json格式有误 打印$_REQUEST,数据结构大致如下: arra ...
- Linux正则表达式
正则表达示的组成: 一般字符:没有特殊意义的字符 特殊字符(meta字符):元字符,有在正则表达式中有特殊意义 正则表达式中常见的meta字符 POSIX BRE与ERE中都有的meta字符 \ 通常 ...
- 使用AFNetWorking上传图片
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; NSString *string ...
- Oracle获取干净的建表DDL语句,不含其它存储、表空间、段属性
早上一个同事资讯怎么获取到建表语句而且是不带存储那种SQL.Oracle自己提供了一个函数DBMS_METADATA.GET_DDL,但是获取到的建表语句含有存储.表空间.以及一些其他段的属性.如图: ...
- eclipse优化设置
1. Eclipse的控制台console有时候经常的跳出来,非常的烦人! 让它不经常的调出来,可以按下面的操作去掉它: windows -> preferences -> r ...