package 测试包;
import javax.script.*;
public class SSSSSSSSS { public SSSSSSSSS() {
// TODO Auto-generated constructor stub
} public static void main(String[] args) {
// TODO Auto-generated method stub
ScriptEngineManager sem=new ScriptEngineManager();
ScriptEngine se=sem.getEngineByName("javascript");
try{se.eval("var a=3;var b=4;print(a+b)"); //执行js代码 }catch(Exception e){e.printStackTrace();} } }

补充:今天在后台想对URL进行编码,URL中有参数

        String url = "http://www.baidu.com?param=中国";
System.out.println(URLEncoder.encode(url));

结果: (对一些特殊字符,比如// ? & 也进行转义)

http%3A%2F%2Fwww.baidu.com%3Fparam%3D%E4%B8%AD%E5%9B%BD

于是想到在Java中调用JS的encodeURI()方法:

package cn.xm.exam.test;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; public class PlainTest {
private static final Logger LOGGER = LoggerFactory.getLogger(PlainTest.class); public static void main(String[] args) {
String url = "http://www.baidu.com?param=中国";
System.out.println(encodeURI(url));
} public static String encodeURI(String url) {
if ("".equals(url)) {
return "";
}
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("javascript");
String jsCommand = "encodeURI('" + url + "');";
LOGGER.debug("jsCommand -> {}", jsCommand);
try {
String result = (String) se.eval(jsCommand); // 执行js代码
return result;
} catch (Exception e) {
LOGGER.error("encodeURI error,jsCommand ->{}", jsCommand, e);
return "";
}
}
}

结果:

http://www.baidu.com?param=%E4%B8%AD%E5%9B%BD

java中执行JS脚本的更多相关文章

  1. java中执行js代码

    要在java中执行js代码,首先明白,java不支持浏览器本身的方法.支持自定义的js方法,否则会报错 先新建一个js文件:jsss.js 内容如下: function aa(a,b){ return ...

  2. 在java代码中执行js脚本,实现计算出字符串“(1+2)*(1+3)”的结果

            今天在公司项目中,发现一个计算运费的妙招.由于运费规则各种各样,因此写一个公式存到数据库.下次需要计算运费时,直接取出这个公式,把公式的未知变量给替换掉,然后计算出结果就是ok了. 一 ...

  3. Java8中执行js脚本

    代码中除了callJSFunctionFromFile函数,其他均转载于文章JDK1.8中如何用ScriptEngine动态执行JS import jdk.nashorn.api.scripting. ...

  4. 在Java中执行js代码

    在某些特定场景下,我们需要用Java来执行Js代码(如模拟登录时,密码被JS加密了的情况),操作如下: ScriptEngineManager mgr = new ScriptEngineManage ...

  5. 自动化测试中执行JS脚本方法封装

    执行JS脚本方法封装: class JavaScript(Base): def execute_javascript(self, js): """执行 JavaScrip ...

  6. java中调用js脚本

    JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...

  7. 【Android】java中调用JS的方法

    最近因为学校换了新的教务系统,想做一个模拟登陆功能,发现登陆的账号和密码有一个js脚本来进行加密 整理了一下java中执行JS的方法 智强教务 账号 密码 加密方法 var keyStr = &quo ...

  8. 在.Net中执行js

    在.Net中执行js 利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数.这个组件的获得方式:在NuGet中输入搜索"Noesis& ...

  9. AngularJs中,如何在render完成之后,执行Js脚本

    AngularJs是Google开源的前端JS框架.使用AngularJs, 我们能够容易地.健壮的开发出类似于Gmail一样的单页Web应用.AngularJs这个新兴的MVC前端框架,具有以下特点 ...

随机推荐

  1. 使用crontab定时执行python文件问题追根溯源

    使用crontab执行定时任务不是第一次用,昨天下午设置几个任务,yy里面已存在的任务,修改指定python环境和执行文件路径后,死活到点不执行. 任务设置如下: 15 16 * * * /root/ ...

  2. 剑指offer44 扑克牌顺序

    注意一个边界条件:必须是连续的,如果前后两个数是一样的也不满足条件 class Solution { public: bool IsContinuous( vector<int> numb ...

  3. java 去掉html/style/css等标签

    //定义script的正则表达式 private static String regEx_script="<script[^>]*?>[\\s\\S]*?<\\/sc ...

  4. QT5:第八章 信号与槽机制

    一.简介 QT编程中信号与槽用于处理界面各个组件的交互,类似与MFC的消息循环和绑定 注意:在使用信号与槽的类中,必须在类的定义中加入宏定义Q_OBJECT 信号(Signal)就是在特定情况下被发射 ...

  5. ewebeditor上传文件大小

    做项目大家都少不了要跟html在线编辑器打交道,这里我把我的一些使用经验及遇到的问题发出来和大家交流一下. Ewebeditor使用说明:一.部署方式:1.直接把压缩目录中的文件拷贝到您的网站发布目录 ...

  6. javase(8)_集合框架_List、Set、Map

    一.集合体系(不包括Queue体系) 二.ArrayList ArrayList的属性 private transient Object[] elementData; //存储元素 private i ...

  7. baidumap demo(二)

    接口说明 百度地图API提供的搜索服务包括:POI检索,多关键字检索,公交方案检索,驾车路线检索,步行路线检索,地理编码,反地理编码,公交详情检索,在线建议查询,短串分享. 所有检索请求接口均为异步接 ...

  8. (32)zabbix分布式监控proxy vs nodes

    概述 zabbix为IT基础设施提供有效和可用的分布式监控,zabbix提供了两种解决方案,分别为:proxy和nodes.proxy代替zabbix server在本地检索数据,然后提交给zabbi ...

  9. GIMP的Path的import和export

    点击Path栏中的小三角,选择Paths Menu,然后点击Export Path Import Path自然不必多说:

  10. C语言:哲学家吃饭问题

    //五个哲学家围坐在一起,两人之间都放有一个叉子,意大利面需要2个叉子吃,哲学家吃饭时候叉子只能拿左右手,哲学家除了吃饭时间其他时间都在思考 #include <stdio.h> #inc ...