Struts2是Apache发行的开源框架,是一个表现层web(MVC)框架。

Struts1:

Struts1也是apache开发的一套MVC框架,在2005年之前非常流行,其核心控制器是一个servlet,随着使用者的增多,弊端开始出现。

Struts2:

在以前有一个设计超前的框架XWork,后来推出XWork1和WebWork2,Sruts2就是apache和OpenSymphony组织合并开发出来。Struts2包含WebWork2的核心以及Struts1一些特性和功能,除此之外,与Struts1没有任何关系。

开发环境搭建

下载Struts2地址:http://struts.apache.org

下载解压后目录结构如下

apps 官方提供的案例Demo

docs 官方提供的文档

lib 官方提供的jar包

src 源码

dtd xml约束文件

对于首个Struts2项目jar包导入,可以进入apps目录下,找到struts2-blank.war项目,这是一个官方提供的Struts2空白项目,解压后(可以将项目放到tomcat webapps目录下,启动tomcat,tomcat就会将此项目解压),在WEB-INF下的lib目录下就是Struts2项目所需最基本的jar包,对于首个项目创建只需导入这些即可

jar包介绍

将struts2-blank目录下的classes目录下的struts.xml添加进自己创建web项目src目录中然后删除stuts标签所有内容,所需内容后续配置

在web.xml文件中需要配置struts核心过滤器

配置过滤器目的是用于拦截请求,由Struts的规则去处理请求,而不是以前servlet处理

Struts配置Action

在struts中配置package和action

写一个HelloAction类,需要写个hello方法

在WebContent目录下新建一个demo1目录并在目录下新建success.jsp文件

运行项目得到结果

首个项目搭建成功

为了在struts配置文件中能提示标签信息,需要将struts约束文件导入到eclipse中

首先复制http://struts.apache.org/dtds/struts-2.3.dtd,然后在eclipse中点击window,再选择preferences,然后找到XML CATALOG,点击Add进行添加,配置如下

配置完成保存后,在struts配置文件中写struts标签时会有提示

Struts2架构图

  1. 浏览器发送请求,经过一些列的过滤器后,到达核心过滤器StrutsPrepareAndExecuteFilter
  2. StrutsPrepareAndExecuteFilter通过ActionMapper判断当前的请求是否需要某个Action处理,如果不需要,则走原来流程,如果需要则把请求交给ActionProxy来处理
  3. ActionProxy通过ConfigurationManager询问框架配置文件(struts.xml),找到对应Action类
  4. 创建ActionInvocation实例,来调用Action的对应方法获取结果集name,在调用之前会执行相关拦截器
  5. 通过结果集的name找到对应的结果集来对浏览器进行响应

struts2有很多配置文件,当应用被tomcat加载的时候,struts2的配置文件就已经被加载过了

文件加载顺序

修改struts访问后缀

第一种方式添加如下一行就会修改访问路径后缀,因为struts加载配置文件是按顺序的,后加载的配置文件会覆盖前面文件相同的配置信息

第二种方式在src目录下创建一个struts.properties

在这个文件添加如下一行

struts.action.extension=htm

同样会覆盖struts.xml文件的配置

第三种配置方式,在web.xml文件中为struts2核心控制配置初始化参数

在struts.xml配置开发者模式为true

开发者模式好处是有更详细的错误信息

