/** * Check if html client info already exists in servlet request as one of the attributes. If not, * parse HTML request parameter to get html client info a json string. Use it to construct html * client info object with HtmlClientInfoFactory. Note that carrier info is derived from * devicecarrierMapping file based on program code. * * @param request * @return HtmlClientInfo */ protected HtmlClientInfo getClientInfo(HttpServletRequest request) { HtmlClientInfo clientInfo = (HtmlClientInfo) request.getAttribute(HtmlFrameworkConstants.HTML_CLIENT_INFO); if (clientInfo == null) { String clientInfoString = HtmlCommonUtil.filterLastPara(request.getParameter("clientInfo")); try { clientInfoString = URLDecoder.decode(clientInfoString, "UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } String clientWidth = HtmlCommonUtil.filterLastPara( request.getParameter(HtmlFrameworkConstants.CLIENT_INFO_KEY_WIDTH)); String clientHeight = HtmlCommonUtil.filterLastPara( request.getParameter(HtmlFrameworkConstants.CLIENT_INFO_KEY_HEIGHT)); String ssoToken = HtmlCommonUtil.filterLastPara( request.getParameter(HtmlFrameworkConstants.CLIENT_INFO_KEY_SSOTOKEN)); clientInfo = HtmlClientInfoFactory.getInstance() .build(clientInfoString, clientWidth, clientHeight, ssoToken); } return clientInfo; }