Sturts2学习笔记

复合材料仿真PAM-COMPOSITE 全工艺案例实操参数模板 阅读详情
  1. struts框架的工作原理;
    1.首先要经过Struts2框架的核心控制器StrutsPrepareAndExecuteFilter。
    然后核心控制器依次查找ActionMapper来决定这个请求是否调用action。如果ActionMapper决定调用action,StrutsPrepareAndExecuteFilter就把请求的处理控制权委托给ActionProxy。
    2.ActionProxy通过Configuration Manager查询Struts2框架的核心配置文件(struts.xml),找到所要调用的Action类。
    接下来,ActionProxy创建一个ActionInvocation实例,该实例负责命令模式的实现,包括在激活action本身之前调用配置的任意拦截器。
    3.在action执行完成之后,ActionInvocation实例负责根据action的返回结果码在struts.xml配置文件中查找要输出的结果(Result)。该结果通常是JSP或者FreeMarker模板,也可能是action。在输出的时候,模板可以使用框架提供的Struts2标签。
    然后,为action配置的拦截器将被再次执行(顺序和action被调用之前执行顺序相反)。
    最后,服务器的响应将通过web.xml文件中配置的Struts2框架核心控制器返回。
  2. 配置struts.xml,配置文件的编写,理解各元素所包含的属性以及值的表示(如action的配置:如method);
    1.web.xml
    StrutsPrepareAndExecuteFilter
    Struts2提供的核心控制器类
    框架开始工作的入口
    接管请求
    2.struts.xml
    该文件名称规定,只能位于src下
    package
    分模块管理,作用和java中的包类似
    name:自定义但不能重复
    namespace:命名空间,和url请求路径直接相关
    extends:必须直接或间接继承struts-default
    action
    url和处理类的方法进行映射
    name:为请求名,不加后缀
    class:处理类的完全限定名称,如果不配置,由默认类来处理
    method:处理请求的方法,默认为execute
    result
    result 结果集的配置
    name 结果集名称,和处理方法的返回值匹配,默认为success,可以自定义
    struts2提供了5个返回结果
    type 指定响应结果类型
    dispatcher 转发 默认
    redirect 重定向
    redirectAction 重定向到Action
    result的值为跳转页面,不加/为相对于namespace的路径
  3. struts框架中内置的result类型及其功能;在这里插入图片描述
  4. Action接口所定义的字符串常量
    SUCCESS NONE ERROR INPUT LOGIN
  5. ActionSupport类的理解
    ActionSupport类实现了Action接口,业务处理类也可以继承该类。
    struts2不要求我们自己设计的action类继承任何的struts基类或struts接口,但是我们为了方便实现我们自己的action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并重写此类里的public String execute() throws Exception方法。因为此类中实现了很多的实用借口,提供了很多默认方法,这些默认方法包括国际化信息的方法、默认的处理用户请求的方法等,这样可以大大的简化Acion的开发。
  6. 业务控制类的定义方式;
    1.定义业务逻辑接口的对象 2.定义与表单元素或get请求参数对应的属性 3.定义默认处理请求的execute方法
  7. Struts控制类访问Servlet API(如session对象)的四种方法。
    1.修改Action类,通过ActionContext 获取请求、会话和上下文对象相关联的Map 对象来实现存取属性的功能,代码片段
    2.修改Action类,通过实现Struts 提供的接口:RequestAware、SessionAware和ApplicationAware,获取请求、会话和上下文对象相关联的Map 对象来实现存取属性的功能,
    3.修改Action类,通过接口:ServletContextAware、ServletRequestAware、
    ServletResponseAware 直接访问Servlet API
    4.通过ServletActionContext 工具类直接访问Servlet API
  8. ognl的集合操作;
    1.直接生成List类型集合的语法:{e1,e2,e3,e4…}
    2.自己生成Map类型集合的语法:#{key1:value1,key2:value2,…}
    OGNL取得子集时有如下3个操作符:
    ? :取出所有符合选择逻辑的元素
    ^ :取出符合选择逻辑的第一个元素
    $ :取出所有符合选择逻辑的最后一个元素
  9. ognl应用示例(如实验题:创建业务控制类OgnlAction,测试基本属性、基本方法、类对象、静态属性、静态方法、List列表、Set集合、Map映射等各种类型参数采用OGNL表达式获取的办法。)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  10. 控制标签和数据标签分别有哪些?理解每一个标签的作用是什么?
    在这里插入图片描述
    debug标签会在页面中输出一个[Debug] 链接,单击链接可以查看值栈的内容,通常应用于web开发调试阶段。
    property标签用于输出值,使用value属性来指定要输出的对象,如果没有指定value属性,那么默认输出栈顶对象。
    set标签将一个值赋给指定范围内变量。如在页面中多次引用一个复杂的表达式,就可以将这个表达式赋给一个变量,然后直接引用变量。
    push标签用于将值压入值栈。
    bean标签用于创建JavaBean类的一个实例。
  11. 资源文件的后缀名;
    在这里插入图片描述
    在这里插入图片描述
  12. 什么是国际化,在Struts框架中如何应用国际化?
    在这里插入图片描述在这里插入图片描述
  13. 拦截器的工作原理;
    Struts2拦截器是一种AOP设计思想的体现,以链式执行,对真正要执行的方法(execute)进行拦截,首先按照Action配置的拦截器顺序依次执行相应的拦截器,调用完后再执行Action及result跳转,然后再次执行拦截器(与先前调用相反的顺序),在此链式的执行过程中,任何一个拦截器都可以直接返回,从而终止余下的拦截器或Action及reuslt的执行.
  14. 拦截器的使用方法。
    struts2的默认拦截器是定义在strus-default.xml中的。由于默认情况下,这些拦截器都是定义在struts-default包下的。所有在使用struts2时,定义的package需要直接或间接继承struts-default。提供struts2所有的功能。
    使用内置拦截器时需要引用拦截器。
    使用拦截器是通过在action的定义中使用<interceptor-ref …/>元素来实现的。其格式如下:
    <package …>


    …


    自定义拦截器的步骤:
    (1)创建拦截器类(两种实现方式:a)实现Interceptor接口 b)继承AbstractIntercepter类);
    (2)注册拦截器;
    (3)使用拦截器。
    创建拦截器类需要实现Interceptor(com.opensymphony.xwork2.interceptor.Interceptor)接口。
    Interceptor接口的定义中提供了init()、destroy()和intercept()3个方法。
    AbstractInterceptor是Struts2框架提供的一个实现了Interceptor接口的抽象类,该抽象类提供了init()和destroy()两个方法的空实现。
    通过继承AbstractInterceptor抽象类的方式创建拦截器类时,只需实现intercept()方法即可。
    注册拦截器分为注册拦截器和注册拦截器栈。
    1.注册拦截器
    注册拦截器又称为定义拦截器,是通过在配置文件中使用元素和内嵌的子元素在包中实现的。
    2.注册拦截器栈
    拦截器栈的定义是通过使用元素和内嵌的子元素在包的元素中实现的。子元素用于指明拦截器栈中所要使用的已经注册的拦截器。拦截器栈中拦截器的顺序很重要,它会影响action的行为。
    使用拦截器是通过在action的定义中使用<interceptor-ref …/>元素来实现的。其格式如下:
    <package …>


    …


    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
