问题随记

来源:互联网 发布:好运通超市软件 编辑:程序博客网 时间:2024/05/22 12:11
1、[jQuery] Cannot read property ‘msie’ of undefined错误的解决方法
jQuery1.9之后$.browser这个api正式废除,引入jquery-migrate-1.2.1.js可自动恢复最新版本里废除的api。
2、密码控件升级之后,需要版本比较高的(此处引用了jquery-1.12.3.min.js)
3、weblogic编译jsp文件,有时候会出现回车符








jQuery不同版本冲突问题:
开发过程中,密码控件和thickbox用到了不同版本的jQuery,一个版本很低,一个版本很高(1.2和1.12),解决问题如下:
<script src="Resource/script/jquery-1.12.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">var jQuery_New = $.noConflict(true);var $j12 = jQuery_New.noConflict(true);</script>
    <script src="Resource/script/jquery-1.2.6.js" type="text/javascript"></script>
重命名jQuery1.12,调用jQuery1.12时$.(..)改为$j12.(..);(jQuery)的调用改为(jQuery_New);



有时候直接访问文件路径无法进行文件下载,可能是网络WAF限制了传输文件的大小












RSA使用公私钥加解密:
在利用数字证书加密时,会出现这样的异常 :Data must not be longer than 117 bytes。
解密时也会出现这样的异常。
进行分段加解密:
// 加密时超过117字节就报错。为此采用分段加密的办法来加密
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.length; i += 100) {
byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i,
i + 100));
sb.append(new String(doFinal));
dataReturn = ArrayUtils.addAll(dataReturn, doFinal);
}
 
// 解密时超过128字节就报错。为此采用分段解密的办法来解密
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.length; i += 128) {
byte[] doFinal = cipher.doFinal(ArrayUtils.subarray(data, i,
i + 128));
sb.append(new String(doFinal));
}
dataReturn = sb.toString();




ajax请求,发送http请求时中文不是utf-8编码:
ajax前台:var trans_user_name = encodeURI($("#trans_user_name").val(), "UTF-8");  
java后台:URLDecoder.decode(request.getParameter("trans_user_name"), "UTF-8")
加密以及签名时:内容转成byte时转成utf-8(dealStr.getBytes("UTF-8"));












RSA解密时,报错:Bad arguments
byte[] en_result = new BigInteger(result, 16).toByteArray();   
这句有问题,有的时候你会发现数组长度129,第一个元素为0,这肯定是不正确的!
用以下方法生成byte数组:
/**  
 * 16进制 To byte[]  
 * @param hexString  
 * @return byte[]  
 */  
public static byte[] hexStringToBytes(String hexString) {  
    if (hexString == null || hexString.equals("")) {  
        return null;  
    }  
    hexString = hexString.toUpperCase();  
    int length = hexString.length() / 2;  
    char[] hexChars = hexString.toCharArray();  
    byte[] d = new byte[length];  
    for (int i = 0; i < length; i++) {  
        int pos = i * 2;  
        d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));  
    }  
    return d;  
}  
/**  
 * Convert char to byte  
 * @param c char  
 * @return byte  
 */  
 private static byte charToByte(char c) {  
    return (byte) "0123456789ABCDEF".indexOf(c);  
}  






ajax前台接收的中文乱码:
后台:
 response.setContentType("text/html;charset=utf-8"); //当然如果是json数据,需要设置为("text/JavaScript;charset=utf-8");
 response.setcharEncoding("utf-8");
前台:
$.ajax({
contentType: "application/x-www-form-urlencoded; charset=utf-8", 
});
原创粉丝点击