首页技术struts2动态方法调用,struts2的执行过程

struts2动态方法调用,struts2的执行过程

编程之家2026-06-27733次浏览

大家好,如果您还对struts2动态方法调用不太了解,没有关系,今天就由本站为大家分享struts2动态方法调用的知识,包括struts2的执行过程的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

struts2动态方法调用,struts2的执行过程

struts2 的struts.xml文件怎么配置

<!-- include节点是struts2中组件化的方式可以将每个功能模块独立到一个xml配置文件中然后用include节点引用-->

<include file="struts-default.xml"></include>

<!-- package提供了将多个Action组织为一个模块的方式

package的名字必须是唯一的 package可以扩展当一个package扩展自

另一个package时该package会在本身配置的基础上加入扩展的package

的配置父package必须在子package前配置

struts2动态方法调用,struts2的执行过程

name:package名称

extends:继承的父package名称

abstract:设置package的属性为抽象的抽象的package不能定义action值true:false

namespace:定义package命名空间该命名空间影响到url的地址,例如此命名空间为/test那么访问是的地址为

-->

<package name="com.kay.struts2" extends="struts-default" namespace="/test">

<interceptors>

<!--定义拦截器

name:拦截器名称

class:拦截器类路径

-->

<interceptor name="timer" class="com.kay.timer"></interceptor>

<interceptor name="logger" class="com.kay.logger"></interceptor>

<!--定义拦截器栈-->

<interceptor-stack name="mystack">

<interceptor-ref name="timer"></interceptor-ref>

<interceptor-ref name="logger"></interceptor-ref>

</interceptor-stack>

</interceptors>

<!--定义默认的拦截器每个Action都会自动引用

如果Action中引用了其它的拦截器默认的拦截器将无效-->

<default-interceptor-ref name="mystack"></default-interceptor-ref>

<!--全局results配置-->

<global-results>

<result name="input">/error.jsp</result>

</global-results>

<!-- Action配置一个Action可以被多次映射(只要action配置中的name不同)

name:action名称

class:对应的类的路径

method:调用Action中的方法名

-->

<action name="hello" class="com.kay.struts2.Action.LoginAction">

<!--引用拦截器

name:拦截器名称或拦截器栈名称

-->

<interceptor-ref name="timer"></interceptor-ref>

<!--节点配置

name: result名称和Action中返回的值相同

type: result类型不写则选用superpackage的type struts-default.xml中的默认为dispatcher

-->

<result name="success" type="dispatcher">/talk.jsp</result>

<!--参数设置

name:对应Action中的get/set方法

-->

<param name="url">;

</action>

</package>

Servlet和Struts2有什么区别,为什么要用他们,什么时候用

Servlet是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

Struts2是控制层框架,Struts2这个东西很多人认为是struts的升级版,但其实他合Struts没多大关系,仅仅只是使用方法类似,内部架构原理完全不同。但两者都是基于Serlvet的,但struts对Servlet API(注意是API)依赖程度很高不利于调试,struts2并不依赖Servlet API,更多的是其本身的API,有利于调试。

为什么用这些,很大一部分情况是不会写这类的抽象型面向协议的应用框架,另一些能写的大牛是因为这项技术在这些框架里已经体现的很成熟,并且通过一代一代版本的积累对已知漏洞的修补,已知攻击方式的防御都已经达到一定高度,并不是随手写一个能够代替的。最后万事没有绝对,struts2在爆出严重的提权漏洞后就慢慢的被spring mvc占领了市场。

至于什么时候用,这个不好说,合适的需求,合适的环境用合适的框架。

struts2拦截器工作原理

Struts2拦截器原理:当请求到达Struts2时,Struts2查找配置文件,并根据配置实例化相对的拦截器对象,串成一个列表,最后一个一个调用列表中的拦截器。Struts2拦截器栈将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,按其之前定义顺序被调用。

Struts2拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。

扩展资料:

拦截器的自定义:

1、自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类。

2、在struts.xml中注册Interceptor接口中定义的拦截器。

3、在需要使用的Action中引用struts.xml定义的拦截器,为了方便也可将拦截器定义为默认的拦截器,这样在不加特殊声明的情况下所有的Action都被这个拦截器拦截。

4、开发者自定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。

参考资料来源:百度百科-拦截器

参考资料来源:百度百科-Struts 2

文章到此结束,如果本次分享的struts2动态方法调用和struts2的执行过程的问题解决了您的问题,那么我们由衷的感到高兴!

幽魂(大头幽魂)EDG决赛在哪看,EDG晋级夏季赛决赛