天天看點

java 判斷用戶端是手機端還是PC端(SSH架構)

如果網站需要實作手機和PC雙界面适應,可以有兩種方式:

第一種是響應式界面,根據螢幕寬度來判定顯示的格式。這種需要前端來做,手機/PC共用一套代碼,有一定的局限性。

第二種是Java背景通過request請求頭中的内容來分析用戶端裝置類型,進而傳回不同的參數響應。這種方法需要前端寫兩套代碼,根據Java背景傳回的參數不同而跳轉到不同的界面。

代碼示例如下:

struts.xml:

<action name="method" class="com.fyc.action.**Action" method="method">
        <result name="Mobile"><!-- 手機端頁面位址 --></result>
        <result name="success"><!-- PC端頁面位址 --></result>
</action>
           

controller層:

<!-- 處理資料 -->
HttpServletRequest request = ServletActionContext.getRequest();
String requestHeader = request.getHeader("user-agent");
if(IsMobileUtil.isMobileDevice(requestHeader))
    return "Mobile";
else
    return SUCCESS;
           

判斷用戶端工具類:

package com.**.**;

/**
 *  根據請求頭判斷是手機還是電腦  
 *  @author live
 *  @date
 */
public class IsMobileUtil {
    /**
     * android : 所有android裝置
     * mac os : iphone ipad
     * windows phone:Nokia等windows系統的手機
     */
    public static boolean  isMobileDevice(String requestHeader){
        String[] deviceArray = new String[]{"android","mac os","windows phone"};
        if(requestHeader == null)
            return false;
        requestHeader = requestHeader.toLowerCase();
        for(int i=0;i<deviceArray.length;i++){
            if(requestHeader.indexOf(deviceArray[i])>0){
                return true;
            }
        }
        return false;
    }
}
           

以上工具類,是手機就傳回true,不是則傳回false。

以上文章純屬自創,如有雷同,概不負責!

繼續閱讀