1、tomcat启动不起来,报java.net.BindException: Cannot assign requested address: JVM_Bind。
答:乍一看以为是端口被占用了,通过netstat -ano | find "端口"无果,换了个端口也无果,说明不是端口的问题,后来网上说是hosts文件中localhost 映射了2次的问题,果然,注释掉其中一个问题解决。
2、jquery为label赋值,用$("#label").val("马云")竟然未生效,只能用$("#input").val("马云"),找一个input,将readonly使其生效。
3、localStorage使用太简单了,和hashmap一样,一个key,一个value.
localStorage.setItem("jwt", data.data.jwt);
jwt:localStorage.getItem("jwt")
4、js用md5,只要下载一个md5.js即可
var md5Str = hex_md5("input string");
5、input type="number"是h5的新类型
6、jquery application/json
注意2点
6.1>要显式设置头部
6.2>要用stringfy
jQuery.ajax ({
url: myurl,
type: "POST",
data: JSON.stringify({data:"test"}),
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function(){
//
}
});
亲测有效。
参考链接-和老外学的
7、jetty6 maven插件如何进入debug模式?
答:在terminal中是无法进入的。
得在Intellij中新建一个maven命令,然后用debug来启用。如下面2图所示
参考链接-也是参考老外的
8、Java将字符串md5,用如下方法即可,jdk原生的
/**
* 对字符串md5加密
*
* @param str
* @return
* @throws Exception
*/
public static String getMD5Str(String str) throws Exception {
try {
// 生成一个MD5加密计算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算md5函数
md.update(str.getBytes());
// digest()最后确定返回md5 hash值,返回值为8为字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
// BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
return new BigInteger(1, md.digest()).toString(16);
} catch (Exception e) {
throw new Exception("MD5加密出现错误,"+e.toString());
}
}
9、java jwt
使用非常简单,引用java-jwt的pom,这个类有2个方法,一个是sign,一个是unsign.
在登录时sign,在其它操作时进行用unsign,校验签名,如果通过,则拿出payload中的userId,进行各种操作。
10、mysql权限不生效。
是因为每次赋权时都往mysql数据库的user表中新增一条记录,而不是覆盖。因此企图靠覆盖的思路,均不生效。如下图所示:
知道了原理后,就比较简单了,直接将不期望的那一条删除即可。
执行flush priviledge使之生效
11、js缓存太头痛了,经常是服务端改了,客户端死活不生效,手机浏览器清缓存还没用。
答:有妙招的,在js后面加个版本号即可,简单粗暴。
<script src="login_ff/login1.js?v=201807021"></script>
12、tomcat加固
将webapps除了自己的war外全部删除。