|
7:解决java中文问题: 针对applet和awt: 1:) Font f = new Font(UIResource.getString( "Default_font"),Font.PLAIN,12); UIManager.put("Label.font",f); UIManager.put("Label.foreground",Color.black); UIManager.put("Button.font",f); UIManager.put("Menu.font",f); UIManager.put("MenuItem.font",f); UIManager.put("List.font",f); UIManager.put("CheckBox.font",f); UIManager.put("RadioButton.font",f); UIManager.put("ComboBox.font",f); UIManager.put("TextArea.font",f);
2:) Font f = new Font("隶书",Font.PLAIN,15); UIManager.put("Button.font",font); UIManager.put("ToggleButton.font",font); UIManager.put("RadioButton.font",font); UIManager.put("CheckBox.font",font); UIManager.put("ColorChooser.font",font); UIManager.put("ToggleButton.font",font); UIManager.put("ComboBox.font",font); UIManager.put("ComboBoxItem.font",font); UIManager.put("InternalFrame.titleFont",font); UIManager.put("Label.font",font); UIManager.put("List.font",font); UIManager.put("MenuBar.font",font); UIManager.put("Menu.font",font); UIManager.put("MenuItem.font",font); UIManager.put("RadioButtonMenuItem.font",font); UIManager.put("CheckBoxMenuItem.font",font); UIManager.put("PopupMenu.font",font); UIManager.put("OptionPane.font",font); UIManager.put("Panel.font",font); UIManager.put("ProgressBar.font",font); UIManager.put("ScrollPane.font",font); UIManager.put("Viewport",font); UIManager.put("TabbedPane.font",font); UIManager.put("TableHeader.font",font); UIManager.put("TextField.font",font); UIManager.put("PasswordFiled.font",font); UIManager.put("TextArea.font",font); UIManager.put("TextPane.font",font); UIManager.put("EditorPane.font",font); UIManager.put("TitledBorder.font",font); UIManager.put("ToolBar.font",font); UIManager.put("ToolTip.font",font); UIManager.put("Tree.font",font);
3:)针对jsp和servlet: 解决办法: 第一: 在jsp页面加入: <%@ page contentType="text/html; charset=gb2312" %> 或者在servlet里面 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=gb2312");//这是重要的 上面的如果在不行就用如下的方法在数据入库前进行调用: public static String UnicodeToChinese(String s){ try{ if(s==null||s.equals("")) return ""; String newstring=null; newstring=new String(s.getBytes("ISO8859_1"),"gb2312"); return newstring; } catch(UnsupportedEncodingException e) { return s; } }
public static String ChineseToUnicode(String s){ try{ if(s==null||s.equals("")) return ""; String newstring=null; newstring=new String(s.getBytes("gb2312"),"ISO8859_1"); return newstring; } catch(UnsupportedEncodingException e) { return s; } }
3:)解决weblogic/webshpere中文问题: 在web.xml文件中需要配置中文环境。r如下: <context-param> <param-name>weblogic.httpd.inputCharset./*</param-name> <param-value>GB2312</param-value> </context-param> 4:)javamail附件中文乱码: /* @从BodyPart中提取使用ISO-8859-1编吗的文件名 @因为BodyPart.getFilename()过程已经对文件名作了一次编码,有时不能直接使用 */ public static String getISOFileName(Part body){ //设置一个标志,判断文件名从Content-Disposition中获取还是从Content-Type中获取 boolean flag=true; if(body==null){ return null; } String[] cdis; try{ cdis=body.getHeader("Content-Disposition"); } catch(Exception e){ return null; } if(cdis==null){ flag=false; } if(!flag){ try{ cdis=body.getHeader("Content-Type"); } catch(Exception e){ return null; } } if(cdis==null){ return null; } if(cdis[0]==null){ return null; } //从Content-Disposition中获取文件名 if(flag){ int pos=cdis[0].indexOf("filename="); if(pos<0){ return null; } //如果文件名带引号 if(cdis[0].charAt(cdis[0].length()-1)=='"'){ return cdis[0].substring(pos+10,cdis[0].length()-1); } return cdis[0].substring(pos+9,cdis[0].length()); } else{ int pos=cdis[0].indexOf("name="); if(pos<0){ return null; } //如果文件名带引号 if(cdis[0].charAt(cdis[0].length()-1)=='"'){ return cdis[0].substring(pos+6,cdis[0].length()-1); } return cdis[0].substring(pos+5,cdis[0].length()); } } 8:字符串分割: public int getCount(String str,String sign){//查找某一字符串中str,特定子串s的出现次数 if(str==null) return 0; StringTokenizer s=new StringTokenizer(str,sign); return s.countTokens(); } public String[] getArray(String str,String sign){//按特定子串s为标记,将子串截成数组。 int count=getCount(str,sign); int j=0; String[] arr=new String[count]; for(int i=0;i<count;i++){ if(str.indexOf(sign)!=-1){ j =str.indexOf(sign); arr=str.substring(0,j); str =str.substring(j+1); }else{ arr=str; } } return arr;
} 10:数字转货币大写(js) function ChangeToBig(value) { var intFen,i; var strArr,strCheck,strFen,strDW,strNum,strBig,strNow;
if(trim(value)=="") //数据为空时返回"零" return "零"; if (isNaN(value)) //数据非法时提示,并返回空串 { strErr = "数据"+value+"非法!" alert(strErr); return ""; } strCheck = value+"."; strArr = strCheck.split("."); strCheck = strArr[0]; if(strCheck.length>12) //数据大于等于一万亿时提示无法处理 { strErr = "数据"+value+"过大,无法处理!" alert(strErr); return ""; } try { i = 0; strBig = ""; intFen = value*100; //转换为以分为单位的数值 strFen = intFen.toString(); strArr = strFen.split("."); strFen = strArr[0]; intFen = strFen.length; //获取长度 strArr = strFen.split(""); //将各个数值分解到数组内 while(intFen!=0) //分解并转换 { i = i+1; switch(i) //选择单位 { case 1:strDW = "分";break; case 2:strDW = "角";break; case 3:strDW = "元";break; case 4:strDW = "拾";break; case 5:strDW = "佰";break; case 6:strDW = "仟";break; case 7:strDW = "万";break; case 8:strDW = "拾";break; case 9:strDW = "佰";break; case 10:strDW = "仟";break; case 11:strDW = "亿";break; case 12:strDW = "拾";break; case 13:strDW = "佰";break; case 14:strDW = "仟";break; } switch (strArr[intFen-1]) //选择数字 { case "1":strNum = "壹";break; case "2":strNum = "贰";break; case "3":strNum = "叁";break; case "4":strNum = "肆";break; case "5":strNum = "伍";break; case "6":strNum = "陆";break; case "7":strNum = "柒";break; case "8":strNum = "捌";break; case "9":strNum = "玖";break; case "0":strNum = "零";break; }
//处理特殊情况 strNow = strBig.split(""); //分为零时的情况 if((i==1)&&(strArr[intFen-1]=="0")) strBig = "整"; //角为零时的情况 else if((i==2)&&(strArr[intFen-1]=="0")) { //角分同时为零时的情况 if(strBig!="整") strBig = "零"+strBig; } //元为零的情况 else if((i==3)&&(strArr[intFen-1]=="0")) strBig = "元"+strBig; //拾-仟中一位为零且其前一位(元以上)不为零的情况时补零 else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元")) strBig = "零"+strBig; //拾-仟中一位为零且其前一位(元以上)也为零的情况时跨过 else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")) {} //拾-仟中一位为零且其前一位是元且为零的情况时跨过 else if((i<7)&&(i>3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元")) {} //当万为零时必须补上万字 else if((i==7)&&(strArr[intFen-1]=="0")) strBig ="万"+strBig; //拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零 else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="万")) strBig = "零"+strBig; //拾万-仟万中一位为零且其前一位(万以上)也为零的情况时跨过 else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="万")) {} //拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过 else if((i<11)&&(i>7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")) {} //万位为零且存在仟位和十万以上时,在万仟间补零 else if((i<11)&&(i>8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="万")&&(strNow[2]=="仟")) strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length); //单独处理亿位 else if(i==11) { //亿位为零且万全为零存在仟位时,去掉万补为零 if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]=="仟")) strBig ="亿"+"零"+strBig.substring(1,strBig.length); //亿位为零且万全为零不存在仟位时,去掉万 else if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]!="仟")) strBig ="亿"+strBig.substring(1,strBig.length); //亿位不为零且万全为零存在仟位时,去掉万补为零 else if((strNow[0]=="万")&&(strNow[2]=="仟")) strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length); //亿位不为零且万全为零不存在仟位时,去掉万 else if((strNow[0]=="万")&&(strNow[2]!="仟")) strBig = strNum+strDW+strBig.substring(1,strBig.length); //其他正常情况 else strBig = strNum+strDW+strBig; } //拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零 else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="亿")) strBig = "零"+strBig; //拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过 else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="亿")) {} //拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过 else if((i<15)&&(i>11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零")) {} //亿位为零且不存在仟万位和十亿以上时去掉上次写入的零 else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]!="仟")) strBig = strNum+strDW+strBig.substring(1,strBig.length); //亿位为零且存在仟万位和十亿以上时,在亿仟万间补零 else if((i<15)&&(i>11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]=="仟")) strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length); else strBig = strNum+strDW+strBig; strFen = strFen.substring(0,intFen-1); intFen = strFen.length; strArr = strFen.split(""); } return strBig; }catch(err){ return ""; //若失败则返回原值 } }
11:删除文件夹下的所有目录: /* * 删除一个目录下的所有文件 */ public static void delAllFile(String path) { File file = new File(path); if(!file.exists()) return; if(!file.isDirectory()) return; String[] tempList = file.list(); File temp = null; for(int i = 0; i < tempList.length; i++) { if(path.endsWith(File.separator)) temp = new File(path + tempList); else temp = new File(path + File.separator + tempList); if(temp.isFile()) temp.delete(); if(temp.isDirectory()) delAllFile(path + tempList); } } 12:字符串转换成时间及时间相减: 1:) SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.MM.dd"); //假定像2002.07.04的是合法日期其他都非法。 String str="2002.07.04"; ParsePosition pos = new ParsePosition(0); Date dt=formatter.parse(str,pos); if(dt!=null) { //是合法日期 } else { //非法日期 } 2:) 两个日期相减 import java.util.*; import java.text.*; class a { public static void main(String[] args) { String s1 = "2003/08/15 17:15:30"; String s2 = "2002/09/14 14:18:37"; try{ SimpleDateFormat formatter = new SimpleDateFormat ("yyyy/MM/dd HH:mm:ss"); ParsePosition pos = new ParsePosition(0); ParsePosition pos1 = new ParsePosition(0); Date dt1=formatter.parse(s1,pos); Date dt2=formatter.parse(s2,pos1); System.out.println("dt1="+dt1); System.out.println("dt2="+dt2); long l = dt1.getTime() - dt2.getTime(); System.out.println("Hello World!="+l); }catch(Exception e){ System.out.println("exception"+e.toString()); } } }
3:)得到2个月后的日期: import java.util.*; import java.text.DateFormat; public class test2 { public static void main(String args[]) throws Exception { String date="2001/11/30"; DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); GregorianCalendar grc=new GregorianCalendar(); grc.setTime(new Date(date));
grc.add(GregorianCalendar.MONTH,2); System.out.println("grc="+dateFormat.format(grc.getTime())); } }
13:jsp/servet重定向问题: 不改变url的: 1:)servlet: public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
getServletContext().getRequestDispatcher(test2URL).forward(request, response); 2:)jsp <jsp:forward page="/jsp/forward/one.jsp"/> 改变url的: 1:)response.sendRedirect("/web/mail/pop3.jsp");
15.计算日期间隔 public int getDays(Date sd,Date ed){ return (ed.getTime()-sd.getTime())/(3600*24*1000) }
16.日期加减 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd"); String str="20011230"; Date dt=sdf.parse(str,new ParsePosition(0)); Calendar rightNow = Calendar.getInstance(); rightNow.setTime(dt); rightNow.add(Calendar.DATE,2);//你要加减的日期 Date dt1=rightNow.getTime(); String reStr=sdf.format(dt1,"",new FieldPosition(0)); System.out.println(reStr);
17.时间显示控制 第一种方式: <html> <head><title>取得系统时间</title></head> <body> <%java.util.Date date=new java.util.Date();%> 现在是:<%=date%> </body> </html> 运行结果: 现在是:Tue Jul 31 10:32:52 CST 2001
第二种方式: <%@ page import="java.util.*, java.text.*" %> <HTML> <HEAD><TITLE>显示当前时间</TITLE></HEAD> <BODY> 当前时间: <% Date now = new Date(); out.println(DateFormat.getTimeInstance().format(now)); %> </BODY> </HTML> 运行结果: 10:31:42 AM
第三种方式: <% java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy年MM月dd日"); java.util.Date currentTime_1 = new java.util.Date(); out.print(formatter.format(currentTime_1)); %> 运行结果: 2001年07月31日
第四种方式: <% java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy/MM/dd HH/mm/ss"); java.util.Date currentTime_1 = new java.util.Date(); out.print(formatter.format(currentTime_1)); %> 运行结果: 2001/07/31 10/32/52 第三四两种方式其实是一样的他可以产生千变万化的格式。
18.加密&解密 在插入数据库前先将字符串str进行加密: java.net.URLEncoder.encode(String str); 从数据库中取出时再解码:(可以先不加密,只解码,试一试;不行再加密) java.net.URLDecoder.decode(String str);
19.页面刷新: 有三种方法: 1,在html中设置: <title>xxxxx</title>之後加入下面这一行即可! 定时刷新:<META HTTP-EQUIV="Refresh" content="10; URL=http://自己的URL"> 10代表刷新间隔
2.jsp <% response.setHeader("refresh","1"); %> 没一秒刷新一次
3.使用javascript: <script language="javascript"> setTimeout("self.location.reload();",1000); <script> 一秒一次
20.打印: 1.直接调用windows函数 <input type="button" value="print" onclick="window.focus();window.print()">
2.调用js //放在head 与 head 之间 <SCRIPT LANGUAGE=javascript> <!-- function setPrint() { WB.ExecWB(8,1); } function previewPrint() { WB.ExecWB(7,1) } //--> </SCRIPT> //放在body与body之间 <OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0 id=WB width=0> </OBJECT> <INPUT type="button" value="打印设置" id=button1 name=button1 onclick="setPrint();"> <INPUT type="button" value="打印预览" id=button2 name=button2 onclick="previewPrint();">
21.将数据用execl在客户端展现: <style type="text/css"> { .showTD {color: #003366; } .hiddenTD {display:none; } .onFocue {color: #CC66FF;} .offFocue {color:#003366;} } #floater { LEFT: 445px; POSITION: absolute; TOP: 15px; VISIBILITY: visible; WIDTH: 125px; Z-INDEX: 10} </STYLE>
<object classid="clsid:0002E510-0000-0000-C000-000000000046" id="Spreadsheet1" width="676" height="388"> <param name="HTMLURL" value> <param name="HTMLData" value=""> <param name="DataType" value="HTMLDATA"> <param name="AutoFit" value="0"> <param name="DisplayColHeaders" value="-1"> <param name="DisplayGridlines" value="-1"> <param name="DisplayHorizontalScrollBar" value="-1"> <param name="DisplayRowHeaders" value="-1"> <param name="DisplayTitleBar" value="-1"> <param name="DisplayToolbar" value="-1"> <param name="DisplayVerticalScrollBar" value="-1"> <param name="EnableAutoCalculate" value="-1"> <param name="EnableEvents" value="-1"> <param name="MoveAfterReturn" value="-1"> <param name="MoveAfterReturnDirection" value="0"> <param name="RightToLeft" value="0"> <param name="ViewableRange" value="1:65536"> </object> <div class="hiddenTD" id="tablers"> <table width=95% align=center border=1 cellspacing=0 cellpadding=0> <tr> <td>客户名称A</td> <td>客户名称B</td> <td>客户名称C</td> <td>客户名称D</td> <tr> <td>abc</td> <td>def</td> <td>111</td> <td>222</td> <tr> <td>ddd</td> <td>dfdf</td> <td>ddd</td> <td>ddd</td> </table> </div> <script language="javascript"> Spreadsheet1.HTMLData = tablers.innerHTML ; </script>
|
一共有 0 条评论