在Java中引用JavaScript(JS)通常涉及到一些特定的技术和框架,比如Java的嵌入式浏览器组件(如JavaFX WebView或SWT Browser),或者是在Java Web应用中通过Servlet、JSP等技术与前端JavaScript进行交互。以下是一些基础概念和相关信息:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewExample extends Application {
@Override
public void start(Stage primaryStage) {
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
webEngine.loadContent("<html><body><script>function sayHello() { return 'Hello from JavaScript!'; }</script></body></html>");
webEngine.getLoadWorker().stateProperty().addListener((obs, oldState, newState) -> {
if (newState == javafx.concurrent.Worker.State.SUCCEEDED) {
JSObject window = (JSObject) webEngine.executeScript("window");
window.setMember("java", new Object() {
public void printMessage(String message) {
System.out.println(message);
}
});
String message = (String) webEngine.executeScript("sayHello()");
java.printMessage(message);
}
});
Scene scene = new Scene(webView, 800, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
前端JavaScript(AJAX请求):
fetch('/api/hello', {
method: 'GET'
})
.then(response => response.text())
.then(data => console.log(data));
后端Java Servlet:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/api/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
response.getWriter().write("Hello from Java Servlet!");
}
}
通过以上方法和示例代码,可以在Java应用中有效地引用和使用JavaScript。
领取专属 10元无门槛券
手把手带您无忧上云