JAVA-and-J2EE

页面展示HTML的原代码不解析

星期六, 十一月 7th, 2020 | html5, JAVA-and-J2EE | 没有评论

1.页面需要展示原文本,不需要解析,但是碰到有 html标签的部分需要注意

2.使用如下几种方式

2.1 使用 xmp标签 现在在html5中已经废弃,不建议再使用但是也最简单,无需转化

	<xmp>
		这里的代码将原样输出:
		<script>这里是脚本</script>
	</xmp>

2.2 使用 code 标签或者 pre标签,需要替换尖括号对应的转义符

如下转义即可

	var info= "<script>这里是脚本</script>";
	//替换一个  
	info = info.replace('<', '&lt;').replace('>', '&gt;');
	//全局替换 //g是重点,如果替换的为‘/’,需要转义,吧/</g替换为'/\//g'
	info = info.replace(/</g, '&lt;').replace(/>/g, '&gt;');
	<code>
		这里的代码将原样输出:
		&lt;script&gt;这里是脚本&lt;/script&gt;
	</code>
	<--pre>
		这里的代码将原样输出:
		&lt;script&gt;这里是脚本&lt;/script&gt;
	<--/pre>

2.3 使用 textarea标签

	<textarea>
		这里的代码将原样输出:
		<script>这里是脚本</script>
	</textarea>

Tags:

Lombok注解的类在eclipse下寻找getter/setter调用的办法

星期一, 十一月 2nd, 2020 | JAVA-and-J2EE | 没有评论

现在用Lombok已经是很普遍了,这里不去争好不好用,只解决个人遇到的不方便之处.

stackoverflow上对应的解决方法原文地址:

https://stackoverflow.com/questions/42644923/eclipse-with-lombok-search-for-getter-and-setter-usages

1.在面板处开启 outline 的选项,可以看到对应的 get和set方法,已经支持 @Setter 和@Getter 、@Data注解

2.右键 选择 “Open Call Hierarchy” 即可看到调用的情况

3.图示如下:

Right-click on the method in the Outline view, and use “Open Call Hierarchy”.

An other way to do it is to right-click on the annotation (@Setter for instance), and use “Open Call Hierarchy” on it

Tags:

Map不同实现对null值的限制不同

星期五, 十月 23rd, 2020 | JAVA-and-J2EE | 没有评论

Map不同实现对null值的限制不同,罗列如下:

key value 线程安全
HashTable 不可为null 不可为null 线程安全
ConcurrentHashMap 不可为null 不可为null 线程安全
TreeMap 不可为null 可为null 线程不安全
HashMap 可为null 可为null 线程不安全

HashTable由于实现上使用key的hashcode()方法,所以key不能为null。ConcurrentHashMap需要使用key的hashcode(),TreeMap使用key的compare()方法排序,所以key不能为null。

Tags:

vertx升级到3.9.2的mysql client的变动

星期五, 十月 2nd, 2020 | JAVA-and-J2EE | 没有评论

0. 应用有半年多没有动了,今天发现接口的数据丢失,未查到原因,重启应用解决,后续可能会放弃此应用 待定,先升个级

1.vertx升级到3.9.2 发现编译出错 调整修改

更多使用文档参加:https://vertx.io/docs/vertx-mysql-client/java/

 client
  .query("SELECT * FROM users WHERE id='sara'")
  .execute(ar -> {
  if (ar.succeeded()) {
    RowSet<Row> result = ar.result();
    System.out.println("Got " + result.size() + " rows ");
  } else {
    System.out.println("Failure: " + ar.cause().getMessage());
  }
 
  // Now close the pool
  client.close();

Tags:

guava-retrying延迟重试使用

星期三, 九月 30th, 2020 | JAVA-and-J2EE | 没有评论

0.很好用,但还是放弃使用了,主要guava依赖的版本原因,在guava-29和28版本中无法使用

项目git地址:https://github.com/rholder/guava-retrying

1.用法的几个类 列出如下:

    <dependency>
      <groupid>com.github.rholder</groupid>
      <artifactid>guava-retrying</artifactid>
      <version>2.0.0</version>
    </dependency>

› Continue reading

Tags:

表重命名快速指令

星期日, 九月 20th, 2020 | JAVA-and-J2EE | 没有评论

表重命名sql指令:

 
RENAME TABLE t_user TO t_user_20200920;
RENAME TABLE data_user TO t_user;

Tags:

启用远程调用Docker下应用selenium-chrome服务

星期五, 九月 18th, 2020 | JAVA-and-J2EE, linux | 没有评论

1.服务调用本地的chromedriver驱动部署到服务器上比较麻烦,借助docker可以快速使用和独立

docker-selenium 的git地址:https://github.com/SeleniumHQ/docker-selenium

如果未安装docker可以一键安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
#或者:国内源速度快点
curl -sSL https://get.daocloud.io/docker | sh
##启动docker
sudo systemctl start docker
 
docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-alpha-7-prerelease-20200907

2.启用chrome的支持cdp功能远程驱动
› Continue reading

Tags: ,

freemarker循环、日期格式化、常用汇总

星期六, 八月 15th, 2020 | JAVA-and-J2EE, spring-boot | 2 Comments

首先权威地址官方地址:https://freemarker.apache.org/

中文版使用手册地址:http://freemarker.foofun.cn/toc.html

1.日期格式及解决日期为NULL报错的写法

${(user.birthday?string("yyyy-MM-dd"))!}
 
//--或者--
${(user.birthday?string("yyyy-MM-dd"))!'--'}

2.判断对象是否存在再进行操作

<#if user?? >「${user.name }<#else></#if>

3.循环及计数使用

<#list listUser as user>
	<#if user?? >「${user.name }<#else></#if>
	<#if user?counter gt 3 >
	 ${user.email}
	</#if>
</#if>

Tags:

防止selenium和ChromeDriver的JS检测java版处理

星期一, 七月 27th, 2020 | JAVA-and-J2EE, linux | 没有评论

启用最新版本的 selenium-java的4.0.0-alpha-X版本即可支持CdpCommand抵挡 webdriver的检测为true

maven如下:

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupid>org.seleniumhq.selenium</groupid>
    <artifactid>selenium-java</artifactid>
    <version>4.0.0-alpha-6</version>
</dependency>
<dependency>
     <groupid>com.google.guava</groupid>
     <artifactid>guava</artifactid>
</dependency>

对应java代码如下
› Continue reading

Tags:

springboot的瘦身部署计划lib依赖包分离

星期二, 六月 30th, 2020 | JAVA-and-J2EE, linux | 没有评论

1.springboot目前都趋向于使用jar部署,但是问题是每次打包的

fatjar都比较大,有50M左右,发布上传比较耗时,尤其是服务器在海外的情况更是感觉浪费时间

2.把依赖的lib包剥离出来,单独依赖减少每次的打包大小量

注意:若有新增加的依赖或者调整依赖库的版本需要重新调整lib,切记.

3.开始方法:正常打包 获取BOOT-INF下的lib依赖jar包

mvn clean install
› Continue reading

Tags:

Search

文章分类

Links

Meta