• java中执行JS脚本


    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

  • 相关阅读:
    操作excel文件的基础工具xlrd/xlwt/xlutils学用
    第12课 OpenGL 显示列表
    第11课 OpenGL 飘动的旗帜
    第10课 OpenGL 3D世界
    第09课 OpenGL 移动图像
    第08课 OpenGL 混合
    第07课 OpenGL 光照和键盘(2)
    第07课 OpenGL 光照和键盘(1)
    第06课 OpenGL 纹理映射
    第05课 OpenGL 3D空间
  • 原文地址:https://www.cnblogs.com/qlqwjy/p/8376852.html
Copyright © 2020-2023  润新知