Struts2框架学习(一)相关推荐

  1. Struts2框架学习(二) Action

    Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...

  2. Struts2框架学习笔记_Struts2入门

    文章为学习struts的笔记,可供读者参考,有不足之处还望之指出. 参考: POJO与JavaBean的区别 Velocity Velocity官网 FreeMarker XSLT struts2 学 ...

  3. 框架学习系列 之Struts2框架学习总结

    1 介绍 学习和使用Struts2框架有了一段时间,这里将学习心得总结在博客的文章里面.期间也参考学习了其他优秀的文章,如有错误之处欢迎指正,转载请申明原文地址,希望大家支持,谢谢. 2 What:什 ...

  4. Struts2框架学习总结(从入门到精通)

    文章目录 一.Struts2入门 struts2概述 struts2入门案例 struts2底层执行过程 struts2相关配置 struts2的核心配置文件struts.xml struts2常量配 ...

  5. Struts2框架学习Action命名空间创建方式

         Struts2框架中Action类时一个单独的javabean对象,相比struts1来说,不需要去继承任何类型或实现任何借口,表单数据包含在Action中,而Struts1则必须继承org ...

  6. Struts2框架--学习笔记(下):OGNL表达式、值栈操作、拦截器、struts2标签、文件上传

    一.OGNL概述:OGNL是一种表达式 (1)在struts2中操作值栈数据. (2)一般把ognl在struts2中操作,和struts2标签一起使用操作值栈. (3)ognl不是strut2的一部 ...

  7. Struts2框架--学习笔记(上):搭建struts2工程、struts2基本概念、struts2对页面数据的操作

    概述: Struts2框架应用于javaee三层框架中的web层.是在Struts1和webwork基础上发张的一个全新的框架. 一.搭建一个最基本的struts2工程步骤: 1.导入基本的jar包依 ...

  8. Struts2框架学习之一:Hello World程序

    前言 Struts2框架Apache基金组织下的一个开源框架,基于MVC模式设计的Web应用开发框架.Struts 2是一个用于开发Java EE网络应用程序的开源Web应用框架,它利用并扩展了Jav ...

  9. Java之struts2框架学习

    About Struts2 Struts也是一款MVC框架 , Struts2是Struts的下一代产品,是在Struts1和WebWork的技术基础上进行了合并的全新的Struts2框架 其全新的S ...

  10. Struts2框架学习---ONE

    通过阅读本你将掌握:                    struts2框架的配置                    入门程序的实现:                    配置文件的加载顺序: ...

最新文章

  1. php链接数据库实行增删查改_利用PHP连接数据库——实现用户数据的增删改查的整体操作实例...
  2. texture android,Android OpenGL结合了SurfaceTexture(外部图像)和普...
  3. java calendar.add方法_Java Calendar add()方法与示例
  4. linux要不要home分区,有必要建/home/boot分区吗
  5. java浅度克隆_java对象 深度克隆(不实现Cloneable接口)和浅度克隆
  6. 绿地深蓝机器人_人工智能企业深兰科技获绿地控股3亿元战略投资
  7. Linux学习之chage命令
  8. C++ 返回当前类名
  9. 各种经典java小游戏_Java是这个世界上最好的语言!
  10. CentOS7虚拟机克隆,且成功互ping
  11. Unity3D学习笔记
  12. 万能声卡驱动win10_ASIO驱动(多通道版)-无驱外置USB声卡电音驱动
  13. HDMI level shifter、接口保护、USB TYPC转HDMI芯片
  14. ROS基础学习笔记(五):自定义消息练习以及订阅者发布者节点代码简介
  15. 基于腾讯地图实现精准定位,实现微信小程序考勤打卡功能
  16. python制作微信个人二维码_无聊的脚本,python生成随机二维码,手机微信自动扫脚本。...
  17. Web应用程序测试工具Top20
  18. 【202203-4】通信管理系统
  19. C语言十六进制转八进制
  20. 【JokerのZYNQ7020】SDK程序从QSPI启动。

热门文章

  1. Outlook邮箱已经发出的邮件怎么撤回或重发替换
  2. 阿里技术专家:日活5亿的淘宝技术发展历程和架构经验分享!18页ppt详解
  3. google-云计算梦想
  4. Android系统编译
  5. html 获取当前时间戳,JS获取当前时间戳方法解析
  6. LaTeX 中表格和图片的目录
  7. matlab求pai的近似值n取100,求π的近似值Matlab程序
  8. windows下的广告病毒
  9. 如何更好的使用今目标
  10. 人工智能书单(数学基础篇)