1.0 获取请求全部数据
/** * 获取 全部参数值 * * @param request * @return */ public String getParameters(HttpServletRequest request) { Map<String, String[]> params = request.getParameterMap(); StringBuilder queryString = new StringBuilder(); for (Map.Entry<String, String[]> k: params.entrySet()) { for (String value : k.getValue()) { queryString.append(k.getKey()).append("=").append(value).append("&"); } } // 去掉最后一个空格 if (!org.springframework.util.StringUtils.isEmpty(queryString.toString())) queryString = new StringBuilder(queryString.substring(0, queryString.length() - 1)); return queryString.toString(); }
2.0 获取 真实IP 地址
/** * 获取 真实IP 地址 * * @param request * @return */ public String getIp2(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) { // 多次反向代理后会有多个ip值,第一个ip才是真实ip int index = ip.indexOf(","); if (index != -1) return ip.substring(0, index); else return ip; } ip = request.getHeader("X-Real-IP"); if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) { return ip; } return request.getRemoteAddr(); }
3.0 MD5 验证方法
// utf-8 转换成小写 org.apache.commons.codec.digest.DigestUtils.md5Hex(str.getBytes("UTF-8")).replace("-", "").toLowerCase()
4.0 字符串格式
MessageFormat.format("接收到的数据是 serviceName {0} data {1} Parametrs {2} ",serviceName, data, requestHelp.getParameters(request));
5.0 XML 序列化
// 序列化 Request re; String response; try { JAXBContext a = JAXBContext.newInstance(com.ls.domain.Request.Request.class); StringReader reader = new StringReader(xml); re = (Request) a.createUnmarshaller().unmarshal(reader); } catch (JAXBException e) { LOGGER.error("接收数据序列化异常", e); response = "<Response service=”RouteService”><Head>ERR</Head><ERROR code="4002">报文解析错误</ERROR></Response>"; return ResponseEntity.ok(response); }
// 反序列化 public String convertToXml(Object obj, String encoding) { String result = null; try { JAXBContext context = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding); StringWriter writer = new StringWriter(); marshaller.marshal(obj, writer); result = writer.toString(); } catch (Exception e) { LOGGER.error(" 响应数据格式化异常",e); } return result; }
时间格式
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormat.format(new Date());
// 时区问题
Date date = Date.from(LocalDateTime.now().atZone(ZoneId.of("Asia/Shanghai")).toInstant());
关于使用模板引擎输出的问题
StreamingTemplateEngine 使用print 输出 GStringTemplateEngine 使用 out << 输出 建议都用 out << 作为输出字符串方法
关于maven 打包上传GITHUB
命令:
mvn deploy -DaltDeploymentRepository=atliwen::default::file:/e:/maven/repository/
注意不要动原先的版本文件与MD5等文件