首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JinJ 技術:在 JavaScript 中無縫呼叫 Java 伺服端函數

     編輯:Java 相關知識

傳統 Web 開發中,表單處理依賴 CGI 或 Servlet,需整頁提交刷新。JinJ (Java in JavaScript) 技術打破此限制,讓瀏覽器端 JavaScript 直接呼叫伺服端 Java 物件方法,並即時更新頁面局部,無需刷新或 JSP 編譯。

核心架構

  • JinJ Servlet:預處理所有 HTML 頁面,識別 java.object.method() 語法,轉換為 JavaScript 代碼並輸出。
  • Bridge Applet:隱藏框架中載入,作為 JavaScript 與伺服端通訊橋樑,大小不足 2KB,透過 HTTP 與 JinJ Servlet 交換資料。

運作流程

  1. 瀏覽器請求 https://host/servlet/JinJ?page.html。
  2. Servlet 解析頁面,將 Java 呼叫替換為呼叫 parent.hframe.javabridge() 的 JavaScript 代碼。
  3. 輸出包含隱藏框架的 Frameset,隱藏框架載入 Bridge Applet。
  4. 前端呼叫 javabridge(),Applet 透過 HTTP POST 將呼叫參數送至 Servlet executeRequest。
  5. Servlet 利用反射執行對應 Java 方法,結果序列化回傳,JavaScript 解析後更新 DOM。

關鍵特性

  • 物件生命週期管理:支援在 objects.txt 預定義單例,或透過 java.JinJ.create/delete/exists() 動態管理。
  • 參數類型自動推導:支援 int、float、boolean、String 四類,字串需加引號。
  • 集合回傳處理:Java 陣列、Vector、Enumeration 自動轉為 JavaScript 陣列。
  • Session 支援:rewriteURL() 自動為連結/表單附加 Session ID。
  • 管理主控台:JinJ?admin_password 提供瀏覽器端物件監控介面。

部署配置

web.xml 需配置 servlet、root、objects、codebase 四大初始參數;objects.txt 格式為 name=new Class(args);。

完整原始碼包含 JinJ.java (Servlet 主邏輯) 與 bridge.java (Applet 通訊類),展示反射、管道通訊、動態類載入等核心技術。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved