如果你想真正了解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上查看电子邮件时,邮件会在[检测到的日期和时间]下划线 .您可以与他们互动以创建新的日历 ...
随机推荐
- XP机器上WCF采用X509证书加密时IIS读取证书的授权
XP机器上WCF采用X509证书加密时IIS读取证书的授权 XP下的授权命令为:winhttpcertcfg -g -c LOCAL_MACHINE\My -s 证书名称 -a "ASPNE ...
- JS学习进阶中 come on!
1,定义新的属性来扩展对象 新方法:defineProperty() 实例: var data = {}: Object.defineProperty(data,"type",{ ...
- HTML 5 背离贪吃蛇 写成了类似于屏幕校准
中间写了改 改了写 还是没做出自己满意的效果 ,看来自己的确不是一个走前端的料子.当然h5还是学一点好一点 具体说来 就是 在canvas 的画布中 鼠标点击后画上一个圆形 然后就有随机的在画布上面出 ...
- js简单 图片版时钟,带翻转效果
js简单 图片版时钟,带翻转效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- 远方的塔--Pylons
转自:https://en.wikipedia.org/wiki/Pylons_project#Pylons_Framework Pylons
- 【leetcode】Generate Parentheses
题目简述: Given n pairs of parentheses, write a function to generate all combinations of well-formed par ...
- CPU状态信息us,sy,ni,id,wa,hi,si,st含义
转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...
- eclipse 创建maven web项目
参考:http://www.cnblogs.com/hongwz/p/5456616.html eclipse 创建maven web项目
- 在C#中实现Json的序列化与反序列化
第一种方式利用 JavaScriptSerializer [对应的Assembly 为 System.Web.Extensions.dll] 进行处理: public static class Kas ...
- 华为荣耀6 H60-L02/L12(联通版)救砖包【适用于无限重启】
本帖最后由 HOT米粒 于 2014-11-16 20:43 编辑 华为荣耀6 H60-L02/L12(联通版)救砖包[适用于无限重启]说明: 1.本工具包用于华为荣耀6 H60-L02(联通版): ...