2024-05-25
编程与技术
00

Java正则--地址结构化解析

java
public static Map<String, String> addressResolution(String address) { String regex = "(?<province>.*?自治区|.*?省|.*?行政区|.*?市)(?<city>.*?自治州|.*?地区|.*?行政单位|市辖区|.*?市)?(?<county>.*?市|.*?县|.*?区)?(?<village>.*)"; Matcher m = Pattern.compile(regex).matcher(address); String province, city, county, village; Map<String, String> row = null; while (m.find()) { row = new LinkedHashMap<>(); province = StringUtils.isNotBlank(m.group("province")) ? m.group("province").trim() : ""; row.put("province", StringUtils.isEmpty(province) ? address : province); city = StringUtils.isNotBlank(m.group("city")) ? m.group("city").trim() : ""; row.put("city", StringUtils.isEmpty(city) ? province : city); county = StringUtils.isNotBlank(m.group("county")) ? m.group("county").trim() : ""; row.put("county", StringUtils.isEmpty(county) ? city : county); village = StringUtils.isNotBlank(m.group("village")) ? m.group("village").trim() : ""; row.put("village", StringUtils.isEmpty(village) ? county : village); } if (row == null) { row = new LinkedHashMap<>(); row.put("village", address); } return row; } public static void main(String[] args) { System.out.println(addressResolution("山东省潍坊市昌邑市龙源国际小区")); }
2024-05-25
编程与技术
00

问题

通过传统的 form 表单提交的方式上传文件

html
<form id="uploadForm" action="" method="post" enctype="multipart/form-data">        <p>上传文件:<input type ="file" name="file"/></p>        <input type="submit" value="上传"/>   </form>

不过传统的 form 表单提交会导致页面刷新,但是在有些情况下,我们不希望页面被刷新,这种时候我们都是使用 Ajax 的方式进行请求的。

使用 serialize() 对 form 表单进行序列化提交

javascript
$.ajax({        url: "",        type: "POST",        data: $('#uploadForm').serialize(),        success: function(data) {           },        error: function(data) {      }   });

如上,通过 $('#uploadForm').serialize() 可以对 form 表单进行序列化,从而将 form 表单中的所有参数传递到服务端。

但是上述方式,只能传递一般的参数,上传文件的文件流是无法被序列化并传递的。不过如今主流浏览器都开始支持一个叫做 FormData 的对象,有了这个对象就可以轻松地使用 Ajax 方式进行文件上传了。

2024-05-25
编程与技术
00
java
public static boolean judgeIP(JTextField ipText, JFrame jf) { String ipAddress = ipText.getText(); String[] ip = ipAddress.split("\\."); if (ip.length != 4) { return false; } for (int i = 0; i < 4; i++) { int dress = 0; try { dress = Integer.parseInt(ip[i]); } catch (NumberFormatException e1) { return false; } if ((dress >= 0) && (dress <= 255)) { if (i == 3) { System.out.println("IP地址【" + ipAddress + "】合法"); return true; } } else { return false; } } return false; }
2024-05-25
编程与技术
00

前言

  1. 这个错误信息是从IDEA的日志中看到的,因为如果遇到这个错,IDEA控制台不会体现任何有用的错误日志,所以就只能看IDEA的日志了。
  2. 出现这个错误时,你的Gradle项目什么都干不了,就连clear都不行,执行main方法也不行。
2024-05-25
编程与技术
00

后台启动(最常用)

bash
# 指定最大内存512m,后台启动,指定日志输出到 ./log/server.log 文件内 nohup java -Xmx512m -jar /app/application.jar >./log/server.log 2>&1 &

常用参数:

  • Xmx<size>:设置JVM堆内存的最大值。
  • Xms<size>:设置JVM堆内存的初始值。
  • D<name>=<value>:设置系统属性。
  • classpath <class_path>:指定类路径。
  • verbose[:class|gc|jni]:打印详细的日志信息。
  • Djava.library.path=<path>:设置本地库的路径。
  • XX:+UseG1GC:启用G1垃圾回收器。
  • XX:MaxGCPauseMillis=<pause_time>:设置最大垃圾回收停顿时间。
  • XX:+PrintGCDetails:打印GC的详细信息。

普通启动

bash
java -jar /app/application.jar