对于自助入住项目的总结

xiaoxiao2021-02-27  142

1.界面层与硬件的操作

对于java的JNA等操作,只能操作c++的dll文件对于C#的dll文件,需要对应封装的ocx组件,其可以使用js进行调用 1) 在使用ie进行调用ocx组件时,需要调低浏览器的安全等级。谷歌在45版本后就禁止调用ocx,必须使用旧版本才可,其调用方式与ie略有不同。参考链接 2)注册dll文件,需要将对用的dll文件放到电脑系统目录sys32下,在’运行’中进行注册–Regsvr32 A6IDCReader.dll 3)对于关闭ie浏览器的放大缩小,需要在系统中修改注册表来实现。参考链接 使用快捷键“windows+R”,出现“运行”,输入“regedit” 1.Launch the Windows registry editor 2.Navigate 'HKEY_CURRENT_USER/SoftwareMicrosoft/Internet Explorer/Zoom' (HKEY_LOCAL_MACHINE works also). 3.Create a DWORD value named'ZoomDisabled' and set it’s value to 1. 4.Restart your kiosk application

2.对于javaweb中的编码问题

界面层 –>后端:使用ajax发送请求时,请求的头文件中不同的浏览器是不同的。谷歌浏览器中规定了当前浏览器的编码,而ie中是没有规定编码的。所以在发送请求时,如果数据中包含中文字符,最好使用$.ajax()进行发送。对于逻辑层而言:在解析数据等操作时,例如json的转换,若不规定编码格式,系统会默认遵循JVM的编码,而JVM的编码又根据电脑系统所设置的时区进行自动识别。在eclipse中可进行设置jvm的编码,而单独在Tomcat的运行环境中,是需要特别注意编码格式。 OutputStream out = conn.getOutputStream();//请求返回输入流 out.write((obj.toString()).getBytes("UTF-8"));//请求返回数据字符串 对于持久层而言:解析时的编码如上所述,但单单对于持久层而言,可以在设置浏览器地址时设置编码格式。 jdbc.url=jdbc:mysql:///activitiDemo?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8

3.对于fastJson的方式解析json字符串

这种方式的解析最大优势在于json与javabean的相互转化。 其需要注意的是,对于返回的json字符串进行解析时,所需的解析使用的相对应的javabean要单独class的存在,解析数据的每一层都是如此。

public static List<Results> getRoomDataByPhone(Results resultx) { List<Results> results = new ArrayList<Results>(); try { resultSession = initLogin(); if ("fail".equals(resultSession)) { return null; } List<Data> list = new ArrayList<Data>(); Data data = new PmsClientUtil().new Data(resultx.getName(),resultx.getIdent(),resultx.getAccnt(),resultx.getRsvno(), resultx.getRoomno(),resultx.getRate(),resultx.getRatecode(),resultx.getRmtype(), resultx.getArr(), resultx.getDep()); data.setHotelid(paramsId); list.add(data); Map<String, Object> obj = new HashMap<String, Object>(); Date now = new Date(); obj.put("appkey", appkey); //obj.put("secret", secret); obj.put("method", "xmsopen.reservation.xopqueryreservation"); obj.put("ver", "1.0.0"); obj.put("hotelid", hotelId); obj.put("loc", "zh_CN"); obj.put("ts", now.getTime()); obj.put("session", resultSession); obj.put("params", list); JSONObject jsonString = new JSONObject(obj); LogUtil.sysoLog("PMS getRoomData SendJson",jsonString); String result = postPmsData(jsonString); LogUtil.sysoLog("PMS getRoomData ResultJson",result); ResultData ss = JSON.parseObject(result, ResultData.class); results = ss.getResults(); return results; } catch (Exception e) { //e.printStackTrace(); return null; } }

4.对于发送json格式请求工具

public static String postPmsData(JSONObject obj) { try { URL url = new URL(URL); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true);// 设置允许输出 conn.setDoInput(true); conn.setUseCaches(false);// 设置不用缓存 conn.setRequestMethod("POST");// 设置传递方式 conn.setRequestProperty("Connection", "Keep-Alive");// 设置维持长连接 conn.setRequestProperty("Content-type", "application/json;charset=UTF-8"); byte[] data = (obj.toString()).getBytes();// 转换为字节数组 conn.setRequestProperty("Content-Length", String.valueOf(data.length));// 设置文件长度 conn.setRequestProperty("contentType", "application/json");// 设置文件类型 conn.connect();// 开始连接请求 OutputStream out = conn.getOutputStream(); out.write((obj.toString()).getBytes("UTF-8"));// 写入请求的字符串 out.flush(); out.close(); //System.out.println(conn.getResponseCode()); // 请求返回的状态 if (conn.getResponseCode() == 200) { //System.out.println("连接成功"); BufferedReader br = new BufferedReader(new InputStreamReader( conn.getInputStream(), "UTF-8")); String line = ""; String result = ""; while (null != (line = br.readLine())) { result += line; } return result; } else { System.out.println("no++"); return null; } } catch (Exception e) { e.printStackTrace(); return null; } }

5.对于解析asciicode

private static String ascii2native ( String asciicode ) { String[] asciis = asciicode.split ("\\\\u"); String nativeValue = asciis[0]; try { for ( int i = 1; i < asciis.length; i++ ) { String code = asciis[i]; nativeValue += (char) Integer.parseInt (code.substring (0, 4), 16); if (code.length () > 4) { nativeValue += code.substring (4, code.length ()); } } } catch (NumberFormatException e) { return asciicode; } return nativeValue; }
转载请注明原文地址: https://www.6miu.com/read-15286.html

最新回复(0)