首先我们就一起来认识认识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,不妨可以进来看看的更多相关文章

  1. 如果你想设置无人自动升级,我们推荐你将这个值修改为security,它会告诉 yum 仅仅升级修复安全问题的软件包。

    定期升级你的 CentOS 系统,是所有系统安全中最重要的措施之一.如果你不使用最新的安全补丁升级你的操作系统软件包,你将会让你的机器很容易被攻击. 如果你管理者多个 CentOS 机器,手动升级系统 ...

  2. 如果你想写自己的Benchmark框架

    目录 简介 八条军规 第一条军规 第二条军规 第三条军规 第四条军规 第五条军规 第六条军规 第七条军规 最后一条军规 总结 简介 使用过JMH的同学一定会惊叹它的神奇.JMH作为一个优秀的Bench ...

  3. 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server

    我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer& ...

  4. js如果你想删除您问

    if (confirm("OK删除?") == true)

  5. [APP]如果你想反编译

    反编译,主要用到两类工具,一个就是获取apk包的包名(appPackage)和类名(appActivity)的工具,其实就是反编译出java源代码,dex2jar和jd-gui:一个是将一个apk包反 ...

  6. 如果你想or即将成为一名程序员,那你需要知道这些东西!上岗须知~

    前两天公司学院的同学给我看了一下即将入职的应届生的数量,真是不少.感慨一下,一批新人即将到来,而自己又老去了一岁.码农是一个必将终身学习的职业.而相关的知识越来越多了.接下来该学什么?接下来该干什么? ...

  7. struts2官方 中文教程 系列三:使用struts2 标签 tag

    避免被爬,先贴上本帖地址:struts2 官方系列教程一:使用struts2 标签 tag http://www.cnblogs.com/linghaoxinpian/p/6901316.html 本 ...

  8. react 入门与进阶教程

    react 入门与进阶教程 前端学习对于我们来说越来越不友好,特别是随着这几年的发展,入门门槛越来越高,连进阶道路都变成了一场马拉松.在学习过程中,我们面临很多选择,vue与react便是一个两难的选 ...

  9. iOS和macOS上的Message-ID和Mail.app深度链接

    如何在iOS上通过电子邮件进行无缝的“无密码”身份验证. Apple平台上的邮件和日历集成 在macOS和iOS上查看电子邮件时,邮件会在[检测到的日期和时间]下划线 .您可以与他们互动以创建新的日历 ...

随机推荐

  1. 461. Hamming Distance and 477. Total Hamming Distance in Python

    题目: The Hamming distance between two integers is the number of positions at which the corresponding ...

  2. REPL环境

    一.Node的REPL基本操作 REPL(Read-eval-print-loop):交互式解析器 在REPL环境下,可以定义和运行变量.函数.对象. REPL的常用命令: 进入node,即进入了RE ...

  3. iOS内支付

  4. iOS UIButton 设置图片平铺

    UIImage *image2 = [UIImage imageNamed:imgName]; CGFloat top = ; // 顶端盖高度 CGFloat bottom = ; // 底端盖高度 ...

  5. popupwindow的基本使用以及基本动画效果

    1.创建一个popupwindow view的布局文件自己写一个就好了,这里就不说了 View view= LayoutInflater.from(context).inflate(R.layout. ...

  6. centos7下操作防火墙

    引言 最近使用centos7系统比较频繁,在配置服务器的时候,总是遇到能够ping通服务器,但是就是没有办法访问80端口,这个时候我的直觉告诉我,肯定是防火墙的原因,但是使用iptables却怎么都找 ...

  7. postgresql 设置只读用户

    postgresql 设置只读用户 ` CREATE USER readonly WITH ENCRYPTED PASSWORD 'ropass'; alter user readonly set d ...

  8. 【学习篇:他山之石,把玉攻】Ajax请求安全性讨论

    在开发过程中怎样考虑ajax安全及防止ajax请求攻击的问题. 先上两段网摘: Ajax安全防范的方法: 判断request的来源地址.这样的方式不推荐,因为黑客可以更改http包头,从而绕过检测. ...

  9. asp.net中获取本机的相关信息!(CPU、内存、硬盘序列号等)

    // 注意:首先要在项目bin目录中添加引用 System.Management using System;using System.Collections.Generic;using System. ...

  10. iOS 删除、重新排序xcdatamodel

    找到Xcode项目文件.xcodeproj,查看包内容. 里面有project.pbxproj,用文本编辑器打开. 找到类似如下内容段: /* Begin XCVersionGroup section ...