109. SAP ABAP 应用程序中的锁机制和工作原理介绍 SAP ABAP 系统中的锁概念,是 SAP ABAP 为了保证`数据一致性`而引入的一种保护机制。 像 SAP 这种复杂的企业级应用,系统中同一时间段的同一份数据,可能会有多个 Transaction(终端用户或者 API )同时进行读写操作。为了防止出现数据不一致,SAP ABAP 引入了锁机制。 这种锁机制并非数据库服务器层面的锁,而是在 SAP ABAP 应用服务器层面上工作,加锁和解锁都由专门的 ABAP Function Module 来完成。 阅读详情

相关推荐

YOLOv8魔改网络后训练全零?别慌,关掉AMP混合精度训练试试

本文探讨了YOLOv8魔改网络后训练出现全零指标的问题,指出AMP混合精度训练与自定义网络结构的不兼容性。通过分析梯度消失现象和AMP工作原理,提供了关闭AMP、调整学习率等解决方案,并建议预防性开发实践以避免类似问题。

weixin_28338005的博客 322

Struts2 interceptor 和 filter

Struts2 interceptor 和 filter   Struts2 的工作是基于filter的,其核心的控制器是一个filter:FilterDispatcher。框架的流程如下: a.客户端初始化一个请求; b.这个请求经过一系列的过滤器filter c.F

Magister_Feng的专栏 5660

Ubuntu 24.04 新增用户并禁用 root 账户操作指南

Ubuntu 24.04 新增用户并禁用 root 账户操作指南

深山技术宅的博客 1859

struts2:使用Filter作为控制器的MVC

使用Fliter作为控制器,可以方便的在应用程序里对所有资源包括静态资源进行控制访问以下是一个用Filter作为控制器的例子 程序结构 web.xml的配置<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:x

