1. 程式人生 > >服務端呼叫js:javax.script

服務端呼叫js:javax.script

  談起js在服務端的應用,大部分人的第一反應都是node.js。node.js作為一套伺服器端的 JavaScript 執行環境,有自己的獨到之處,但不是所有的地方都需要使用它。

  例如在已有的服務端程式碼上增加一個業務,而這個業務使用的卻是js編寫。如果用node.js處理的話,會很麻煩。而且另一方面對於很多服務端程式設計師來說,覺得js的物件模型很奇怪,不太喜歡用js處理問題。

  javax.script加入了對部分指令碼語言的支援,它的原意是為了針對關於業務在客戶端和服務端中,邏輯相同而語言不同導致實現不同的問題。但是這種處理方法由於前後端的分工和一些缺陷,很少在實際應用中用到。

  javax.script實現起來很簡單。

  一:得到一個ScriptEngine物件

1 2 ScriptEngineManager maneger = new ScriptEngineManager(); ScriptEngine engine = maneger.getEngineByName("JavaScript");

  二:讀js檔案

1 2 Reader scriptReader = new
 InputStreamReader( JsInServer.class.getResourceAsStream("js檔案"));

   三:解析檔案

1 engine.eval(scriptReader);

   四:呼叫js方法,得到的結果以Object物件返回

1 Object result = invocable.invokeFunction("js方法", js方法引數1, js方法引數
2...);

測試例子:

java

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

相關推薦

服務呼叫jsjavax.script

  談起js在服務端的應用,大部分人的第一反應都是node.js。node.js作為一套伺服器端的 JavaScript 執行環境,有自己的獨到之處,但不是所有的地方都需要使用它。   例如在已有的服務端程式碼上增加一個業務,而這個業務使用的卻是js編寫。如果用

服務web開發PHP簡介以及常見語法

blog tex lan 客戶端 opera 很多 私有屬性 net 生成 服務端web開發 在講解什麽是服務端開發之前,讓我們先思考幾個問題 網站訪問: 當我們做好了.html的網站,如何讓別人(朋友,用戶)可以訪問到呢? 使用U盤拷貝,QQ發送文件等直接將文件

java服務解決js跨域的問題 CORS(跨域資源共享) 的配置

nginx相容跨域上傳 相容情況: 各種新版本的ie10,firefox,opera,safari,chrome以及移動版safari和Android瀏覽器 ie9及一下版本請使用flash方式來相容 通過OPTIONS請求握手一次的方式實現跨根域傳送請求,需要服務端配置

Redis服務優化實踐配置優化、主從切換、持久化

Redis是部門業務重要的核心業務元件,被廣泛應用在行情繫統、推送服務、資料中心、投顧、圈子、量化分析等平臺。在使用Redis的過程中遇到了很多問題,涉及到開發者使用API時的一些注意事項,以及如何通過優化服務端配置提高Redis的健壯性、容錯性。 本文通過案例分析的方式分享一下我們在Redis服務

螞蟻金服 mPaaS 服務核心元件億級併發下的移動網路接入架構解析

根據《mPaaS 服務端核心元件體系概述:移動 API 閘道器 MGS》,我們已經初步瞭解 mPaaS 服務端眾多元件中移動 API 閘道器 MGS 的具體架構設計和簡介。 本文結合賈島在 TGO 鯤鵬會舉辦的「走進螞蟻金服:雙十一背後的螞蟻金服技術支援」活動現場分享內容《億級併發下的螞蟻移動端到端網路接入

服務呼叫方法HttpClient

      在公司涉及到這樣一個需求,要求一個工程呼叫另一個工程的介面,一開始還挺高興,自己做過dubbo的,這個應該不是問題,因為我們這個專案沒有使用Dubbo框架,所以得用另一種方法了。       最一開始我想著將另一個工程打成jar包使用,後來覺得這種

