java初学者必读-经验总结

本文详细介绍Java开发环境配置步骤,包括JDK、Tomcat、WebLogic等的配置方法,解决常见问题如中文乱码、连接池配置等,并提供实用的Java编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1:jdk开发中系统环境变量设置:  
  方法如下:  
  Win2000中:  
  右键我的电脑--》属性--》高级--》环境环境变量  
  classpath=.;jdk安装目/lib  
  path=jdk安装目录/bin  
  注意:一定不可忽略“.”。  
  Win98中:  
  修改autocexe.bat   就是修改自动批处理文件。  
  添加:  
  set   classpath=.;jdk安装目/lib  
  set   path=jdk安装目录/bin;%path%  
   
  2:(前提设置好了系统环境变量)  
  不带包的编译,相当简单:  
  javac   类名.java  
  java   类名  
   
  关于带包的编译问题:  
  如果你的类是带包的,应该用如下方法编译:  
  javac   -d     包的父目录   类名.java  
  java     包名.类名  
   
  3:Tomcat服务器配置:  
        1):设置好系统环境变量。  
        2):JAVA_HOME=G:/JBuilder6/jdk1.3.1  
            G:/JBuilder6/jdk1.3.1为jdk安装目录  
        3):TOMCAT_HOME=tomcat安装目录  
  4:修改serlet而不重新启动tomcat  
  修改  
  %TOMCAT_HOME%/conf/server.xml  
  大致如下:  
  <Context   path=""   docBase="ROOT"   debug="0"     reloadable="true"/>  
  其中reloadable就是配置是否自动reload的,把它设为true,如果没有这一项,加上。  
  5:修改webshpere中的servlet而不重新启动服务:  
  修改../WEB-INF下面的web.xml:  
  加入<webappext:WebAppExtension   xmi:version="2.0"   xmlns:xmi="http://www.omg.org/XMI"   xmlns:webappext="webappext.xmi"   xmlns:webapplication="webapplication.xmi"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xmi:id="WebApp_ID_Ext"   reloadInterval="3"   reloadingEnabled="true"   fileServingEnabled="true"   directoryBrowsingEnabled="true"   serveServletsByClassnameEnabled="true">其中reloadInterval="3"   reloadingEnabled="true"   fileServingEnabled="true"   directoryBrowsingEnabled="true"   serveServletsByClassnameEnabled="true"是主要的,reloadInterval="3"   reloadingEnabled="true"   是说修改后3秒自动重新载  
  入。  
  6:配置jbuilder6+webshpere4.0AE,其实jb7可以参照:  
  首先安装j2ee,然后把j2ee加入到jb的libraries里面。方法如下  
      1:)tools--->configure   libraries-->new--->name:里面填写j2ee,Location:里面默认的旧可以了。---->add-->选在j2ee安装路径,选中lib文件夹--ok--oK.  
   2:)返回到configure   libraries也面后,选中Required   Libraries-->add--》选中你刚才创建的j2ee,点ok就可以了。  
  然后配置webshpere应用服务器和database pilot:  
  第一步:tools-->enterprise   setup-->Application   servers设置安装路径以及IBM的JAVA路径,DB2你自己看着办  
  第二步:project-->Defaults   project   properties里servers选择Ws4.0,应该可以用了  
  webshpere4.0不支持ejb2.0,webshpere5.0支持。  
  配置database   pilot  
  第一步:添加类库tools-->config   libraries添加你的数据库驱动程序类  
  第二步:tools-->enterprise   setup-->Database   Drivers里面添加你刚添加的那个类库  
  第三步:重启JBilder后,tools-->database   pilot-->option-->drivers,添加驱动程序  
  第四步:在database   pilot点新建就可以了,driver:COM.ibm.db2.jdbc.app.DB2Driver。url:jdbc:db2:db_sdbc.(db_sdbc为服务器上的db2数据库).  

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[i]=str.substring(0,j);  
                          str       =str.substring(j+1);  
                  }else{  
                          arr[i]=str;  
                  }  
          }  
          return   arr;  
   
  }  
  9:jdk1.3没有字符串替换函数,(jdk1.4有)。  
  解决1.3中的个这个问题如下:  
   
  public   String   stringReplace(String   sourceString,   String   toReplaceString,   String   replaceString)  
      {  
          String   returnString   =   sourceString;  
          int   stringLength   =   0;  
          if(toReplaceString   !=   null)  
          {  
              stringLength   =   toReplaceString.length();  
          }  
          if(returnString   !=   null   &&   returnString.length()   >   stringLength)  
          {  
              int   max   =   0;  
              String   S4   =   "";  
              for(int   i   =   0;   i   <   sourceString.length();   i++)  
              {  
                  max   =   i   +   toReplaceString.length()   >   sourceString.length()?   sourceString.length():i   +   stringLength;  
                  String   S3   =   sourceString.substring(i,   max);  
                  if(!S3.equals(toReplaceString))  
                  {  
                      S4   +=   S3.substring(0,1);  
                  }else{  
                      S4   +=   replaceString;  
                      i   +=   stringLength   -1   ;  
                  }  
              }  
              returnString   =   S4;  
          }  
          return   returnString;  
      }  
  9:设置weblogic连接池:  
   
  pool的配置:  
  假设已配置服务:expserv  
  且数据库服务器机器名为:expserv  
  数据库sid:expservSID,用户名和密码都为:expserv  
  以weblogic7.0为例,首先启动服务  
  http://localhost:port/console  
  打开service/jdbc/connection   pools  
  配置oraclePool如下:  
  Configuration:  
        Name:   oraclePool    
        URL:   jdbc:oracle:thin:@expserv:1521:expservSID  
        Driver   Classname:   oracle.jdbc.driver.OracleDriver      
        Properties(key=value):   user=expserv  
  Targets:  
        Targets-Server:expserv  
  在weblogic7.0中除了数据库密码,其他的pool参数都可以在config.xml中直接用文本编辑器直接修改。

 

 

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[i]);  
  else    
  temp   =   new   File(path   +   File.separator   +   tempList[i]);  
  if(temp.isFile())   temp.delete();  
  if(temp.isDirectory())   delAllFile(path   +   tempList[i]);  
  }  
  }  
  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");  

 