wade_chenw的博客 1348

蓝桥杯嵌入式(基础教程)STM32G431RBT6——创建工程以及点灯

首先选择正确的芯片类型:STM32G431RBT6工程的创建主要有配置时钟以及烧录的方式。在配置好之后需要对时钟进行配置,由于蓝桥杯的外部晶振是24MHz因此需要对时钟树进行相应的配置。第一步先点击时钟配置之后就可以对时钟进行相应的配置了最后一步,需要对工程起一个名字,并且要选择KEIL做为其相应的软件之后再需要再生成代码那里进行相应的控制。当然这样根据生成的工程不能直接使用会有一个报错,所以需要添加一个启动文件。这个启动文件可以在官方的LCD文件夹下复制到自己的工程中。

m0_74051113的博客 1093

用Python+NumPy手把手实现分数阶傅里叶变换(FRFT),搞定线性调频信号分析

本文详细介绍了如何使用Python和NumPy实现分数阶傅里叶变换(FRFT),特别针对线性调频信号(Chirp信号)分析。通过从零开始的代码实现和可视化案例,展示了FRFT在时变信号处理中的强大能力,帮助工程师和研究人员高效分析频率随时间变化的信号。

weixin_29062823的博客 218

Sturts2 初学学习笔记 4

一、本节知识点 二、新建web.xml和以前一样 三、新建com.eatok.form.UserBea.java package com.etoak.form; public class UserBean { //封装表单项 private String myname; //封装一个非表单项,此表单项不是用户提交的而是开发者自己设计的 private String tip;

拉你手跟我走的专栏 307

“详规一张图”——上海土地利用数据

本文围绕城市规划与土地管理中空间数据的重要性,介绍了基于地理信息系统(GIS)技术对上海市用地数据进行获取与处理的具体方法。文章以上海市为例,详细阐述了如何通过构建以10米为间隔的网格点覆盖全市范围,并采用GET请求方式从“上海用地规划官网:详细规划‘一张图’公众版”平台获取地块信息的过程。通过对API接口参数的设置,包括坐标系、几何类型和返回格式等,实现了对每个网格点对应地块的属性信息(如规划用地类型、容积率、地块编号等)及几何形状信息的提取。

weixin_45812624的博客 2198

学习笔记Sturts2 day02

复习:1.什么是struts2 1&gt;运行在web层.负责处理请求的. 2&gt;struts2已经帮我们封装了很多web中常用的功能(拦截器) 3&gt;struts2 与 struts1 没什么关系. struts2是基于webwork框架 2.struts2框架搭建 1&gt; 导包  |- struts2/apps/struts-blank.war/WEB-INF/lib 2&gt...

ManongMax的博客 177

【异常】Hermes Agent调用z.ai接口失败(余额不足)API call failed (attempt 1/3): RateLimitError [HTTP 429]

补充说明:同步尝试解析接口对应网页时,出现“网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试”提示,该提示不影响核心报错排查,仅作为辅助信息。

奶爸的编程之路,也就一周冷个三天 1197

PCL DBSCAN密度聚类【2026最新版】

点云密度聚类的PCL代码实现,与matlab自带的密度聚类算法进行对比验证,结果一致。3万多个点能再2秒左右运行出结果,算法效率尚可。

点云侠的博客 5682

sturts2框架的学习笔记,问题解决:

直接继承ActionSupport有很多的好处, sturt2的默认提供了输出校验错误的能力。 ActionSupport已经提供了国际化信息的能力,通过getText("");获取国际化的信息。 Sturt2也允许通过定义配置文件来完成数据校验。该校验框架实际上是基于Xwork的validator框架。 :No result defined for action com.te

prpjava2011的专栏 1424

2023华为od机试C卷【最富裕的小家庭】C语言 实现

在一颗树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为个小家庭。现给你一颗树,请计算出最富裕的小家庭的财富和。

MISAYAONE的博客 500

Struts2学习笔记1

 一.下载struts2.0.1http://struts.apache.org/downloads.html,下载struts-2.0.1-all.zip,这个压缩包中包含了开发struts2所需的struts2-core.jar核心包以及其它struts2所依赖的JAR文件,另外还有一些struts2的示例程序以及一些HTML的API文档。二.试用struts2.0.11. 新建一

楓雨人生 2万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

sturts2校验总结

.struts2提供的校验有以下几种方式:  1.使用从ActionSupport类中继承而来的validate()方法实现校验,开发人员可以自定义如何实现校验, 如果最后校验有错误,则返回INPUT逻辑视图,所以要在配置文件中配置此逻辑视图对应的物理视图。 2.同样是继承ActionSupport类中的validate*()方法,后面的*代表的是将要校验的方法名称,并且方法名首字母要大...

a javaer 149

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

sturts2入门实例

原文链接:http://gongjiayun.iteye.com/blog/802000 sturts2入门实例: 主要要完成以下加几点: a. 1. 引入struts2相应的jar包 从网上下载,或者用MyEclipse的菜单MyEclipse→project capabilites -> Add capabilites 2. 定义实体类 Book.j

qq804702802的专栏 490

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Sturts2 要点细谈

Struts2 概述 Struts2 是目前较为普及和成熟的基于MVC设计模式的web应用程序框架,它不仅仅是Struts1 的升级版本,更是一个全新的Struts架构。最初,是以WebWork框架和Struts框架为基础,通过提供增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。不久之后,Webwork框架和Struts社区联合创造了现在流行的Struts2框架。 Stru...

liveJQ 598

Sturts2 HelloWorld

最近开始学习Struts2,一个官网的HelloWorld居然搞了两天,一大堆莫名其妙的问题。万事开头难,今天终于把所有bug处理掉了。Struts2 官网的案例 http://struts.apache.org/docs/hello-world-using-struts-2.html搭建Tomcat开发环境 推荐两篇验证过可行没问题的文章: MyEclipse: http://www.tu

Dev_Lancer的技术博客 814

sturts2拦截器

sturts2自带了很多拦截器,使用方便。在网上商城项目中,我们自己定义了一个拦截器,操作如下: 写一个拦截器的类: package cn.itcast.shop.interceptor; import org.apache.struts2.ServletActionContext; import cn.itcast.shop.adminuser.vo.AdminUser; import c

焦玉丽 634

Sturts2复习笔记

Sturts2复习笔记 第二章 1.基于Struts2框架的web应用开发流程。 创建web项目.添加基于struts2框架所需要的jar包 创建Web项目的视图 创建业务控制类(Action) 创建struts2.xml 创建web.xml 发布web项目并测试 第三章、第四章 1. struts框架的工作原理; 发起请求 接受请求交给struts2的核心控制器 根据url查看struts...

zhangjin2024的博客 632

sturts2 回顾

第一个简单的struts2例子: 1、 创建一个web project 2、 导入jar包 具体jar包在struts 的例子中的lib文件夹中copy 3、 编写web.xml文件 4、 写一个action 5、 编码struts.xml文件 如果name="success";则success可以不写 6、 运行 浏览器中显...

dingxiaohuang4790的博客 115

sturts2上传文件

Struts2文件上传 2007-12-05 22:29:51| 分类: Struts2 | 标签: |字号大 中 小 订阅 Struts2使用开源项目Apache Jakarta Commons FileUpload和内建的FileUploadInterceptor拦截器实现文件上传,所需的jar包如下: commons-logging-1.1.jar freemarker-...

我的小仓库 167

Sturts2 ModelDriven

模型驱动 在model中实现ModelDriven接口,重写getModel方法,得new Model对象,Struts2不会自动帮我们new了。 ActionUser类 public class UserAction extends ActionSupport implements ModelDriven<User>{ private User user = new User()...

OVO_LQ_Start的博客 279

Sturts2 struts2Tags

property标签 property标签用于取得value的属性值 <li>property: <s:property value="username"/> </li> <!-- proerty标签中value中值默认解析为OGNL表达式 , 想获取为字符串则添加单引号。 --> ...

OVO_LQ_Start的博客 238

Struts2学习笔记1——基础知识

1.Struts2是现在Web开发中一个比较流行的MVC框架,它是由WebWork框架发展而来的,Struts1与Struts2如同小熊猫与大熊猫一样,虽然名字相同,但是区别比较大,Struts2充分吸收了Struts1的优秀之处,同时也避免了Struts1的不足之处,开发更方便快捷。2.Struts2在web.xml文件中主要配置一个过滤器用于接收页面请求,并将请求转发给后台逻辑处理,其作用类似于Struts1中的ActionServlet。其具体配置如下:struts2org.apache.struts

Tony Chen的专栏 2786

关于sturts2和FCKeditor的一些问题

本人在刚接触sturts2的时候遇到的一些问题,在我们做的项目时候用的FCKeditor编辑器和struts2结合的时候有些小问题,就是在做新闻编辑的时候出现一些显示html源码的问题,这时就要设置struts2的标签要指定escape="false"属性才可以显示正常的内容和图片。

chaoloveyou的专栏 658
下一篇: Maven问题总结
Tommy_java
博客等级 码龄9年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值