C#服務讀取JS中變數(返回值)

 這個做法沒什麼新意,就是就用一個Hidden 1.JS的程式碼 JavaScript程式碼 function onClientClick(){ var table=document.getElementById("<%=GridView1.ClientID %&

微信服務號——呼叫 JS-SDK

1.配置 需要注意的是: (1)域名不能帶http://或者https:// (2)需要下載檔案 MP_verify_dRk8DCHUcYJUDMuQ.txt    放入到系統,並且使用域名可以訪問到檔案,否則儲存不成功 測試

C#開發BIMFACE系列36 服務API之回撥機制

系列目錄     【已更新最新開發文章,點選檢視詳細】   在《C# 開發 BIMFACE 系列文章》中介紹了模型轉換、模型對比介面。這2個功能介面比較特殊,發起請求後,邏輯處理是在BIMFACE雲端進行的,通常需要5~10分鐘。當邏輯處理完成後,BIMFACE通過回撥

java呼叫matlab二、在服務(客戶機)搭建執行環境和常見問題解決

在服務端(客戶機)搭建matlab執行環境1.下載MCR到客戶機https://cn.mathworks.com/products/compiler/matlab-runtime.html注意對應的版本和位數,我的是matlab2012b x64就下載這個二、安裝下載下來的M

Pomelo(一)網易開源基於 Node.js 的遊戲服務框架

  Pomelo 是基於 Node.js 的高效能、分散式遊戲伺服器框架。它包括基礎的開發框架和相關的擴充套件元件(庫和工具包),可以幫助你省去遊戲開發枯燥中的重複勞動和底層邏輯的開發。Pomelo 不但適用於遊戲伺服器開發, 也可用於開發高實時 Web 應用,它的分散式架構可以使 Pomelo 比普通

Token服務身份驗證的流行方案

rst 服務 方案 app 過程 組件圖 wav hit margin 01- 身份認證 服務端提供資源給客戶端,但是某些資源是有條件的。所以服務端要能夠識別請求者的身份,然後再判斷所請求的資源是否可以給請求者。 token是一種身份驗證的機制,初始時用戶提交賬號數據

服務Json數據+js表單數據提交的 表單交互插件(base-form.js

json 舉例 () 編輯 表單 服務器 erro 問題 java 我們在做表單的查看、編輯裏涉及兩個點: 點1,提交Form表單到服務器,保存到數據庫 點2,頁面顯示Form表單裏的所有字段 如果表單的字段很多,這兩個點會有兩個問題: 1,提交Form時,如何少量代碼

【2017-05-21】WebForm跨頁面傳值取值、C#服務跳轉頁面、 Button的OnClientClick屬性、Js中getAttribute和超鏈接點擊彈出警示框。

代碼 height delet update size 內存 客戶 bar win 一、跨頁面傳值和取值: 1、QueryString - url傳值,地址傳值 優缺點:不占用服務器內存;保密性差,傳遞長度有限。 通過跳轉頁面路徑進行傳值,方式: href="地址?ke

vue.js基礎知識篇(8):與服務通信

add 攔截 數據交互 order solid json ise async params vue.js可以構建一個完全不依賴後端服務的應用APP,同時也可以與服務端進行數據交互來同步界面的動態更新。vue-resource實現了基於AJAX、JSONP等技術的服務端通信。

【問底】夏俊深入站點服務技術(一)——站點並發的問題

而是 思路 臨時 系統負載 表現 json article 不能 情況 摘要:本文來自擁有十年IT從業經驗、擅長站點架構設計、Web前端技術以及Java企業級開發的夏俊,此文也是《關於大型站點技術演進的思考》系列文章的最新出爐內容。首發於CSDN,各位技術人員不

寫給產品經理的技術書客戶服務和交互相關技術

gif manage 輸入法 fad 圖形 三位數 更換 網購 zoom 產品經理有三大領域的技術是需要去攻克的,分別是:客戶端相關技術、服務端相關技術、交互相關技術 一、客戶端相關技術 1.iOS和安卓產品差異 1.1 應用的設備不同: IOS和安卓最大的區別在於本身所應

Demo源碼放送打通B/S與C/S !讓HTML5 WebSocket與.NET Socket公用同一個服務

.proto tcp 頁面布局 封裝 read 判斷 mage element 接收數據  隨著HTML5 WebSocket技術的日益成熟與普及,我們可以借助WebSocket來更加方便地打通BS與CS -- 因為B/S中的WebSocket可以直接連接到C/S的服務端,

Spring Cloud官方文檔中文版-服務發現Eureka服務

show hub script trying 不同 clu ask local code 官方文檔地址為:http://cloud.spring.io/spring-cloud-static/Dalston.SR3/#spring-cloud-eureka-server 文

Nuxt.js服務渲染實踐,從開發到部署

atd 格式 驗證 for replace 註冊 ear coo java 感悟 經過幾個周六周日的嘗試,終於解決了服務端渲染中的常見問題,也成功說服了公司新項目采用前後端分離的解決方案,當SEO不在是問題的時候,或許才是我們搞前端的真正的春天,其中也遇到了一些小坑,Nux