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

简介

Struts框架是MVC的一个实现,它很好的结合了JSP、Servlet、JavaBean、Taglib等技术。它为MVC的各层提供了良好的支持,就像房地产商盖房子时先盖的大楼框架。只要引入到项目就相当于你已经有了基本的雏形。

ok,在概念的层面去理解偏技术的知识,我不认为这是一个好的出发点。对于这类知识的学习最好的方法应该是,动手。所以,我们不寻求准确的概念定义,而是从使用中来认知。

回顾

MVC

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

有关MVC的东西都在这张图里了,这里要提个题外话:MVC和三层的关系。听到也看到不少关于这两个的讨论,结论基本都是这两种模式没有关系。个人认为这是从两种不同的角度去优化程序结构的。MVC是从处理流程的角度去划分:显示、控制、处理;而三层则是从功能的角度出发:显示、逻辑处理、数据访问。这两种模式是不冲突的!他们的关系也就是这么个关系了,不能简单的说是有或者没有关系,有点太粗暴了。

Model1

Model1也是MVC的一种,通过JSP+JavaBean来实现。因为JSP页面可以很方便的写入JavaBean的代码涉及业务逻辑,也可以结合Html用用于显示,又可以通过Javascript来控制流转。也就是说JSP在应用程序中担当了多种角色:负责与客户端的通信、处理请求、处理回复。这样的结构的优点是简单、方便,可以快速的完成应用开发。同时,也因为这样的结构也导致了其开发的分配以及后期的维护的困难。如图为Model1的结构(注:图片来源《STRUTS实用开发指南
基于MVC+MYECLIPSE的JAVA WEB应用开发》3页)

Model2

为了改善Model中JSP页面的指责过多而带来的问题,Model2引入了Servlet充当控制器,同时不在JSP中写入Java代码来直接访问数据库。这样就是程序的各个部分职责单一明确了,即JSP页面只负责显示,Servlet负责流转。这样维护起来就相对容易,同时开发时的分工的界限也可以很确定。这样做的导致的缺点则是处理流程变的复杂,本来一个JSP就可以搞定的事情现在则需要分多个步骤才可以完成。Model2的结构如下图(注:图片来源同上一张,5页):

Struts

Mode1和Model2只是概念,Sturts则是实现。Struts是MVC的一种实现,说的准确一点应该是Model2的实现。直接看图吧:

Struts对Model2的各个部分都做了实现,但是其最重点的是页面流转的部分。即图中的ActionServlet+struts-config.xml的部分,使得页面流转的路径很清晰,同时灵活性也非常好。

小结:本篇博客主要是从MVC的概念到Struts的架构的实现一步一步的了解,从而能够知道Struts各个部分对应的MVC的什么概念,以及在应用程序中的角色。至于详细的Struts内的组件将在后续的博客中介绍。这样吧!

时间: 2024-10-07 00:29:21

SSH-Struts(一)——基本原理的相关文章

SSH—Struts(三)—执行器(Action)

前面已经介绍了Struts的基本原理和控制器ActionServlet,按照一个请求的流程经过了ActionServlet之后就要到达Action类中做具体的处理了.ActionServlet通过ActionMapping获取映射的Action对象,通过Action来完成请求的处理,最后Action返回一个ActionForward对象. Action的创建 当请求经过ActionServlet时,ActionServlet会根据请求中截取的地址搜索对应名字的ActionMapping,即Str

JavaWeb_(SSH)struts.xml核心配置、动态方法调用、结果集的处理

前导博文 JavaWeb_(SSH)使用Struts框架实现用户的登陆 传送门 JavaWeb_(SSH)Struts创建Action的三种方式 传送门 核心配置 动态方法调用 结果集处理 一.核心配置 struts.xml <!-- name:配置包名 namespace:给action的访问路径定义一个命名空间 --> <package name="MyPackage" namespace="/user" extends="strut

ssh(struts,spring,hibernate)开发的初步集成01--依赖

一.概念 SSH 通常指的是 Struts2 做前端控制器,spring 管理各层的组件,hibernate 负责持久化层. SSM 则指的是 SpringMVC 做前端控制器,Spring 管理各层的组件,MyBatis 负责持久化层. 二.构建流程 创建maven工程...在pom.xml文件中配置需要的依赖 <properties> <java-version>1.8</java-version> <junit-version>4.8.2</ju

JSP+Servlet演示Struts的基本原理

本文转载自:http://blog.csdn.net/shan9liang/article/details/8686333 shan9liang struts是开源项目.它通过采用 JavaServlet/JSP 技术,实现了基于Java EE Web应用的MVC的应用框架.Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展. 我们用JSP+Servlet实现"一个应用的增改信息",先来看一下,如果没有Struts,我们一般都是怎么做的. 首先看一下项目结构

使用MyEclipse整合ssh(Struts、Spring、Hibernate)三大框架(环境搭载+实例源码下载)

前言 SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及

SSH(Struts,Spring,Hibernate)和SSM(SpringMVC,Spring,MyBatis)的区别

SSH 和 SSM 的定义 本人经历过两种技术架构,分别是常说的 SSH 和 SSM ,SSH 在本科的时候老师就教过.SSM 则是去公司后用的比较多.现在我想将这两大阵营的技术做一下对比.由于本人能力有限,涉及技术较多,我只从具体的应用方面做一些对比. SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层. SSM 则指的是 SpringMVC 做前端控制器,Spring 管理各层的组件,MyBatis 负责持久化层. 共同之处是都使

myeclipse搭建SSH(Struts+spring+hibernate)由maven管理

一.由myeclipse新建Javaweb项目,先添加spring支持,添加完后再添加Struts支持. 注:在添加Struts支持之前先在src/main/java下新建一个包,然后生成一个HibernateSessionFactory.java文件 二.配置一下配置文件 1.applicationContext.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans 3 xmlns="

SSH(Struts、Spring、Hibernate)三大框架整合

1. 新建数据库ssh_db -> 新建表user_tb(id为主键,自动递增) 2. 导入jar包(struts.hibernate 和 spring) 3. 注册页面reg.jsp,将表单的 action 属性设置为 handleAction,input 元素的 name 属性值加上前缀“user.”,如user.username <%@ page language="java" contentType="text/html; charset=UTF-8&qu

SSH(Struts,Spring,Hibernate)所需架包官方下载

1.Struts所需架包点击进入官网下载 2.Spring所需架包点击进入官网下载 3.Hibernate所需架包点击进入官网下载

浅谈ssh(struts,spring,hibernate三大框架)整合的意义及其精髓

hibernate工作原理 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码. 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现.他很大程度的简化DAO层的编码工作 3. hib