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

星期六, 2020-11-07 | Author: Lee | html5, JAVA-and-J2EE | 没有评论 60 views

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调用的办法

星期一, 2020-11-02 | Author: Lee | JAVA-and-J2EE | 没有评论 56 views

现在用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值的限制不同

星期五, 2020-10-23 | Author: Lee | JAVA-and-J2EE | 没有评论 51 views

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的变动

星期五, 2020-10-02 | Author: Lee | JAVA-and-J2EE | 没有评论 79 views

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延迟重试使用

星期三, 2020-09-30 | Author: Lee | JAVA-and-J2EE | 没有评论 146 views

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>

› 继续阅读

Tags:

表重命名快速指令

星期日, 2020-09-20 | Author: Lee | JAVA-and-J2EE | 没有评论 96 views

表重命名sql指令:

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

Tags:

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

星期五, 2020-09-18 | Author: Lee | JAVA-and-J2EE, linux | 没有评论 120 views

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功能远程驱动
› 继续阅读

Tags: ,

wordpress评论自定义验证码

星期日, 2020-09-13 | Author: Lee | php, wordpress | 没有评论 99 views

人总是难以改变的动物,一直用wordpress习惯了,不想再折腾静态博客网站了,继续跟随升级到5.5.1版本.

现在wordpress的评论的机器人真是做的好智能,一些常用的评论插件也基本上已经被攻破.

为了防止垃圾评论的骚扰,发现自制的验证码能拒绝这些评论机器人.

看样还是个性化的参数没有多大价值去处理的原因,非技术问题.

如下自制验证码:

管理员帐号登录:

修改下面的几个文件即可:

1.修改主题文件:(评论)comments.php

在下面新增一行即可,验证码的名称(authcode) 随便起个即可

 
<div id="commentform">
<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">

新增的行:

<label for="authcode">验证码: (Lee)</label>
<input type="text" name="authcode" id="authcode" class="text" value="" placeholder="请输入Lee" size="10" tabindex="1" />

2.登录到机器上 修改 wp-comments-post.php 文件 添加下面的代码即可

 
if($_POST['authcode']!='Lee'){
echo "<script>alert('验证码错误')</script>";
echo "<script>window.history.go(-1)</script>";
exit;
}

小记:其实可以写成一个更好的,做个写个函数注入到其中更好.懒的写了.

Tags: ,

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

星期六, 2020-08-15 | Author: Lee | JAVA-and-J2EE, spring-boot | 2 Comments 226 views

首先权威地址官方地址: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版处理

星期一, 2020-07-27 | Author: Lee | JAVA-and-J2EE, linux | 没有评论 570 views

启用最新版本的 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代码如下
› 继续阅读

Tags:

Search

文章分类

Meta