14:jb7+weblogic6.x配置方法如下:  
  Win   2000   Temp、Tmp   的配置  
   
  因为我们生成的   ejb   相关代码要进行一系列的编译,那么所生成的临时文件就要有个地方放啊,但   Win2000中的   Temp、Tmp   目录却偏偏有空格   如%USERPROFILE%/Local   Settings/Temp,接下来我们来配置一下:  
   
  1)   右击   《我的电脑》   选属性,在弹出的对话框中选   《高级》   ,再选   《环境变量》   按钮,  
   
  2)   修改   《Administrator   的用户变量》和《系统变量》中的   TEMP、TEMP、TMPDIR   选项,单击每一个选项,然后点《编辑》(右图),把每个   变量名为     TEMP、TEMP、TMPDIR   的值都改为   c:/WINNT/temp   ,当然这不是必须的,只是我建议你这么做。  
   
  其实也没什么难的,若改完,则Win2000环境这么应该没什么问题了。  
  WebLogic   6.X   部分  
   
  一、JDBC   Connection   Pool   的配置         以Mysql   小型数据库为例  
   
  在进行此项配置之前,先将欲使用的   数据库JDBC   驱动   Jar   文件放到D:/bea/wlserver6.1/lib/jdbc   目录下(建议这样做,没有jdbc目录就建一个呗),然后编辑D:/bea/wlserver6.1/config/mydomain   下的   startWebLogic.cmd   文件,在   classpath   中加入数据库的JDBC驱动文件,如红字部分:  
   
  :runWebLogic  
  echo   on  
  set   PATH=./bin;./bin/oci817_8;d:/oracle/ora81/bin;%PATH%  
  set   CLASSPATH=./lib/cr_wls60f.jar;./lib/weblogic_sp.jar;./lib/weblogic.jar;./lib/jdbc/mysql.jar  
   
  这样   Weblogic   启动时才会加载欲使用的数据库JDBC驱动,配置也才会正常,否则会报错。  
  1)在Weblogic控制台中依次展开Services   /   JDBC   /   Connection   Pools  
  2)单击   Configure   a   new   JDBC   Connection   Pool...  
   
  3)填入每一项参数,结果如下:  
  url:   jdbc:mysql://127.0.0.1:3306/test  
  driver   classname:org.gjt.mm.mysql.Driver  
  properties(key=value):user=root  
  4)   别忘了点一下   Apply   即应用一下:)  
  5)   Connections   签下的   初始容量、最大容量、容量增长等可根据自已需要配置  
  6)   还有至关重要的最后一步,我们做的以上配置工作还没有真正的应用到   Weblogic   上,所以还差一步,  
          选   Targets   签,选   Servers   签,选   Available   (可用)中的   myserver   ,然后点"-->"     ,再点   Apply   应用一下。  
          这样我们所做的工作才会真正有效,   Weblogic   也才会认识我们配置的   JDBC   Connection   Pool  
  二、配置数据源  
   
  1)在Weblogic控制台中依次展开Services   /   JDBC   /   Tx   Data   Sources  
  2)单击   Configure   a   new   JDBC   Tx   Data   Source...  
  3)填入每一项参数,结果如下:  
   
  jndi   name:   MysqlDataSoruce  
  PoolName:MysqlPool  
  row   prefetch   size   :48  
  stream   chunk   size:   2564)   别忘了点一下   Apply   即应用一下:)  
  5)   同样,选   Targets   签,选   Servers   签,选   Available   (可用)中的   myserver   ,然后点"-->"     ,再点   Apply   应用一下。  
          这样我们所做的工作才会真正有效,   Weblogic   也才会认识我们配置的   DataSource。  
   
  JBuilder   7   的相关配置  
   
  一、数据库驱动的加载  
   
  同   weblogic   一样,在进行此项配置之前,先将欲使用的   数据库JDBC   驱动   Jar   文件放到   D:/JBuilder7/lib/jdbc   目录下(建议这样做,没有jdbc目录就建一个呗)  
   
  1)   开启   JBuilder   7,单击   Tools   /   EnterPrise   Setup   .......  
   
  2)   在弹出窗口中选择   Database   Drivers   签  
  3)   再点   Add   按钮,弹出新窗口(可能你的与图上的略有不同)  
  4)   再单击   New   ...   按钮,弹出新窗口,并改变   Name:   的默认值为   mysql   (只要有意义,起个什么名都成)  
  5)   单击   Add...   按钮来查找并添加数据库的   JDBC   驱动,当然了,我们到   D:/JBuilder7/lib/jdbc   下去找,选   mysql.jar   ,注意,不要把mysql.jar   展开,象图那样选中再按   OK   就行了。  
  提示:可以配合   Shift   和   Ctrl   键同时选多个   .jar   文件。  
  6)   结果如下图,如果有多个需要添加的   .jar   文件,还可点   Add...   按钮继续添加。  
  7)   OK   退出.  
  8)   再OK   ,则   mysql   JDBC   驱动就已经加入了。  
  9)   再一次的   Ok   ,JBuilder   提示要重起后上述配置才会生效,确定并重启   JBuilder。  
  二、EJB   2.0   和   应用服务器的配置,以   WebLogic   6.X为例  
   
  在进行此项配置之前要安装   Borland   Enterprise   Servler   5.02   ,IAS   4.5   也成,它俩是一回事,当然了我是有新的不用旧的,安装过程略,因为安装它很   easy   !   基本是一路回车,我把我的安装在   D:/BorlandEnterpriseServer   下了。  
   
  1)   开启   JBuilder   7,单击   Tools   /   EnterPrise   Setup   .......  
   
  2)   选择   CORBA   签,在   Configuration   下的下拉列表框,选择   VisiBroker    
   
  3)   选择   Edit...   ,弹出   Edit   Confiuration   窗口  
      点击path   for   orb   tools    
  4)   单击   Path   for   ORB   tools:   旁边的   ...   浏览按钮,弹出   Select   Directory   窗口,选择   D:/BorlandEnterpriseServer5/bin   并   OK。  
   
  5)   再   两遍   OK   ,JBuilder   又要求你重启,没办法,照它说的做,重启   JBuilder   。  
   
  6)   重启后,还要到   Tools   /   EnterPrise   Setup   .......   ,选   CORBA   项,选   Edit   ,在弹出窗口中选   Library   for   projects:   旁边的   ...   按钮  
  7)   在弹出的新窗口的   User   Home   中你会发现多了一个选项   Borland   Enterprise   Server   5.0.2+   Client    
          即   选择图中所示   黑亮的选项,然后   三遍   OK   退出。    
  8)   再选择   Project   /   Default   Project   Properties   项  
  9)   在弹了对话框中选   Server   签,如图,点击   ...   按钮,  
  10)   在弹出的新对话框中,选择   WebLogic   Application   Server   6.x   +,然后复选   Enable   server   ,见图中红框。  
  11)   复选   Enable   server   后,其它各项可选或可填,点击   ...   按钮,  
          选择   Home   directory   ;  
          选择   Working   directory   ;  
          为你机器所装   Weblogic   的位置。  
  12)   点击   Class   签内的Add   按钮,如上图,将   D:/bea/wlserver6.1/lib/cr_wls60f.jar   文件添加进来。如上图红线。  
          再用   Move   Up   按钮,将     D:/bea/wlserver6.1/lib/cr_wls60f.jar   文件移至最项端,因为一般后加的   .jar   文件在最下边。  
          这一步也比较重要,因为在JBuilder   环境下可以直接启动   Weblogic   ,那它就要首先检测   license   是否合法,即   cr_wls60f.jar文件  
          是否存在。  
   
  13)   再选择   Custom   签,按如下红线所示配置,可能您装的   Weblogic   目录位置与我的有不同,但大概意思是一样的。  
          配置完后,点击   OK   按钮退出  
        domain   name   :mydomain  
        server   name:   myserver  
        version:6.1   Service   Pack1(d:/bea/wlserver6.1)  
  14)   再在如图窗口中的   Single   server   for   all   services   in   project   下拉列表框中选择   WebLogic   Application   Server   6.x+   如图所示,然后   OK   退出。  
  15)   至此   JBuiler   7   下与   WebLogic   6.x   的配置完成,那我们就开工吧!   
    
  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"    
  οnclick="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   οnclick="setPrint();">  
  <INPUT   type="button"   value="打印预览"   id=button2   name=button2   οnclick="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>   
   

 

