1.   Struts2概述

1.1.  什么是struts2框架

1.1.1.   概念

Struts2 是一个非常优秀的MVC框架,基于Model2设计模型

关键词解释:

l  框架:

框架是可以重复使用的一些或一整套代码,通常与具体业务无关,也可以认为是软件的半成品。

框架的好处是:可以提高开发效率,简化开发过程。

举一个现实世界的例子:

你组装一台电脑,你需要自己去再去制造主板、CPU或机箱么?你只需要将这些电脑的半成品,按照其规范(规矩),组装到一起就行了。

这样比你从0开始来制造一台电脑是不是快多了?

l  MVC:

全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计模式,或软件设计思想。

优点是:代码结构更加清晰,为了更好维护和扩展:

m  模型:负责数据处理。

v  视图:负责页面数据的显示。

c  控制:负责控制调度不同的逻辑代码。

MVC的设计模式在很多语言中都有实现,如java,.net等

JSP规范提出了两种用JSP技术建立应用程序的开发模式,分别称作JSP Model 1 和JSP Model 2:

Model1: JSP (控制、显示)+ JavaBean (数据处理)

Model2 : Servlet (控制)+ JSP(显示) + JavaBean(数据处理)--符合MVC思想架构模式。

Java web企业应用开发根据又根据Model2(也可以说是根据MVC思想)制定了三层结构体系(来自于JavaEE规范):

表现层(页面数据显示、页面跳转调度)jsp/servlet

业务层(业务处理和功能逻辑、事务控制)-service

持久层(数据存取和封装、和数据库打交道)dao

【注意】

Struts2 是一个表现层框架 ,用来简化表现层代码开发的。

1.1.2.   Struts2的前世今生

由传统Struts1和WebWork两个经典框架发展而来。

Java兴起 98年 (最早进行java开发分方向 j2se 、j2ee、 j2me )

J2EE 企业级应用软件开发

2000 年左右出现struts1 (几乎所有开发人员 都在用 ) struts1 设计有缺陷

Webwork 出现, 设计思想比struts1 先进的多 ,引入 拦截器机制、 ognl 表达式语言

struts2是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架,

Struts 2以WebWork为核心(两个框架均源自xwork命令模式框架),但开发流程类似于struts1(让开发人员平滑过度)。

1.2.  开发包相关

1.2.1.   开发包下载

官网地址:http://struts.apache.org/

1.3 扩展阅读

struts_01的更多相关文章

  1. Struts(十四):通用标签-form表单

    form标签是struts2标签中一个重要标签: 可以生成html标签,使用起来和html的form标签差不多: Strut2的form标签会生成一个table,进行自动布局: 可以对表单提交的值进行 ...

  2. Struts(十三):通用标签

    Struts标签简介: Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性,实现了更好的代码复用.Struts2允许在页面中使用 ...

  3. Struts(十二):异常处理:exception-mapping元素

    配置当前action的声明异常处理 1.exception-mapping元素中有2个属性 exception:指定需要捕获的异常类型 result:指定一个响应结果,该结果将在捕获到异常时被执行.即 ...

  4. Struts(十):OGNL表达式(一)

    Struts2 用s:porperty标签和OGNL表达式来读取值栈中的属性值: I.值栈中的属性值: 1.对象栈:读取对象栈中的某一个对象的属性值: 2.Map栈 :request,session, ...

  5. Struts(九):值栈(OGNL)

    引言 在我们开发过程中,往往会使用一个对像传递到一个具体的action中,之后到跳转页面中访问对应对象的具体的参数. 比如:我们搭建一个struts2项目: 回顾下如何搭建strut2: 1.下载的s ...

随机推荐

  1. MySQL安装与使用过程中的相关问题

    数据库远程连接拒绝访问解决办法: 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql&q ...

  2. puppeteer,新款headless chrome!

    puppeteer puppeteer是一种谷歌开发的Headless Chrome,因为puppeteer的出现,业内许多自动化测试库停止维护,比如PhantomJS,Selenium IDE fo ...

  3. iOS应用如何得知用户有新拍的图片?

    首先,应用要知道图片库中的新图片,最重要是要有图片库的访问权限.然后每张图片除了图片本身的构成要素(像素)外,还会保存图片的拍摄时间(时间戳),地点等相关信息.时间戳就是判断新拍照片的最主要依据.

  4. mysql忘记密码解决的办法

    [很管用]忘记mysql root密码解决办法 1.编辑MySQL配置文件: 首先停止mysql服务, 然后开始编辑mysql配置文件:vi /etc/my.cnf在[mysqld]配置段添加如下一行 ...

  5. openstack-ocata-仪表盘服务6

    Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器.一. 安装和配置 接下来 ...

  6. R︱Softmax Regression建模 (MNIST 手写体识别和文档多分类应用)

    本文转载自经管之家论坛, R语言中的Softmax Regression建模 (MNIST 手写体识别和文档多分类应用) R中的softmaxreg包,发自2016-09-09,链接:https:// ...

  7. Windows控制台下绘制简单图形

    最近接触到一个很有意思的问题,如何在Windows控制台下画图,翻遍了C的头文件也没找到画图的函数,好吧,那就用Windows提供的API函数吧,看来想移植是没戏了.先画一个简单的图,类似心电图那种吧 ...

  8. JSP自定义标签配置

    JSP自定义标签配置 JSP自定义标签 <taglib>         <taglib-uri>/WEB-INF/you.tld</taglib-uri>     ...

  9. JDBC连接池(三)DBCP连接池

    JDBC连接池(三)DBCP连接池 在前面的随笔中提到 了  1.JDBC自定义连接池  2. C3P0连接池 今天将介绍DBCP连接池 第一步要导入jar包   (注意:mysql和mysql 驱动 ...

  10. var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)

    一,原理 1.1,解析1 将字符串解析为JavaScript代码,比如:var a = "alert('a');";这里的a就只是一个字符串而已,输出的话也是alert(a);这句 ...