91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Mobile怎么探測客戶端設備和系統

發布時間:2021-12-02 16:34:38 來源:億速云 閱讀:155 作者:柒染 欄目:大數據

Spring Mobile怎么探測客戶端設備和系統,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

今天閑來無事,瀏覽Spring的官方網站,發現了Spring Mobile項目,之前也看到過,還以為是針對手機端的項目,并沒有細看。今天仔細看了一下,原來是可以探測請求端的設備和系統。比如是手機、平板、還是正常的PC網站。它是Spring MVC的擴展,主要的目的是簡化手機web應用的開發。

  它的主要特點是:

  • 在服務端探測發起請求的設備,手機或平板等。

  • 管理站點,統計每個用戶的偏好。

  • 根據請求設備的不同,返回適合該設備的視圖

   具體的在項目中使用也非常的簡單,例如我們使用Spring Boot搭建項目,然后引入Spring Mobile的starter,如下:

<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-mobile</artifactId></dependency>

然后在application.properties文件中將sitepreference打開,如下:

spring.mobile.sitepreference.enabled=true

Spring Boot自動注入了3個類,DeviceResolverHandlerInterceptor,SitePreferenceHandlerInterceptor和SitePreferenceMethodArgumentResolver。DeviceResolverHandlerInterceptor是HandlerInterceptor的一個實現,從名字來看,它攔截到應用的請求,判斷發送請求設備的類型。當設備解決以后,SitePreferenceMethodArgumentResolver允許SpringMVC在Controller中使用SitePreference實體。在內部,DeviceResolverHandlerInterceptor判斷請求頭中的User-Agent,基于請求頭中的值,判斷請求是否來自瀏覽器(桌面)、手機、還是Pad。

  SitePreferenceHandlerInterceptor利用探測到的設備,判斷用戶的初始站點偏好。如果用戶喜歡另一個站點,則選擇該站點,并在隨后的請求中使用,以覆蓋已解析的設備值。站點偏好是通過請求中特殊的查詢字符串設置的。一旦接收到,偏好將被持久化到cookie中,以供將來參考。站點偏好功能在Spring Boot中默認是打開的,可以通過上面的設置關閉它。

  這樣我們就可以使用Spring Mobile了,我們在Controller中加了如下代碼:

@RequestMapping("index")  public String index(HttpSession session,Page<User> page,SitePreference site,Device device){      System.out.println("site.isMobile:"+site.isMobile());      System.out.println("site.isTablet:"+site.isTablet());      System.out.println("site.isNormal:"+site.isNormal());
     System.out.println("device.isMobile:"+device.isMobile());      System.out.println("device.isTablet:"+device.isTablet());      System.out.println("device.isNormal:"+device.isNormal());
     System.out.println("device.Platform:"+device.getDevicePlatform());      System.out.println("site.name:"+site.name());
     System.out.println(session.getId());      return null;  }

  運行后,后臺打印出的值如下:

site.isMobile:truesite.isTablet:falsesite.isNormal:falsedevice.isMobile:truedevice.isTablet:falsedevice.isNormal:falsedevice.Platform:ANDROIDsite.name:MOBILE
測試時,我們可以通過瀏覽器的調試功能(F12),模擬不同的設備。這樣我們就可以捕獲到前端的設備類型了。

  我們在開發時,可能針對不同的設備做不同的適配頁面。Spring Mobile也為我們提供了非常強大的視圖代理解析功能。我們只需要在applicaton.properties中配置即可。

spring.mobile.devicedelegatingviewresolver.enabled=truespring.mobile.devicedelegatingviewresolver.mobile-prefix=spring.mobile.devicedelegatingviewresolver.mobile-suffix=spring.mobile.devicedelegatingviewresolver.tablet-prefix=spring.mobile.devicedelegatingviewresolver.tablet-suffix=spring.mobile.devicedelegatingviewresolver.normal-prefix=spring.mobile.devicedelegatingviewresolver.normal-suffix=

  我們將代理解析器打開,并配置3中設備類型的前綴和后綴。后6項也可以不配置,默認的3中類型的后綴都沒有,前綴手機類型的是/mobile,平板類型的是/tablet。瀏覽器是沒有前綴的,然后將3中視圖放在相應的目錄中,代碼如下:

@Controllerpublic class GreetingController {  @RequestMapping("/greeting")  public String greeting() {      return "greeting";  }}

  頁面如下:

Spring Mobile怎么探測客戶端設備和系統

  這樣,3個不同的設備就會訪問不同的頁面,很方便吧。

關于Spring Mobile怎么探測客戶端設備和系統問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广水市| 巴塘县| 临城县| 台中市| 阳东县| 萨嘎县| 浪卡子县| 宁强县| 正定县| 蛟河市| 新兴县| 高唐县| 浦城县| 汽车| 万源市| 克什克腾旗| 阿图什市| 炉霍县| 阿拉善右旗| 富平县| 逊克县| 冕宁县| 崇仁县| 犍为县| 宁武县| 蒙城县| 儋州市| 阜康市| 巴彦县| 句容市| 石屏县| 绥德县| 揭东县| 桓台县| 南澳县| 丰顺县| 建始县| 承德市| 平谷区| 个旧市| 五河县|