Java实现JavaScript的escape()函数
2015-04-21 09:58
489 查看
最近在工作中遇到一个问题,有一个包含有空格以及汉字的url在页面中被js的escape()函数处理后,向后台请求资源,我需要在java中实现这一功能,并使用处理后的url向服务器请求。
这个URL如果不处理后台会返回拒绝访问的错误,所以原封不动发送这条路绝对是不行的。在网上搜索一番,大致有两种解决方案。1、使用java实现js的escape()函数功能,复杂;2、调用javaAPI解决,简便。
首先是自己动手,用java代码实现escape()函数,这个解决办法网上有代码。据说是好使的,由于本文未采用此方法,所以代码可用性不确定,请自行下载测试。
2、使用javaAPI解决。这个方法简便,准确。经调研,java并没有可以直接使用的与escape()功能相同的函数,但是java中有个很强大的工具可以曲线实现这一功能,这个API就是javax.script.ScriptEngineManager。
从以上寥寥几行代码即可使用java实现js的escape()函数,而且绝对不用担心有bug,个人认为这才是这个问题的最佳解决方案。
这个URL如果不处理后台会返回拒绝访问的错误,所以原封不动发送这条路绝对是不行的。在网上搜索一番,大致有两种解决方案。1、使用java实现js的escape()函数功能,复杂;2、调用javaAPI解决,简便。
首先是自己动手,用java代码实现escape()函数,这个解决办法网上有代码。据说是好使的,由于本文未采用此方法,所以代码可用性不确定,请自行下载测试。
2、使用javaAPI解决。这个方法简便,准确。经调研,java并没有可以直接使用的与escape()功能相同的函数,但是java中有个很强大的工具可以曲线实现这一功能,这个API就是javax.script.ScriptEngineManager。
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class java2js { public static void main(String[] args) { ScriptEngineManager sem = new ScriptEngineManager(); ScriptEngine engine = sem.getEngineByExtension("js"); try{ //直接解析 Object res = engine.eval_r(" escape('朋友-周华健.mp3')"); System.out.println(res); }catch(Exception ex){ ex.printStackTrace(); } } }
从以上寥寥几行代码即可使用java实现js的escape()函数,而且绝对不用担心有bug,个人认为这才是这个问题的最佳解决方案。
相关文章推荐
- JavaScript escape/unescape编码的Java实现
- JavaScript escape/unescape编码的Java实现[摘]
- javascript escape/unescape编码的Java实现
- java实现javascript escape unescap
- JavaScript escape/unescape编码的Java实现
- js,java实现escape()和unescape()函数解决以给方式提交中中文参数问题
- Java版的实现JavaScript中的eval()函数
- javascript实现像java、c#之类的sleep暂停的函数功能
- javascript实现的像java、c#之类的sleep暂停的函数代码
- 在PHP中实现Javascript的escape()函数代码
- 在PHP中实现Javascript的escape()函数代码
- Java版的实现JavaScript中的eval()函数
- java中调JavaScript的eval() 函数实现字符串的运算(ScriptEngineManger)
- java通过javascript引擎调用javascript数学函数实现计算
- 实现JavaScript中currying(函数柯里化)
- 实现JavaScript中的分时函数
- JAVA实现EXCEL公式专题(六)——查找引用函数
- Java基础——003反射(中)eval函数的实现
- javascript另类方法高效实现htmlencode()与htmldecode()函数