学java,肯定要学jsp拉,所以就有了下面的东东:  
  一、jsp连接Oracle8/8i/9i数据库(用thin模式)  
   
  testoracle.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();  
  String   url="jdbc:oracle:thin:@localhost:1521:orcl";  
  //orcl为你的数据库的SID  
  String   user="scott";  
  String   password="tiger";  
  Connection   conn=   DriverManager.getConnection(url,user,password);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
   
  二、jsp连接Sql   Server7.0/2000数据库  
   
  testsqlserver.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();  
  String   url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";  
  //pubs为你的数据库的  
  String   user="sa";  
  String   password="";  
  Connection   conn=   DriverManager.getConnection(url,user,password);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
   
  三、jsp连接DB2数据库  
   
  testdb2.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver   ").newInstance();  
  String   url="jdbc:db2://localhost:5000/sample";  
  //sample为你的数据库名  
  String   user="admin";  
  String   password="";  
  Connection   conn=   DriverManager.getConnection(url,user,password);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
   
  四、jsp连接Informix数据库  
   
  testinformix.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("com.informix.jdbc.IfxDriver").newInstance();  
  String   url   =  
  "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;  
  user=testuser;password=testpassword";  
  //testDB为你的数据库名  
  Connection   conn=   DriverManager.getConnection(url);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
   
  五、jsp连接Sybase数据库  
   
  testmysql.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("com.sybase.jdbc.SybDriver").newInstance();  
  String   url   ="   jdbc:sybase:Tds:localhost:5007/tsdata";  
  //tsdata为你的数据库名  
  Properties   sysProps   =   System.getProperties();  
  SysProps.put("user","userid");  
  SysProps.put("password","user_password");  
  Connection   conn=   DriverManager.getConnection(url,   SysProps);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
   
  六、jsp连接MySQL数据库  
   
  testmysql.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("org.gjt.mm.mysql.Driver").newInstance();  
  String   url   ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"  
  //testDB为你的数据库名  
  Connection   conn=   DriverManager.getConnection(url);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  
   
  七、jsp连接PostgreSQL数据库  
   
  testmysql.jsp如下:  
  <%@   page   contentType="text/html;charset=gb2312"%>  
  <%@   page   import="java.sql.*"%>  
  <html>  
  <body>  
  <%Class.forName("org.postgresql.Driver").newInstance();  
  String   url   ="jdbc:postgresql://localhost/soft"  
  //soft为你的数据库名  
  String   user="myuser";  
  String   password="mypassword";  
  Connection   conn=   DriverManager.getConnection(url,user,password);  
  Statement   stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  String   sql="select   *   from   test";  
  ResultSet   rs=stmt.executeQuery(sql);  
  while(rs.next())   {%>  
  您的第一个字段内容为:<%=rs.getString(1)%>  
  您的第二个字段内容为:<%=rs.getString(2)%>  
  <%}%>  
  <%out.print("数据库操作成功,恭喜你");%>  
  <%rs.close();  
  stmt.close();  
  conn.close();  
  %>  
  </body>  
  </html>  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值