SSH-Struts(一)——基本原理「建议收藏」

SSH-Struts(一)——基本原理

大家好,又见面了,我是全栈君。

简单介绍

    Struts框架是MVC的一个实现,它非常好的结合了JSP、Servlet、JavaBean、Taglib等技术。它为MVC的各层提供了良好的支持,就像房地产商盖房子时先盖的大楼框架。

仅仅要引入到项目就相当于你已经有了主要的雏形。
    ok,在概念的层面去理解偏技术的知识,我不觉得这是一个好的出发点。对于这类知识的学习最好的方法应该是,动手。所以,我们不寻求准确的概念定义。而是从使用中来认知。

回想

    MVC

    作为MVC的一个实现。学习之前我们先简单的回想一下MVC的内容。MVC架构模式。将一个应用程序的出入、处理、输出流程分为:模型层、视图层、控制层。MVC模式下的各层关系和功能例如以下图(注:图片来源于《征服JSP企业站点开发》443页):

SSH-Struts(一)——基本原理「建议收藏」

    有关MVC的东西都在这张图里了,这里要提个题外话:MVC和三层的关系。听到也看到不少关于这两个的讨论,结论基本都是这两种模式没有关系。个人觉得这是从两种不同的角度去优化程序结构的。

MVC是从处理流程的角度去划分:显示、控制、处理;而三层则是从功能的角度出发:显示、逻辑处理、数据訪问。这两种模式是不冲突的!他们的关系也就是这么个关系了,不能简单的说是有或者没有关系。有点太粗暴了。

    Model1

    Model1也是MVC的一种,通过JSP+JavaBean来实现。由于JSP页面能够非常方便的写入JavaBean的代码涉及业务逻辑,也能够结合Html用用于显示。又能够通过Javascript来控制流转。也就是说JSP在应用程序中担当了多种角色:负责与client的通信、处理请求、处理回复。

这种结构的长处是简单、方便,能够高速的完毕应用开发。同一时候。也由于这种结构也导致了其开发的分配以及后期的维护的困难。如图为Model1的结构(注:图片来源《STRUTS有用开发指南 基于MVC+MYECLIPSE的JAVA WEB应用开发》3页)

SSH-Struts(一)——基本原理「建议收藏」

    Model2

    为了改善Model中JSP页面的指责过多而带来的问题,Model2引入了Servlet充当控制器,同一时候不在JSP中写入Java代码来直接訪问数据库。这样就是程序的各个部分职责单一明白了。即JSP页面仅仅负责显示。Servlet负责流转。

这样维护起来就相对easy。同一时候开发时的分工的界限也能够非常确定。这样做的导致的缺点则是处理流程变的复杂,本来一个JSP就能够搞定的事情如今则须要分多个步骤才干够完毕。Model2的结构例如以下图(注:图片来源同上一张,5页):

SSH-Struts(一)——基本原理「建议收藏」

Struts 

    Mode1和Model2仅仅是概念,Sturts则是实现。Struts是MVC的一种实现。说的准确一点应该是Model2的实现。

直接看图吧:

SSH-Struts(一)——基本原理「建议收藏」

    Struts对Model2的各个部分都做了实现,可是其最重点的是页面流转的部分。

即图中的ActionServlet+struts-config.xml的部分,使得页面流转的路径非常清晰。同一时候灵活性也非常好。
   小结:本篇博客主要是从MVC的概念到Struts的架构的实现一步一步的了解。从而可以知道Struts各个部分相应的MVC的什么概念。以及在应用程序中的角色。至于具体的Struts内的组件将在兴许的博客中介绍。

这样吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116151.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月25日 下午1:00
下一篇 2022年1月25日 下午2:00


相关推荐

  • 防盗链referer详解和解决办法「建议收藏」

    防盗链referer详解和解决办法「建议收藏」防盗链原理:http标准协议中有专门的字段记录referer1、他可以追溯到请求时从哪个网站链接过来的。2、来对于资源文件,可以跟踪到包含显示他的网页地址是什么。因此所有防盗链方法都是基于这个Referer字段1.事情经过在一开始,我打算将其他网站(如:爱奇艺,腾讯)的图片放在自己的网站(http://localhost…)上显示.<imgsrc=”http://pic6…

    2022年7月23日
    81
  • 图像识别与卷积神经网络

    图像识别与卷积神经网络卷积神经网络是除了全连接神经网络以外另一个常用的网络结果,其在图像识别方面表现十分突出。本文结合Tensorflow:实战Google深度学习框架,讲述卷积神经网络常用数据集,介绍卷积网络的结构思想,以及通过TensorFlow实现其设计。1图像识别数据集MNIST手写体识别数据集解决是一个相对简单的问题,而对于更加复杂的类别,可以用到CIFAR数据集。比如CIFAR10数据集收集了来自10…

    2022年5月30日
    47
  • java random nextint_java Random.nextInt()方法的具体使用

    java random nextint_java Random.nextInt()方法的具体使用licintnextIn intn 该方法的作用是生成一个随机的 int 值 该值介于 0 n 的区间 也就是 0 到 n 之间的随机 int 值 包含 0 而不包含 n 直接上代码 packageorg xiaowu random demo importjava util Random importorg junit Test publicclassR Testpublicv

    2025年10月13日
    5
  • 打开VS2010提示:产品密钥框

    打开VS2010提示:产品密钥框                                          &n

    2022年6月5日
    44
  • mysql 前缀索引 语法_MySQL 前缀索引

    mysql 前缀索引 语法_MySQL 前缀索引索引前缀使用字符串列的索引规范中的语法,您可以创建仅使用列首字符的索引。以这种方式仅索引列值的前缀可以使索引文件小得多。为a或column编制索引时,必须为索引指定前缀长度。例如:col_name(N)NBLOBTEXTCREATETABLEtest(blob_colBLOB,INDEX(blob_col(10)));前缀最长可以为1000个字节(InnoDB表中为767…

    2022年5月24日
    36
  • Idea运行项目报错:java.lang.OutOfMemoryError: Java heap space 解决方法

    Idea运行项目报错:java.lang.OutOfMemoryError: Java heap space 解决方法问题描述使用 idea 运行代码量比较多的项目时 会报错 java lang OutOfMemoryE Javaheapspac 问题处理这个显而易见时堆内存溢出 首先想到的时 tomcat 的内存分配太小了 调整 Idea 的内存分配 Help gt EditCustomVM gt 将配置改为以下内容 server Xms512m JVM 启动时分配的内存 Xmx1024m JVM 运行时内存 XX ReservedCode 300m X

    2026年3月20日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号