<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現了我寫此文的意義!!!煩請您在轉載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

    #

         摘要:   此文檔中除MySQL 存儲過程參數類型(in、out、inout)小節來自網上,其余均為本人原創,歡迎大家轉載,如有不足,請指教。 由于是在word中編輯好拷貝過來的所以字體較小大家點此下載電子版文檔    MySQL存儲過程 1.1         CREATE &nb...  閱讀全文
    posted @ 2009-11-24 17:12 雪山飛鵠 閱讀(116095) | 評論 (30)編輯 收藏

            log4j是一款很強大的日志記錄工具,使用起來十分靈活,功能也十分強大.本人在開發中喜歡將日志以HTML的形式輸出,該種形式輸出的日志比較清晰,在閱讀的時候可以達到事半功倍的效果
    貼出log4j的配置文件
    log4j.properties

    #All level less than INFO will be logged
    log4j.rootLogger
    =INFO, A1

    #A1 is the output device
    log4j.appender.A1
    =org.apache.log4j.FileAppender
    log4j.appender.A1.File
    =e:/log4j.htm 

    #use html layout
    log4j.appender.A1.layout
    =org.apache.log4j.HTMLLayout
    生成的日志文件:
    posted @ 2009-11-18 11:49 雪山飛鵠 閱讀(3152) | 評論 (1)編輯 收藏

    在spring開發中收集了幾個常見的異常
    (1)org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class

    'com.microsoft.sqlserver.jdbc.SQLServerDriver'

          答:sqljdbc.jar

    (2)java.lang.ClassNotFoundException: org.springframework.ejb.config.JeeNamespaceHandler

         答:spring-remoting.jar

    (3)java.lang.ClassNotFoundException: org.springframework.scripting.config.LangNamespaceHandler   

         答:spring-support.jar

    (4)java.lang.ClassNotFoundException: org.springframework.transaction.config.TxNamespaceHandler  

         答:spring-dao.jar

    (5)java.lang.ClassNotFoundException: org.springframework.aop.config.AopNamespaceHandler

      答:spring-aop.jar

    posted @ 2009-11-16 15:18 雪山飛鵠 閱讀(1654) | 評論 (1)編輯 收藏

         摘要: applicationContext.xml 文件: <bean id="dataSource"         class="com.mchange.v2.c3p0.ComboPooledDataSource"         destroy-method="clo...  閱讀全文
    posted @ 2009-11-16 15:08 雪山飛鵠 閱讀(8223) | 評論 (2)編輯 收藏

    //設置jframe無邊框,無標題
      this.setUndecorated(true);
    posted @ 2009-11-09 12:00 雪山飛鵠 閱讀(1990) | 評論 (0)編輯 收藏

     首先解釋兩個概念,何為序列化?何為反序列化?

    序列化:將對象轉化成流的過程稱為序列化

    反序列化:將流轉化成對象的過程稱之為反序列化

    序列化與反序列化必須遵守的原則

    a)         Java對象

    java中要想使一個java對象可以實現序列化與反序列化,必須讓該類實現java.io.Serializable接口

    java.io.Serializable接口定義如下:

    publicinterface Serializable {

    }

    從上述定義中可以看到該接口中未定義任何方法,這大大的簡化了開發者

    b)      序列化主要依賴java.io.ObjectOutputStream,該類對java.io.FileOutputStream進一步做了封裝,這里主要使用ObjectOutputStream類的writeObject()方法實現序列化功能

    Demo:

    /**

         *將對象序列化到磁盤文件中

         *@paramo

         *@throwsException

         */

        publicstaticvoid writeObject(Object o) throws Exception{

           File f=new File("d:""user.tmp");

           if(f.exists()){

               f.delete();

           }

           FileOutputStream os=new FileOutputStream(f);

           //ObjectOutputStream 核心類

           ObjectOutputStream oos=new ObjectOutputStream(os);

           oos.writeObject(o);

           oos.close();

           os.close();

        }

    c)      反序列化主要依賴java.io.ObjectInputStream,該類對java.io.InputStream進一步做了封裝,這里主要使用ObjectInputStream類的readObject()方法實現序列化功能

    Demo:

    /**

         *反序列化,將磁盤文件轉化為對象

         *@paramf

         *@return

         *@throwsException

         */

        publicstatic User readObject(File f) throws Exception{

           InputStream is=new FileInputStream(f);

           //ObjectOutputStream 核心類

           ObjectInputStream ois=new ObjectInputStream(is);

           return (User)ois.readObject();

        }

    貼出完整的demo

    Java對象:

    package com.io.bean;

    import java.io.Serializable;

    publicclass User implements Serializable {

       

        privateintuserId;

        private String userName;

        private String userSex;

        privateintuserAge;

        publicint getUserAge() {

           returnuserAge;

        }

        publicvoid setUserAge(int userAge) {

           this.userAge = userAge;

        }

        publicint getUserId() {

           returnuserId;

        }

        publicvoid setUserId(int userId) {

           this.userId = userId;

        }

        public String getUserName() {

           returnuserName;

        }

        publicvoid setUserName(String userName) {

           this.userName = userName;

        }

        public String getUserSex() {

           returnuserSex;

        }

        publicvoid setUserSex(String userSex) {

           this.userSex = userSex;

        }

        @Override

        public String toString() {

           returnthis.getUserId() + "   " + this.getUserName() + "   "

                  + this.getUserSex() + "    " + this.getUserAge();

        }

    }

    序列化與反序列化

    package com.io.test;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.FileOutputStream;

    import java.io.InputStream;

    import java.io.ObjectInputStream;

    import java.io.ObjectOutputStream;

    import com.io.bean.User;

    publicclass TestSerializable {

        /**

         *將對象序列化到磁盤文件中

         *@paramo

         *@throwsException

         */

        publicstaticvoid writeObject(Object o) throws Exception{

           File f=new File("d:""user.tmp");

           if(f.exists()){

               f.delete();

           }

           FileOutputStream os=new FileOutputStream(f);

           //ObjectOutputStream 核心類

           ObjectOutputStream oos=new ObjectOutputStream(os);

           oos.writeObject(o);

           oos.close();

           os.close();

        }

       

        /**

         *反序列化,將磁盤文件轉化為對象

         *@paramf

         *@return

         *@throwsException

         */

        publicstatic User readObject(File f) throws Exception{

           InputStream is=new FileInputStream(f);

           //ObjectOutputStream 核心類

           ObjectInputStream ois=new ObjectInputStream(is);

           return (User)ois.readObject();

        }

       

       

        publicstaticvoid main(String[] args) throws Exception{

          

           /*****************將對象序列化***************/

          

        /* 

            User user=new User();

           user.setUserId(1);

           user.setUserName("張藝謀");

           user.setUserSex("");

           user.setUserAge(50);

           TestSerializable.writeObject(user);

        */

          

           /*****************將對象序反列化***************/

          

           User user=TestSerializable.readObject(new File("d:""user.tmp"));

           System.out.println(user);

        }

    }

    posted @ 2009-11-09 10:43 雪山飛鵠 閱讀(38981) | 評論 (7)編輯 收藏

     

    package com.fengjing.javamail;

    import java.util.Date;
    import java.util.Properties;

    import javax.activation.DataHandler;
    import javax.activation.FileDataSource;
    import javax.mail.Address;
    import javax.mail.Message;
    import javax.mail.Multipart;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.Message.RecipientType;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;

    import sun.misc.BASE64Encoder;

    public class SendMail {

     
    public static void main(String[] args) throws Exception{

      Properties props
    =new Properties();
      
    //設置采用郵箱認證
      props.setProperty("mail.smtp.auth""true");
      
    //獲得session
      Session session=Session.getInstance(props);
      
    //設置調試信息
      session.setDebug(true);
      
    //創建message
      Message message=new MimeMessage(session);
      
      
    //對message做些配置
      
    //郵件主題
      message.setSubject("這是用javamail寫得帶附件的郵件");
      
    //郵件發送人
      message.setFrom(new InternetAddress("*****@163.com"));
      
    //發送時間
      message.setSentDate(new Date());
      
    //設置收件人
      /**
       * RecipientType.TO 指定郵件發送類型
       * RecipientType.TO 直接發送
       * RecipientType.CC 抄送
       * RecipientType.BCC 暗送
       * new Address[]{} 郵件接收人列表
       
    */
      message.addRecipients(RecipientType.TO, 
    new Address[]{
        
    new InternetAddress("*******@sohu.com")
      });
      
      
    //使用message中的setText()方法發送文本文件
      
    //message.setText("郵件正文");
      /**
       * "<span style='color:red'>這是用javamail發送的郵件正文</span>" 郵件內容
       * "text/html;charset=utf-8" 指定編碼
       
    */
      
    //message.setContent("<span style='color:red'>這是用javamail發送的郵件正文</span>", "text/html;charset=utf-8");
      
      
    /**********創建帶附件的郵件********************/
      
      
    //創建Multipart對象,最后將Multipart對象添加到message中
      Multipart multipart=new MimeMultipart();
      
    //創建MimeBodyPart對象
      MimeBodyPart mimeBodyPart=new MimeBodyPart();
      
    //設置附件內容
      FileDataSource fds=new FileDataSource("d:\\5.jpg");
      
    //設置附件的名字
      
      
    /********************處理附件中文名亂碼***************************/
     
      sun.misc.BASE64Encoder enc 
    = new sun.misc.BASE64Encoder(); 
      
    //System.out.println(enc.encode("徐熙媛.jpg".getBytes()));
      mimeBodyPart.setFileName("=?GB2312?B?"+enc.encode("徐熙媛.jpg".getBytes())+"?=");
     
      
    //處理附件
      mimeBodyPart.setDataHandler(new DataHandler(fds));
      
      multipart.addBodyPart(mimeBodyPart);
      
      
    /********設置郵件正文內容********/
      
      
    //新創建MimeBodyPart對象,否則正文將會覆蓋掉附件內容
      mimeBodyPart=new MimeBodyPart();
      
    //設置郵件正文內容
      mimeBodyPart.setContent("<span style='color:red'>這是用javamail發送的郵件正文</span>""text/html;charset=utf-8");
      
    //將MimeBodyPart添加到Multipart中
      multipart.addBodyPart(mimeBodyPart);
     
      
    //將multipart添加到message中
      message.setContent(multipart);

      
    //創建傳輸對象
      Transport transport=session.getTransport("smtp");
      
    //配置連接信息
      /**
       * smtp.sohu.com 指定主機
       * 25 端口號
       * sxyx 用戶名
       * ******** 密碼
       
    */
      transport.connect(
    "smtp.sohu.com"25"sxyx""*******");
      
    //發送消息
      /**
       * message 消息內容
       * message.getAllRecipients() 收件人地址  
       * 返回
       * message.addRecipients()方法中指定的郵件接收人列表
       
    */
      transport.sendMessage(message, message.getAllRecipients());
      transport.close();
     }

    }

    文中提到的base64編碼其實可以替換為cos.jar(既歐萊里公司提供的文件上傳包)
    posted @ 2009-11-05 15:15 雪山飛鵠 閱讀(791) | 評論 (0)編輯 收藏

           鑒于此文圖片丟失,影響閱讀質量,特上傳此博文word文檔,廣大網友可點此下載word文檔

    呵呵,最近一直在看struts2方面的資料。大家都知道web開發過程中,我們經常要處理客戶端(用戶)提交過來的數據(增加記錄)及后臺數據庫查詢出來的數據(修改記錄),這里難免會出現一些不符合要求的數據,我們稱為“臟數據”。這里就借助于struts2提供的驗證框架來做數據的驗證(其實它依賴的還是webwork)

    在使用struts2或者說webwork的驗證框架時必須遵守以下幾點:

    在這里不要管為什么,人家就是這么約定的,我們只要照做就是了。除非你是科研人員,如果僅僅是項目需要,建議大家還是不要在這上面花過多的時間,不值得。

    在對應的Action的包下(必須跟該Action在同一個目錄)創建驗證框架規則(.xml文件)

    xml文件的命名必須遵守如下規則:

    1)         該文件必須跟該對應的Action在同一個目錄

    2)         Action的名字---對應Action中的方法名(execute方法除外)-validation.xml

    如:

    如圖所示該文件名由三部分組成:

    第一部分:Action的類名

    第二部分:Action中的方法名

    第三部分:validation.xml(固定)

             這三部分之間用橫線連接-

             驗證規則(EmployeeAction-updateEmployee-validation.xml)內容

             因為Action是基于模型驅動的即在Action引用了對象模型,所以在寫驗證規則的時候字段屬性為Action中對象模型名.具體的屬性()

    Action中的引用關系

    EmployeeAction-updateEmployee-validation.xml中的配置內容

    詳細參看EmployeeAction-updateEmployee-validation.xml中的配置

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE validators PUBLIC

           "-//OpenSymphony Group//XWork Validator 1.0.2//EN"

           "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">

           <validators>

               <field name="employee.empName">

                   <field-validator type="requiredstring">

                       <message>雇員姓名不能為空</message>

                   </field-validator>

               </field>

                 <field name="employee.age">

                   <field-validator type="required">

                       <message>雇員年齡不能為空</message>

                   </field-validator>

               </field>

              <field name="employee.sex">

                   <field-validator type="requiredstring">

                       <message>雇員性別不能為空</message>

                   </field-validator>

               </field>

               <field name="employee.context">

                   <field-validator type="requiredstring">

                       <message>雇員備注信息不能為空</message>

                   </field-validator>

               </field>

           </validators>

    <field name="驗證字段(Action中對象模型名字.具體的屬性)">

                   <field-validator type="requiredstring">   驗證規則

                       <message>驗證出錯信息</message>

                   </field-validator>

    </field>

    最后千萬別忘了在struts.xml文件中一定要配置一個結果為input的轉向

    否則驗證失敗時會出現如下錯誤:


    鑒于此文圖片丟失,影響閱讀質量,特上傳此博文word文檔,廣大網友可點此下載word文檔

    posted @ 2009-10-23 17:42 雪山飛鵠 閱讀(3696) | 評論 (6)編輯 收藏

         摘要:   Struts2文件上傳 大家都知道struts2對文件上傳做了很好的封裝,使文件上傳不再那么恐怖。這里面struts2的文件上傳主要依賴的是org.apache.struts2.interceptor.FileUploadInterceptor這個攔截器 關于這個攔截器我不想做過多的研究,這里主要討論的是該攔截器里面定義的幾個關于文件上傳的重要屬性。 ...  閱讀全文
    posted @ 2009-10-22 09:35 雪山飛鵠 閱讀(9510) | 評論 (3)編輯 收藏

         摘要:   Struts2文件上傳一些小細節 大家都知道struts2對文件上傳做了很好的封裝,使文件上傳不再那么恐怖。這里面struts2的文件上傳主要依賴的是org.apache.struts2.interceptor.FileUploadInterceptor這個攔截器 關于這個攔截器我不想做過多的研究,這里主要討論的是該攔截器里面定義的幾個關于文件上傳的重要屬性。 ...  閱讀全文
    posted @ 2009-10-21 10:33 雪山飛鵠 閱讀(599) | 評論 (0)編輯 收藏

    僅列出標題
    共22頁: First 上一頁 14 15 16 17 18 19 20 21 22 下一頁 
    主站蜘蛛池模板: 免费一级毛片在播放视频| 亚洲av无码片vr一区二区三区| 免费v片在线观看| 18成禁人视频免费网站| 国产精品内射视频免费| 亚洲熟妇AV乱码在线观看| 久久久久亚洲AV成人片| 亚洲自偷自偷在线制服 | 国产aⅴ无码专区亚洲av| 日韩一级在线播放免费观看| 青青青免费国产在线视频小草| 男人都懂www深夜免费网站| 一区二区视频免费观看| 精品韩国亚洲av无码不卡区| 亚洲一区无码中文字幕乱码| 久久精品国产亚洲AV香蕉| 日本亚洲成高清一区二区三区| 亚洲区小说区图片区| 日韩亚洲国产二区| 免费毛片在线播放| 免费涩涩在线视频网| 国内精品免费视频自在线| 性一交一乱一视频免费看| 97人伦色伦成人免费视频| 亚洲美女免费视频| 91九色老熟女免费资源站| 亚洲精品视频在线免费| 国产精品免费网站| 97在线观看永久免费视频| 4399好看日本在线电影免费| 国产精品视频免费观看| 日本亚洲免费无线码| 两个人的视频高清在线观看免费| 性短视频在线观看免费不卡流畅| 无人影院手机版在线观看免费| 国产片AV片永久免费观看 | 亚洲精品女同中文字幕| 亚洲精品宾馆在线精品酒店| 鲁死你资源站亚洲av| 免费一级毛片在线播放视频免费观看永久 | 国产无遮挡色视频免费视频|