近年來,前後端分離成為web領域的熱門話題,Javascript作為前端三大核心技術之一,與後端的Spring MVC、Mybatis組成了一種完整的企業級開發架構,即SSM。
在這個架構下,前端透過http請求與後端進行交互,而javascript對應的技術就是Ajax。 Ajax全稱為Asynchronous JavaScript and XML,即非同步的Javascript和XML。它支援在不重新載入整個頁面的情況下與伺服器交換資料並更新部分頁面內容,從而提升了使用者的使用體驗。本文將介紹JavaScript方式提交請求SSM的實作方法。
一、前端程式碼
我們先來看看前端javascript的實作程式碼。
- 建立XMLHttpRequest物件
在javascript中,需要先建立XMLHttpRequest對象,透過該物件發起異步請求。
var xmlhttp; if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
- 發送請求並處理回應資料
透過xmlhttp物件的open方法設定請求方式、請求位址、是否非同步等參數,再透過send方法傳送請求。在請求的回呼函數中,可以透過修改DOM元素、改變樣式等方式來處理回應資料。
xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }
二、後端程式碼
前端處理完請求後,需要後端回應。在SSM架構中,後端程式碼使用Spring MVC框架實現,其中@ResponseBody註解可以標記一個Controller方法的回傳值為json資料。
@RequestMapping(value="/getUserName",method=RequestMethod.POST) @ResponseBody public String getUserName(@RequestParam("userId")String userId) { // 处理业务逻辑,获取用户名称 String userName = userService.findNameById(userId); // 返回json格式的数据 return "{\"userName\":\"" + userName + "\"}"; }
三、整合步驟
- 在前端程式碼中呼叫後端Controller方法
var userId = "123"; $.ajax({ type : 'POST', url : '/ssm-demo/getUserName', data: {"userId" : userId}, dataType : 'json', success : function(data) { console.log(data.userName); } });
- 引入jQuery和Jackson相關函式庫
在後端程式碼中,需要引入Jackson相關函式庫來實作json資料的的轉換。
<!-- jQuery库 --> <dependency> <groupid>org.webjars</groupid> <artifactid>jquery</artifactid> <version>3.3.1</version> </dependency> <!-- Jackson库 --> <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> <version>2.9.8</version> </dependency>
- 配置JavaConfig,掃描Controller
在Spring的JavaConfig檔案中,需要進行如下配置:
@Configuration @ComponentScan(basePackages="com.demo.controller") public class AppConfig { // ... }
- #配置Spring MVC的DispatcherServlet
在web.xml中設定DispatcherServlet,將Servlet對應到指定url。需要設定的參數有:
- contextConfigLocation:指定Spring的JavaConfig檔案的路徑
:指定DispatcherServlet的對應url - DISPATCHER_SERVLET_NAME:指定DispatcherServlet的名字
<servlet> <servlet-name>demo-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:com/demo/config/AppConfig.java</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>demo-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
透過上述步驟的整合,即可在SSM架構中實作透過Javascript方式提交請求。這種方式的優點在於,可以提升用戶的使用體驗,在不重新載入整個頁面的情況下透過前後端異步交互,實現局部刷新,從而快速響應用戶的操作。
以上是聊聊JavaScript方式提交請求SSM的實作方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了React中的使用效應,這是一種用於管理副作用的鉤子,例如數據獲取和功能組件中的DOM操縱。它解釋了用法,常見的副作用和清理,以防止記憶洩漏等問題。

JavaScript中的高階功能通過抽象,常見模式和優化技術增強代碼簡潔性,可重複性,模塊化和性能。

本文討論了JavaScript中的咖哩,這是一種將多重題材函數轉換為單詞彙函數序列的技術。它探討了咖哩的實施,諸如部分應用和實際用途之類的好處,增強代碼閱讀

本文解釋了React中的UseContext,該文章通過避免道具鑽探簡化了狀態管理。它討論了通過減少的重新租賃者進行集中國家和績效改善之類的好處。

文章討論了使用DestrestDefault()方法在事件處理程序中預防默認行為,其好處(例如增強的用戶體驗)以及諸如可訪問性問題之類的潛在問題。

本文討論了React中受控和不受控制的組件的優勢和缺點,重點是可預測性,性能和用例等方面。它建議在選擇之間選擇因素。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境