记录自己开发中经常遇到的小问题以及解决。
1,经常遇到乱码问题,什么页面到后台呀。jquery校验中的,ajax提交的,windows跟linux中交互的。。
所有的转码:
System.out.println("1:" + new String(str.getBytes("GBK"),"ISO8859_1")); System.out.println("2:" +new String(str.getBytes("GBK"),"utf-8")); System.out.println("3:" +new String(str.getBytes("GBK"),"GB2312")); System.out.println("4:" +new String(str.getBytes("GBK"),"GBK")); System.out.println("5:" +new String(str.getBytes("ISO8859_1"),"GBK")); System.out.println("6:" +new String(str.getBytes("ISO8859_1"),"ISO8859_1")); System.out.println("7:" +new String(str.getBytes("ISO8859_1"),"GB2312")); System.out.println("8:" +new String(str.getBytes("ISO8859_1"),"utf-8")); System.out.println("9:" +new String(str.getBytes("utf-8"),"GBK")); System.out.println("10:" +new String(str.getBytes("utf-8"),"utf-8")); System.out.println("11:" +new String(str.getBytes("utf-8"),"GB2312")); System.out.println("12:" +new String(str.getBytes("utf-8"),"ISO8859_1")); System.out.println("13:" +new String(str.getBytes("GB2312"),"GB2312")); System.out.println("14:" +new String(str.getBytes("GB2312"),"ISO8859_1")); System.out.println("15:" +new String(str.getBytes("GB2312"),"utf-8")); System.out.println("16:" +new String(str.getBytes("GB2312"),"GBK"));
2,关于文件大小,是否存在的几种方式:
.var urlImages=window.location.protocol + "//" + window.location.host + "<c:url value="/printTempImages/common/" />"; //判断图片是否存在 function checkimg(obj){ //alert(obj); var s; var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.open("GET",obj,false); xmlhttp.send(); if(xmlhttp.readyState==4) { if(xmlhttp.status==200) s=true; //url存在 else if(xmlhttp.status==404) s=false; //url不存在 else s=false;//其他状态 } //alert(s); return s; }
客户端文件校验大小:
<script type="text/javascript"> $(document).ready(function(){ $("#form0").submit(function() { var filepath=$("input[name='myFile']").val(); var extStart=filepath.lastIndexOf("."); var ext=filepath.substring(extStart,filepath.length).toUpperCase(); if(ext!=".BMP"&&ext!=".PNG"&&ext!=".GIF"&&ext!=".JPG"&&ext!=".JPEG"){ alert("图片限于bmp,png,gif,jpeg,jpg格式"); return false; } var img=new Image(); img.src=filepath; while(true){ if(img.fileSize>0){ if(img.fileSize>3*1024){ alert("图片不大于300KB。"); return false; } break; } } return true; }); }); </script>
只能客户端校验,局限性非常大。。而且有浏览器兼容问题。
一般校验是一个ajax假提交form到后台进行一个文件大小的length判断返回到前台再进行正常提交。
3,关于windows下端口被占用解决。
windows下查看端口被占用情况 findstr "xxx" 跟linux下的grep的作用一样,查询包含的字符串
首先 netstat -ano | findstr "xxx" a:全部的端口使用情况 n:用数字的形式表示主机IP o:显示对应的PID
查出端口号所对应的PID号,再执行 tasklist | findstr "PID" 查询出是哪个程序
需要杀掉程序的话执行 taskkill 杀之
4,关于删除linux下的乱码文件名文件。
当文件名为乱码的时候,无法通过键盘输入文件名,所以在终端下就不能直接利用rm,mv等命令管理文件了。
但是我们知道每个文件都有一个i节点号,我们可以考虑通过i节点号来管理文件。首先,我们要取得文件的i节点号。这个可以通过ls命令的-i选项获得得,也可以通过ll -i 来获得。
第二步,使用find命令将文件名传递给rm命令。e.g:删除节点为12345的乱码文件夹可以使用如下命令
find ./ -inum 12345 -print -exec rm {} -rf /;
注意/;前面的空格不能少,少了就会报错。
5,记得上次什么东西搞的ibaits里面的xml执行语句。 在where条件后面有固定条件and动态查询条件,怎么搞都不行。最后写这个东西~~。记下。
<select id="queryhotEaListByCond" parameterClass="Ea" resultMap="eaResult"> select eaproviderid,eaprovidername,eaid,eaname,description,eastatus,activetime,eaphono,eatype,eaassort,ealabel,partition, eagenre,usedegree,tryoutdegree,bestowstamp,eadevlevel,eansp,score,votecount,status,applynum from zxdev.ea where eaid not in(select hottoolid from toolmaintenance) and eastatus='0' <dynamic> <isNotEmpty prepend="and" property="eaid"> eaid = #eaid# </isNotEmpty> <isNotEmpty prepend="and" property="eaname"> eaname like '%$eaname$%' escape '\' </isNotEmpty> <isNotEmpty prepend="and" property="activetime"> activetime = #activetime# </isNotEmpty> <isNotEmpty prepend="and" property="eaassort"> eaassort = #eaassort# </isNotEmpty> <isNotEmpty prepend="and" property="eagenre"> eagenre = #eagenre# </isNotEmpty> </dynamic> </select>
6,oracle删除数据库死锁:
-第一步:查看是否有死锁存在,查出有数据则代表有死锁 select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a,v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.object_id --第二步:查出死锁session的精确信息【sid 为前面语句的session_id】 SELECT sid, serial#, username, osuser FROM v$session where sid='第一步查询出来的session_id'; --第三步:删除死锁【第一个参数为sid,第二个为serial#】 alter system kill session '第一个参数,第二个参数';
7,struts2的防止页面重复提交:
<!-- token标签防止重复提交的请求 --> <action name="register_app_register" class="developerAction" method="app_register"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="token" /> <result name="register_success_app">/aspportal/user/register_success_app.jsp</result> <result name="invalid.token">/aspportal/comm/repeat.jsp</result> </action> <action name="register_com_register" class="developerAction" method="com_register"> <interceptor-ref name="defaultStack" /> <interceptor-ref name="token" /> <result name="register_success_com">/aspportal/user/register_success_com.jsp</result> <result name="register_activation">/aspportal/user/activation_email.jsp</result> <result name="invalid.token">/aspportal/comm/repeat.jsp</result> </action> <!-- END -->
8,访问weblogic部署应用的时候提示403禁止访问....
很有可能是访问人数超过限制,然后禁止访问....一般未破解的weblogic'只能提供给5个人学习。
9,JS转换一段UTF码的中文成汉字
function revertUTF8(szInput) { var x,wch,wch1,wch2,uch="",szRet=""; for (x=0; x<szInput.length; x++) { if (szInput.charAt(x)=="%") { wch =parseInt(szInput.charAt(++x) + szInput.charAt(++x),16); if (!wch) {break;} if (!(wch & 0x80)) { wch = wch; } else if (!(wch & 0x20)) { x++; wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16); wch = (wch & 0x1F)<< 6; wch1 = wch1 & 0x3F; wch = wch + wch1; } else { x++; wch1 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16); x++; wch2 = parseInt(szInput.charAt(++x) + szInput.charAt(++x),16); wch = (wch & 0x0F)<< 12; wch1 = (wch1 & 0x3F)<< 6; wch2 = (wch2 & 0x3F); wch = wch + wch1 + wch2; } szRet += String.fromCharCode(wch); } else { szRet += szInput.charAt(x); } } return(szRet); }