这个几乎n多语言平台下n多web框架都有的功能。
近说spring mvc注解,到php中直接obj->$method_name()调用,自己突然有兴趣,看看自己能否动手写一些代码自动从request url对应到一个类的方法——又拿自己熟悉的Groovy来试了。
贴下代码
// 已有变量 moduleStr对应类对象,actionStr对应方法名,都是从request url中取得。
// scriptDir scriptFileSuffix也是字符串,都是从配置里获取
if (moduleStr == null || actionStr == null) {
warn("Param Exception: m(odule) & a(ction) are required! ", request, response);
return;
}
String scriptFile = scriptDir + moduleStr + scriptFileSuffix;
File sf = new File(request.getRealPath(scriptFile));
if (!sf.exists() || !sf.canRead() || sf.isDirectory()) {
warn("IO Exception: " + scriptFile + " is not a readable file!", request, response);
return;
}
ClassLoader cl = GroovyExeDispatcher.class.getClassLoader();
CompilerConfiguration conf = new CompilerConfiguration();
conf.setSourceEncoding(encoding);
conf.setClasspath(request.getRealPath(scriptDir));
GroovyClassLoader groovyCl = new GroovyClassLoader(cl, conf);
Map<String, Object> r = null;
try {
Class groovyClass = groovyCl.parseClass(sf);
GroovyObject obj = (GroovyObject)groovyClass.newInstance();
// init parameters
obj.invokeMethod("initMap", new Object[]{this.preHandler(request)});
r = (Map<String, Object>) obj.invokeMethod(actionStr, null);
} catch (Exception e) {
warn("Method Execute Exception: " + scriptFile + " - " + e.getMessage(), request, response);
return;
}
分享到:
相关推荐
从阿赖耶识窥探——生命的根源.doc
互联网提供了一个更为开放的平台,让青年可以摆脱地域和传统观念的限制,追求自己理想的恋爱关系。然而,虚拟化趋势也带来了一些负面效应,如恋爱对象的匹配错配,以及青年人在现实生活中社交能力的下降等。 鉴于...
描述中提到的“用于自己电脑本身或其他”,暗示了该软件不仅限于在一台电脑上使用,而是可以在多台设备之间进行操作,这可能是通过USB驱动器的即插即用功能实现的。同时,它强调了软件的效率——“插入的U盘资料可以...
2. **隐私保护**:对于关心个人隐私的用户,ViewUrl可以帮助他们定期清理浏览记录,防止他人窥探。 3. **家长控制**:家长可以通过ViewUrl监控孩子的上网行为,确保他们在安全的网络环境中活动。 4. **技术支持**:...
"解密工具——星号查看器"是一款专用于揭示隐藏在密码输入框下星号(*)后...正确理解和使用这类工具,可以在一定程度上提高用户对自己数字资产的掌控力,但也提醒我们在享受技术便利的同时,时刻保持对网络安全的关注。
"闪盘窥探者"是一款专门针对U盘的软件,其主要功能是自动化地将插入计算机的U盘中的数据复制到用户预先设置的目标位置。这一工具对于需要定期备份U盘内容或者监控U盘数据变动的用户来说十分实用。在IT行业中,数据...
【标题】"U盘大盗程序4 闪盘窥探者.rar" 描述了一款针对U盘设备的恶意软件,这种程序通常被称为“U盘病毒”或“闪盘窥探者”。这类软件的设计目的是在未经用户许可的情况下,自动复制、传播或者执行恶意操作,对个人...
闪盘数据强盗——U盘窥探者 你的U盘里如果有小秘密的话,千万不可以随便在别人机器上乱用,因为现在有了FlashDishThief(闪盘窥探者),这是一个在后台偷取你闪盘里所有东西的小软件,只要你的闪盘一插上,...
这款名为“PGP最新版本——win64系统”的软件是专为64位Windows操作系统设计的最新版本,旨在为用户在Windows平台上提供高效且安全的数据保护。 1. **PGP工作原理**: PGP使用公钥加密技术,其中每个用户拥有一个...
总之,通过对“Android源码——新浪微博客户端源码”的深入研究,开发者能够全面提升自己的Android编程技巧,理解实际项目中的最佳实践,为今后的开发工作打下坚实的基础。同时,这也是一次难得的机会,让我们站在...
《Android屏幕锁源码解析与应用》 在移动设备安全领域,屏幕锁是保护用户隐私和数据安全的重要一环。...通过深入研究这些源码,开发者可以提升自己的技能,同时为自己的应用提供更加安全、个性化的解锁体验。
“停课不停学”背景下大学体育在线教学方案窥探.pdf“停课不停学”背景下大学体育在线教学方案窥探.pdf“停课不停学”背景下大学体育在线教学方案窥探.pdf“停课不停学”背景下大学体育在线教学方案窥探.pdf“停课...
【锁屏工具——类似于触屏手机屏幕的样子】 在IT领域,锁屏工具是计算机系统中一个重要的实用程序,它的设计灵感往往来源于触屏手机的解锁界面。这些工具为用户提供了一种安全的方式,防止未经授权的访问,同时增添...
然而,产品力被认为是品牌成功最核心的因素,以Nike的AJ系列为例,其销售额超越了所有国内品牌,展示了产品的价值所在。此外,优秀的企业管理者,如霍斯特、奈特和马克帕克,他们在品牌发展中的决策和领导力对企业的...
* 科根把数据以100万美元卖给一家剑桥分析公司,该公司建立了一套算法——挖掘数据价值、洞察用户内心。 * 该算法非常精准,很多媒体把剑桥大学心理实验中心通过点赞来窥探人的性格、了解人的性格进行了分析发现。 ...
### ORACLE报表分析利剑——分析函数:深度解析与应用 #### 一、理解分析函数:数据统计的新维度 分析函数作为Oracle数据库中一项高级功能,专为解决复杂报表统计需求设计,其核心优势在于能够对数据进行精细的...
通过对比分析这两个版本的源码,我们可以发现它们在功能实现、UI设计、性能优化等方面的异同,这对于优化自己的安卓应用开发能力大有裨益。 1. **源码结构分析** - 分析源码目录结构,了解项目组织方式,如:`res`...
详解百年文具企业百乐,窥探国内文具市场发展空间.pdf
Qt源码窥探(1)---创建窗口过程图解。。