Struts2的Action中方法的几种访问方式详解编程语言
2023-06-13 09:20:31 时间
在Struts2中方法调用概括起来主要有以下几种形式:沿用上篇文章关于OGNL表达式的程序
1、指定Action的method属性访问
先在Action中再添加一个方法:
public String success(){ System.out.println("方法为:"+"success"); return SUCCESS; }
!-- 第一种访问方式 http://localhost:8081/struts2/execute http://localhost:8081/struts2/success 当action标签不指定method属性时,默认访问Action的execute方法 http://localhost:8081/struts2/default package name="cn.test.action" namespace="/" extends="main" action name="success" method="execute" result name="success" /WEB-INF/page/index.jsp /result /action action name="default" result name="success" /WEB-INF/page/index.jsp /result /action action name="execute" method="execute" result name="success" /WEB-INF/page/index.jsp /result /action /package
2、通配符“*”的方式访问
在使用method属性来实现同一个Action的不同方法处理不同的请求时,会发现,随着方法的增多,从而导致大量的Action配置,这时我们就需要通过使用通配符来解决Action配置过多的方法。
!-- 第二种访问方式通配符方式 http://localhost:8081/struts2/execute 一个通配符 -- package name="cn.test.action" extends="main" action name="*" method="{1}" result name="success" /WEB-INF/page/index.jsp /result /action /package !-- http://localhost:8081/struts2/Ognl_execute span 多个通配符之间用"_"隔开并注意action的name的属性-- package name="cn.test.action" extends="main" action name="*_*" method="{2}" result name="success" /WEB-INF/page/index.jsp /result /action /package
3、“!”的是方式访问
注意:该方法都要开启DMI:Dynamic Method Invocation即动态方法调用。
constant name= struts.enable.DynamicMethodInvocation value= true /
开启动态方法调用后,这样虽然方便,但可能带来安全隐患,通过url可以执行Action中的任意方法。
相关链接:今天晚上 中国互联网被Struts2漏洞血洗
Apache struts2漏洞血洗中国互联网 系统安全如何保障?
Apache Struts 2 远程命令执行漏洞,你受到影响了?
!-- 第三种访问方式 !号前面为访问的action的标签名,后面为访问的方法名 http://localhost:8081/struts2/ognlAction!success package name="cn.test.action" extends="main" action name="ognlAction" result name="success" /WEB-INF/page/index.jsp /result /action /package
4、其他方式访问
!-- 第四种访问方式 http://localhost:8081/struts2/ognlAction?method:execute=xxx package name="cn.test.action" extends="main" action name="ognlAction" result name="success" /WEB-INF/page/index.jsp /result /action /package
以上是struts2中访问action中的方法的方式,建议使用通配符的方式。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/11188.html
cjava相关文章
- Java:对double值进行四舍五入,保留两位小数的几种方法详解编程语言
- struts2:多业务方法的处理(动态调用,DMI)详解编程语言
- 在线程里运行scrapy的方法详解编程语言
- python在windows下操作word的方法详解编程语言
- python 获取mac地址的两种方法详解编程语言
- dom一些常用的操作JS方法介绍详解编程语言
- js window.onload 加载多个函数的方法详解编程语言
- Java本地方法封装库 JNA详解编程语言
- java抽象类中抽象方法的实现详解编程语言
- 手机端 调用输入法 上的搜索键 进行搜索的使用方法详解编程语言
- 图片在DIV中垂直居中的显示方法详解编程语言
- 官方提供的屏蔽百度转码Baidu Transcoder的方法no-transform详解编程语言
- java将File转换为MultipartFile的两种方法详解编程语言
- C++中的类型转换方法详解编程语言
- javascript eval动态变量的方法详解编程语言
- html5手机端播放音效不卡的方法详解编程语言
- PHP md5和js md5保持一致的方法详解编程语言
- php.ini 添加的模块没更新的解决方法详解编程语言
- php debug_backtrace方法跟踪代码调用详解编程语言
- Zendstudio文件注释模板设置方法