一、Struts2简介

1、Struts2概述

                   Struts2是Apache发行的MVC开源框架。注意:它只是表现层(MVC)框架。

M:model-----数据封装------->javabean

V:view------视图----------->jsp

C:control------控制器--------> struts2( filter),struts1(servlet)

2、Struts2的来历

                   Struts1:也是apache开发的一套mvc的开源框架。在2005年之前非常流行。

弊端:Struts1的核心控制器就是一个Servlet。随着使用者的增多,弊端开始出现。

Struts2:在long long ago,有一个设计超前的框架XWork,后来推出了XWork1和WebWork2。Struts2就是apache和OpenSymphony组织合并开发出来。

里面包含了WebWork2的核心及Struts的一些特性和功能。除此之外,和Struts1没有任何关系了。

二:环境的搭配

1、下载Struts2开发包

http://struts.apache.org

2、开发包目录结构

3、搭建开发环境

3.1、拷贝必要jar包到classpath中

拷贝哪些jar包?

找到Struts2自带的例子中,struts-blank的war包,在它的\WEB-INF\lib目录下的jar包全拷贝。

3.2、建立Struts2的配置文件

at the top of classpath(在最顶层的构建路径),建立一个默认名称为struts.xml的配置文件。

注意:

1.文件名大小写。

2.创建位置。

3.该名称允许修改,但是我们一般不改。

3.3、配置控制器

a、配置位置:在web.xml中

b、配置什么: struts2已经写好了的一个过滤器。

结论:

struts2比struts1优秀的一个体现就是,它用了更为强大的过滤器作为控制器了。

3.4、验证是否成功

部署应用,启动Tomcat,不报错表示搭建成功。

三、第一个Struts2案例

以下步骤是日后实际开发中经常重复的。

1、建立一个jsp文件

2、在struts.xml文件中配置

3、建立动作类和动作方法

4、结果视图页面

5、测试:

6、关于struts.xml没有提示的问题

分析原因:没有找到对应的dtd约束文件。

解决办法:

a.上网

b.不能上网:

四、第一个案例的执行过程

1.tomcat启动:加载应用的web.xml

2. 实例化并初始化过滤器

3.加载struts.xml配置文件

4.客户端发送请求

5.请求到达过滤器

6.截取请求动作名称,并在struts.xml中找

7.找到后进行实例化

8.调用对应的方法动作,方法具有返回值

9.根据返回值,找到结果视图

10.显示结果视图,并返回给浏览器

struts2从浅之深(一)简介的更多相关文章

  1. struts2从浅至深(五)上传与下载

    1.编写上传页面 2.编写动作方法 import java.io.File;import java.io.IOException; import javax.servlet.ServletContex ...

  2. struts2从浅至深(三)拦截器

    一:拦截器概述 Struts2中的很多功能都是由拦截器完成的. 是AOP编程思想的一种应用形式. 二:拦截器执行时机                             interceptor表示 ...

  3. struts2从浅至深(二)详细配置

    1.加载时机 当应用被服务器加载时,Struts的配置文件就已经加载了 2.加载顺序 default.properties------->struts-default.xml---------& ...

  4. struts2从浅至深(六)总结

    在我认为strust2的作用就是 1.主要跟前端交互的框架数据提交先经过struts 2.起到对数据的过滤,接受数据 3.把数据显示到前段,具有很成熟的ognl技术,用起来特别方便 4.还提供了跟前段 ...

  5. struts2从浅至深(六)contextMap(存取数据)

    A:存数据 1.利用ActionContext存数据 这种方式最简便 这是一个购物车案例 把查询来的数据放入到Session中存储起来 2.利用valuestack值栈存数据 把查询出来的数据放入到值 ...

  6. struts2从浅至深(四)下载文件

    1.创建下载文件动作类 2.配置struts 3.提供一个下载链接 4.下载页面 为什么文件名是链接名 只是以链接名显示,但文件的本身是个图片秩序改掉后缀名就可以了

  7. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  8. 浅入深出之Java集合框架(下)

    Java中的集合框架(下) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,哈哈这篇其实也还是基础,惊不惊喜意不意外 ̄▽ ̄ 写文真的好累,懒得写了.. ...

  9. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

随机推荐

  1. ArcGIS案例学习笔记2_2

    ArcGIS案例学习笔记2_2 联系方式:谢老师,135_4855_4328,xiexiaokui#qq.com 时间:第二天下午 2018年8月12日 案例1:模型构建器,山顶点提取 背景:数据量大 ...

  2. 吴裕雄 数据挖掘与分析案例实战(5)——python数据可视化

    # 饼图的绘制# 导入第三方模块import matplotlibimport matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['S ...

  3. mysql数据库的卸载

    1.控制面板    程序和功能  卸载MySQL相关 2.卸载MySQL的安装目录  与储存目录 3.删除C盘下隐藏MySQL文件:组织-----文件夹和搜索选项-----------查看------ ...

  4. java基础六 [异常处理](阅读Head First Java记录)

    在程序运行时,我们不能保证所有服务和方法都是正确的,如果发生问题报错会导致程序崩溃,所以需要对一些可以预见的错误进行异常处理,通过throw去抛出一个异常,然后用try..catch..将要执行的该方 ...

  5. cf-Round542-Div2-C(暴力+DFS)

    题目链接:http://codeforces.com/contest/1130/problem/C 思路: 利用DFS搜索(r1,c1)和(r2,c2)可到达的点的集合,分别存在a1,a2中,若a1= ...

  6. Java中Generics的使用

    1.Java的Generics与C++的Template由于Java的Generics设计在C++的Template之后,因此Java的Generics设计吸取Template的很多经验和教训.首先, ...

  7. fusioncharts Y轴不显示中文的解决方法(转载)

    使用fusionChart主要是被其界面吸引了,各类图表都很好看,下载以后文档也很周全,支持的语言也很多种 ,容易上手.fusionChart工作原理主要是通过后台传xml数据源给报表前台flash ...

  8. iOS 管理库 Carthage 安装以及使用

    https://blog.csdn.net/Mazy_ma/article/details/70185547

  9. CentOS下zabbix监控mysql5.6版本主从

    目录 CentOS下zabbix监控mysql5.6版本主从 1. Zabbix添加自定义监控流程 2. 具体步骤 1. 编写监控mysql主从脚本 2. mysql赋权 3. 查看脚本执行效果 4. ...

  10. Castle ActiveRecord学习(四)延迟加载、分页查询、where条件

    一.延迟加载 //用户发布的主题,一对多:Table:外键表:ColumnKey:外键:Lazy:延迟加载:Cascade:级联操作(级联删除) [HasMany(typeof(ThemeInfo), ...