溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Java實(shí)現(xiàn)Web GUI

發(fā)布時(shí)間:2022-02-28 10:55:19 來(lái)源:億速云 閱讀:157 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下怎么用Java實(shí)現(xiàn)Web GUI的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

Vaadin 如何工作?

在上一個(gè)屏幕截圖中,您可以在左側(cè)看到一個(gè) Java 類(lèi)。此代碼在服務(wù)器上運(yùn)行,例如 Apache Tomcat、Eclipse Jetty 或任何其他 servlet 容器。

您可以使用框架提供的 API 來(lái)創(chuàng)建用戶界面 (UI)組件,例如文本字段、組合框、數(shù)據(jù)網(wǎng)格、日期選擇器、上傳字段等。您可以組合這些組件來(lái)構(gòu)建視圖(也稱為頁(yè)面或 UI),使用布局垂直、水平放置 UI 組件,或使用 CSS 以任何自定義方式放置 UI 組件。

在前面的示例中,我們創(chuàng)建了 aTextField并且 aButton都添加到了 a 中VerticalLayout。視圖準(zhǔn)備就緒后,您可以使用@Route注釋通過(guò) URL 公開(kāi)它。在這個(gè)例子中,我們?cè)趯⑵涮峁┑膆ttp://本地主機(jī):8080 /你好用@Route("hello")。

Vaadin 應(yīng)用程序是一個(gè) Java Web 應(yīng)用程序。該框架提供了一個(gè)為您處理 HTTP 請(qǐng)求和響應(yīng)的Servlet實(shí)現(xiàn) ( VaadinServlet)。該 servlet 掃描標(biāo)有@Route注釋的 Java 類(lèi)以在瀏覽器中顯示正確的視圖。第一次請(qǐng)求 Vaadin 應(yīng)用程序時(shí),Vaadin 使用一個(gè)輕量級(jí) JavaScript 文件作為客戶端引擎進(jìn)行響應(yīng)。該引擎負(fù)責(zé)處理瀏覽器中的事件并以 JSON 消息的形式將它們發(fā)送到服務(wù)器。該VaadinServlet處理的請(qǐng)求和JSON響應(yīng)同樣返回給客戶端引擎。引擎然后根據(jù)此消息更新頁(yè)面中需要更新的元素(如果有)。

如果客戶端-服務(wù)器通信是對(duì)話,它看起來(lái)像這樣:
(用戶單擊瀏覽器中的按鈕)
客戶端引擎:嘿 VaadinServlet,用戶單擊了 ID 為 5 的按鈕。
VaadinServlet:當(dāng)然。讓我檢查一下那個(gè)按鈕上是否有任何點(diǎn)擊偵聽(tīng)器......是的,有一個(gè),讓我們執(zhí)行偵聽(tīng)器......完成。好的客戶端引擎,似乎偵聽(tīng)器想要添加帶有“感謝點(diǎn)擊”文本的通知。
客戶端引擎:我將使用瀏覽器中的 DOM 將通知添加到頁(yè)面。

那么上面這個(gè)對(duì)話當(dāng)然是一種簡(jiǎn)化,但是你需要去明白了這個(gè)面的相關(guān)原理。

在幕后,Vaadin 使用 HTTP 會(huì)話來(lái)存儲(chǔ)組件樹(shù)。這包含 UI 的狀態(tài)。諸如哪些組件構(gòu)成視圖以及它們的狀態(tài)是什么(啟用/禁用、標(biāo)題、值等)。這提供了一個(gè)值得一提的安全層。由于 UI 邏輯駐留在服務(wù)器中,因此不會(huì)暴露給攻擊者。驗(yàn)證在服務(wù)器上執(zhí)行。例如,如果 aButton被禁用(使用setEnabled(false)),這不僅僅是瀏覽器中的裝飾功能——服務(wù)器不會(huì)在添加到未啟用按鈕的點(diǎn)擊偵聽(tīng)器中運(yùn)行任何邏輯,從而防止攻擊者使用開(kāi)發(fā)人員工具瀏覽器更改啟用狀態(tài)或調(diào)用VaadinServlet以模擬單擊事件。

Vaadin 可以免費(fèi)使用嗎?

是的。Vaadin 是在Apache License 2.0下發(fā)布的開(kāi)源框架。您無(wú)需購(gòu)買(mǎi)任何東西即可使用它構(gòu)建成熟的 Web 應(yīng)用程序。

有一些商業(yè)組件可以提高生產(chǎn)力,但它們是可選的。例如,有一個(gè)可視化設(shè)計(jì)器和一個(gè) CRUD 組件可以幫助您更快地構(gòu)建視圖。您可以在訂閱前免費(fèi)試用這些組件。

Vaadin 是 JSP 和 JSF 的替代品嗎?

是的。它可以用作 JSP、JSF 甚至 JavaScript 框架(如 Angular)的替代品。許多 Vaadin 客戶已成功從這些技術(shù)遷移到 Vaadin。

Vaadin 是否支持 Spring 和 Jakarta EE?

是的。Vaadin 與Spring和Jakarta EE(以前稱為 Java EE)有官方集成。當(dāng)您使用Spring Initializr創(chuàng)建新的 Spring Boot 項(xiàng)目時(shí),您可以將 Vaadin 添加為依賴項(xiàng)。對(duì)于 Jakarta EE,您可以下載一個(gè)使用 Jakarta EE的簡(jiǎn)單Hello, World示例。在撰寫(xiě)本文時(shí),僅支持 Jakarta EE 版本 8。

以上就是“怎么用Java實(shí)現(xiàn)Web GUI”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI