fossil

          鳥在籠中,恨關(guān)羽不能張飛 人處世上,要八戒更須悟空
          posts - 40, comments - 0, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          2007年10月14日

               摘要:   閱讀全文

          BeanSoft 2007-11-03 18:35 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/03/157955.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(193) | 評論 (0)編輯 收藏

          BeanSoft 的 AJAX 視頻, 電子書集中下載

          陸續(xù)上傳中, 請關(guān)注:

          http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/AJAX



          BeanSoft 2007-11-05 09:30 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/05/158174.html

          posted @ 2007-11-30 20:57 J2EE UP?。眨?閱讀(186) | 評論 (0)編輯 收藏

          用戶 A 寫道:
          我從實(shí)用的角度上來說 **** 框架/技術(shù)是相當(dāng)爛的一個(gè)東西.
          從理論上也許先進(jìn).

          用戶 B 反駁道:
          我不喜歡聽沒有證據(jù)的東西。不知道你指的"**** 是相當(dāng)爛的一個(gè)東西"什么意思?不知道你使用****有多久?是做了具體的項(xiàng)目體會出來它很爛還是玩了半天就覺得它爛?能不能舉出具體的例子?
          我認(rèn)為 **** 很棒,因?yàn)檫@是我在做項(xiàng)目和學(xué)習(xí)的過程中體會到的。
          國外有很多牛人都認(rèn)為 ****很棒,牛人 XXX 從????年就已經(jīng)在他的項(xiàng)目中使用了自己的****架構(gòu),至今有很多大型的項(xiàng)目都在使用這個(gè)****架構(gòu)。**** 在此之上做了很多的改進(jìn),總結(jié)了框架 A 和框架 B 的不足,是經(jīng)過很多考驗(yàn)和實(shí)踐總結(jié)的成果,希望大家不要只花了半天時(shí)間就把它否定掉。

           

          把 **** 替換成不同的框架/技術(shù), 這就是當(dāng)前技術(shù)推廣貼的一貫文風(fēng).



          BeanSoft 2007-11-05 16:59 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/05/158295.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(195) | 評論 (0)編輯 收藏

          http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/MyEclipse中文文檔

          ?

          現(xiàn)在放上去的有 JSF 和 Hibernate 的.

          目前正在翻譯帶有 Flash 操作動畫的 Spring + Hibernate. 感謝關(guān)注.

          翻譯結(jié)束后將根據(jù)文檔制作視頻教程.



          BeanSoft 2007-11-06 11:30 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/06/158487.html

          posted @ 2007-11-30 20:57 J2EE UP?。眨?閱讀(251) | 評論 (0)編輯 收藏

          Welcome to the home of the Spring Framework, the leading full-stack Java/JEE application framework. Led and sustained by Interface21, Spring delivers significant benefits for many projects, increasing development productivity and runtime performance while improving test coverage and application quality.

          Article: Introduction to the Spring Framework 2.5

          Technical Article

          In this TSS article, Rod Johnson explains what Spring sets out to achieve and how it can help the community develop enterprise Java applications.

          Spring Framework Training Summary (November)

          News and Announcements
          Interface21 is pleased to offer a number of Spring Framework 2.0 and AOP training events in the upcoming period, delivered by the people who build and sustain the Spring Framework. For full details, please visit the main training information page. Here is a summary of some of the upcoming courses and venues:

          ... plus others

          Interested in a full-course of Spring during Winter? The Spring Experience 2007 conference is taking place in sunny Hollywood, Florida, from Dec. 12th-15th.

          今天去 http://www.springframework.org/ 看了一眼, 很不幸的首頁充斥了培訓(xùn)信息, 還有在中國的...

          其實(shí) Spring 的法律上的版權(quán)所有者: Interface21 公司, 是有他們自己的網(wǎng)站的. 不過, 開源軟件不等于放棄版權(quán), 這個(gè)大家一定要清楚啊. 讓一個(gè) .org 的網(wǎng)站充滿了這樣的信息, 真是一種悲哀. 錢, 錢, 錢....



          BeanSoft 2007-11-06 11:48 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/06/158490.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(168) | 評論 (0)編輯 收藏

               摘要: MyEclipse 自帶的 Hibernate 和 Spring 教程(含視頻)翻譯, 內(nèi)容包括: 簡介 建議的聽眾 系統(tǒng)需求 開始工作 反向工程 編寫和運(yùn)行 Hibernate 整合 Spring 代碼 小結(jié) 常見問題 FAQ 資源 反饋
            閱讀全文

          BeanSoft 2007-11-07 17:27 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/07/158875.html

          posted @ 2007-11-30 20:57 J2EE UP?。眨?閱讀(212) | 評論 (0)編輯 收藏

          原創(chuàng)講解JSP過濾器和監(jiān)聽器

          BeanSoft(劉長炯) 2007年11月

          關(guān)于這個(gè)問題, 比較復(fù)雜的說. 不過我希望通過例子來解釋會方便理解一些.

          假設(shè)有一個(gè)非常危險(xiǎn)的任務(wù), 是九死一生. 需要你揣著炸藥包從北平開車走高速路過保定去石家莊把鬼子的碉堡給炸了. 注意: 這個(gè)任務(wù)十分艱巨, 有可能半路炸藥爆炸. 所以出發(fā)前你需要苦練10元一本的<<鐵布衫>>, 還需要立遺囑交代一下后事. 下面是路線圖:
          去時(shí)路線: 北平 ==> 高速路收費(fèi)站入口(都有警察和警犬) A? ==> 保定收費(fèi)站 B ==> 石家莊收費(fèi)站 C ==> 炸碉堡 D ==> 轉(zhuǎn)車(剛才的車已經(jīng)炸沒了) E =>
          回來路線: 石家莊收費(fèi)站 ==> 保定收費(fèi)站 ==> 高速路收費(fèi)站出口(都有警察和警犬) A ==> 安全回到北平 G

          那么我們先簡介可能發(fā)生的情況.? A 點(diǎn)有可能被警察和警犬發(fā)現(xiàn), 所以你只能被扭送回北平.? 即使不被發(fā)現(xiàn), 還可能出現(xiàn)收費(fèi)時(shí)發(fā)現(xiàn)10個(gè)現(xiàn)大洋一個(gè)路口的買路錢沒帶!! 哎, 只能又回去了. 還有最慘的: 高速路入口寫著: 對不起, 到石家莊的路線因?yàn)槭┕げ煌? 只好回家等著吧.
          到了B和C你可能還會被人發(fā)現(xiàn)帶了炸藥包, 或者發(fā)現(xiàn)買路費(fèi)少帶了! 極有可能又被扭送回北平, 注意已經(jīng)在半道了, 是不會讓你繼續(xù)到石家莊的, 所以你會被從車上逮下來, 然后轉(zhuǎn)到警車上帶回來!? 也就是從 B 或者 C 直接返回.
          好了, 最佳情況就是你炸了碉堡, 也成功的返回了. 然后你可以開心的把<<鐵布衫>>扔了, 然后宣告遺囑作廢.

          OK, 以上過程, 就是過濾器和監(jiān)聽器的真實(shí)案例.

          那么炸碉堡這個(gè)任務(wù), 就相當(dāng)于要調(diào)用 JSP 或者 Servlet 來獲得執(zhí)行結(jié)果(炸碉堡 D ).? 在執(zhí)行之前你需要做一些準(zhǔn)備工作, 相當(dāng)于要寫一個(gè)
          監(jiān)聽器 com.allanlxf.ums.web.ServiceListener
          在里面你可以做一些事情例如初始化資源, 例如上文的苦練<<鐵布衫>>, 立遺囑, 這個(gè)相當(dāng)于代碼中的
          public void contextInitialized(ServletContextEvent sce) 這樣一個(gè)初始化事件.
          那么在整個(gè)任務(wù)完成之后, 這些事情你就要考慮應(yīng)該作廢了, 所以需要
          public void contextDestroyed(ServletContextEvent sce) 這樣一個(gè)銷毀事件, 例如把<<鐵布衫>>扔了, 然后宣告遺囑作廢, 也就是收回資源.

          那么過濾器在哪里呢? 它位于任務(wù)的 A B C 點(diǎn). 注意是雙向路程都會經(jīng)過的. 也就是請求和響應(yīng)都會經(jīng)過. 但是過濾器也會檢查不同的情況, 例如 A 點(diǎn)實(shí)際上有兩個(gè)過濾功能: 查炸藥包和收買路錢. 這就相當(dāng)于配置了:
          ??
          ?????? sessionFilter
          ???? * *.do
          ???? * REQUEST
          ???? * FORWARD
          ??
          ?
          兩個(gè)過濾功能都要檢查. 如果成功了怎么辦呢? 會繼續(xù)讓你走下一個(gè)路口, 注意不是讓你直接成功. 也就是代碼:
          ??????? if(session.getAttribute("user") != null || path.equals("/login"))//若用戶已經(jīng)登錄并且當(dāng)前路徑仍然停留在登錄頁面????? {???????????
          ?????????? chain.doFilter(request, response);//繼續(xù)走下面的過濾器或者任務(wù)(不保證最終任務(wù), 因?yàn)橄聜€(gè)過濾器也可能讓你回來)
          ?????????? 只有當(dāng)走到 C 點(diǎn)的時(shí)候, 下一步才是執(zhí)行了最終的任務(wù): 執(zhí)行JSP或者Servlet.
          ?????? }
          反過來怎么辦? 把你扭送上警車, 強(qiáng)行返回! 這樣你連路口 B C 和最終任務(wù)都無法訪問了. 也就是不會讓你訪問下一個(gè)過濾器和執(zhí)行最終的 JSP 或者 Serlvet, 可以選擇直接返回, 或者放警車上帶回去.
          ?????? {
          ?????????? return;// 直接返回
          ?????????? 或者 response.sendRedirect(request.getContextPath() + "/login.jsp");//則扭送上警車, 強(qiáng)行返回到警察局
          ?????? }

          那么在 E 點(diǎn)發(fā)生了什么? 也就是你可能替換掉了原來的 response 對象,? 也就是換車. 這意味著你可以在過濾器里私下修改請求和響應(yīng)對象.

          雖然已經(jīng)不那么抽象了, 但是要理解可能還是需要耐心體會的.

          =====================================================================
          注: 原始問題

          ??? 1.請看下面一段代碼和其注釋:
          import javax.servlet.*;

          import javax.servlet.http.*;

          import java.io.*;

          public class SessionFilter extends HttpFilter

          {

          ?? public void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)

          ?????????????? throws ServletException, IOException

          ?? {

          ?????? String path = request.getServletPath();//取得該servlet的路徑名稱

          ?????? path = path.substring(0, path.indexOf("."));?? //獲得路徑中.之前的部分

          ?????? HttpSession session = request.getSession();//從請求中取得session為得是從session中讀取用戶是否登錄的標(biāo)志值

          ?????? if(session.getAttribute("user") != null || path.equals("/login"))//若用戶已經(jīng)登錄并且當(dāng)前路徑仍然停留在登錄頁面

          ?????? {???????????

          ???????? *? chain.doFilter(request, response);//則將當(dāng)前濾鏡加入到濾鏡鏈條當(dāng)中

          ?????? }else//若用戶尚未成功登錄

          ?????? {

          ?????????? response.sendRedirect(request.getContextPath() + "/login.jsp");//則使用請求重定向轉(zhuǎn)到登錄頁面

          ?????? }???????

          ?? }

          }

          /*

          * 該Filter濾鏡類所過濾的是用戶在瀏覽器中輸入的

          * 當(dāng)前web application的訪問路徑,通過判斷用戶是

          * 否成功登錄而決定是否對訪問路徑加以限止

          * 在該web application的web.xml配置文件中為

          * 該filte濾鏡做了相應(yīng)配置

          */

          請問: 上面代碼FilterChain對象盛裝的是Filter對象, 可它是怎么工作的啊?
          加*號的語句是何用意啊,不是過濾路徑嗎, 為什么要將請求與響應(yīng)加入呢?

          2.請看下面一段代碼:

          import javax.servlet.*;

          import javax.servlet.http.*;

          import java.io.*;

          public abstract class HttpFilter implements Filter

          {

          ?? private FilterConfig config;

          ?? public void init(FilterConfig config) throws ServletException

          ?? {

          ?????? this.config = config;

          ?????? init();

          ?? }

          ?? public void init() throws ServletException

          ?? {

          ?? }

          ?? public String getInitParameter(String name)

          ?? {

          ?????? return config.getInitParameter(name);

          ?? }

          ?? public ServletContext getServletContext()

          ?? {

          ?????? return config.getServletContext();

          ?? }

          ?? public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

          ?????????????? throws ServletException, IOException

          ?? {

          ?????? doFilter((HttpServletRequest)request, (HttpServletResponse)response, chain);

          ?? }

          ?? public abstract void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain)

          ?????????????? throws ServletException, IOException;

          ?? public void destroy()

          ?? {

          ?? }

          }

          請問: 該類就這樣寫了一下,沒有包含任何行為,它如何完成過濾工作啊?

          3.請看下面代碼:
          package com.allanlxf.ums.web;

          import javax.servlet.*;

          //import javax.servlet.http.*;

          import com.allanlxf.ums.service.SystemService;

          import com.allanlxf.ums.service.StudentService;

          public class ServiceListener implements ServletContextListener

          {

          ?? public void contextInitialized(ServletContextEvent sce)

          ?? {

          ?????? ServletContext application = sce.getServletContext();

          ?????? StudentService service = new StudentService();

          ?????? application.setAttribute("studentService", service);

          ?????? SystemService systemService = new SystemService();

          ?????? application.setAttribute("systemService", systemService);

          ?? }

          ?? public void contextDestroyed(ServletContextEvent sce)

          ?? {

          ?? }

          }

          /*

          *本類是該web application的監(jiān)聽器類,在該類中,

          *將兩個(gè)無為本系統(tǒng)提供服務(wù)的兩個(gè)對象寫入到了

          *application隱含對象中(這樣保證在該系統(tǒng)的任何

          *地方都能夠取得這兩個(gè)服務(wù)類對象的引用)

          *在本系統(tǒng)的web.xml文件中對該監(jiān)聽器做了配置

          */

          請問: 為什么要將服務(wù)類對象寫入到程序上下文中呢,直接創(chuàng)建不也一樣嗎?
          ???? 監(jiān)聽器只有這樣的功能嗎,是否還有其它功能呢?

          3.請看下面的配置文件內(nèi)容:

          ??
          ?????? sessionFilter
          ?????? com.allanlxf.ums.web.SessionFilter
          ??
          ???
          ??
          ?????? sessionFilter
          ???? * *.do
          ???? * REQUEST
          ???? * FORWARD
          ??
          ???????
          ??
          ?????? com.allanlxf.ums.web.ServiceListener
          ???

          請問: 加*號的三項(xiàng)是什么意思?

          當(dāng)初老師講的時(shí)候,許多基本的原則原理尚不清楚,這些根本沒有聽明白,當(dāng)然,老師也未細(xì)講,只說會用即可, 可是若不能明白其本質(zhì),用也只能用這一點(diǎn)兒, 怎么成呢, 希望您能夠比較詳悉的講一下. thank you very much!



          BeanSoft 2007-11-09 15:05 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/09/159374.html

          posted @ 2007-11-30 20:57 J2EE UP?。眨?閱讀(273) | 評論 (0)編輯 收藏

          這是 MyEclipse 幫助文檔中的內(nèi)容的翻譯, 點(diǎn)擊菜單 Help -> Contents 可以看到 MyEclipse 的全部英文幫助文檔.

          在線閱讀(完整內(nèi)容含 Flash 動畫): http://beansoft.java-cn.org/myeclipse_doc_cn/hibernateintroduction/

          下載: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse中文文檔/MyEclipseHibernate入門視頻中文版.zip 4.07 MB 

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具,  否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          MyEclipse Logo

          MyEclipse Hibernate 入門教程中文版(含視頻)
          翻譯: 劉長炯 BeanSoft@126.com
          Blog: http://www.aygfsteel.com/beansoft/
          日期: 2007-11-13
          聲明: 中文文字版權(quán)歸 劉長炯 所有, 原文及相關(guān)的圖片等資源的版權(quán)歸原作者 Genuitec L.L.C 公司所有.

          目錄

          1. 簡介
          2. 建議的聽眾
          3. 系統(tǒng)需求
          4. Hibernate 介紹
          5. 開始工作
          6. 反向工程
          7. 編寫和運(yùn)行 Hibernate 代碼
          8. 小結(jié)
          9. 常見問題
          10. 資源
          11. 反饋
           
           

          本人原創(chuàng) MyEclipse 6 幫助文檔中文版集中下載

          http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/MyEclipse中文文檔

           
           
           
           
           
           
           
           


          BeanSoft 2007-11-13 18:17 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/13/160288.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(370) | 評論 (0)編輯 收藏

          這是 MyEclipse 幫助文檔中的內(nèi)容的翻譯, 點(diǎn)擊菜單 Help -> Contents 可以看到 MyEclipse 的全部英文幫助文檔.

           

          下載: http://beansoft.java-cn.org/myeclipse_doc_cn/MyEclipse_Struts_1.x_Tutorial_zh_CN.pdf  597 KB

           

          目錄

          1. 前言
          2. 簡介
          3. 系統(tǒng)需求
          4. 設(shè)置新項(xiàng)目和目錄結(jié)構(gòu)
          5. 開始 Struts 項(xiàng)目
            1. Struts 項(xiàng)目的組成部分
            2. 構(gòu)造我們的應(yīng)用
          6. 運(yùn)行示例代碼
          7. 小結(jié)
          8. 用戶反饋

           

          頁面顯示效果:

          MyEclipse Struts 1.x Tutorial



          BeanSoft 2007-11-16 00:45 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/16/160876.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(430) | 評論 (0)編輯 收藏

          MyEclipse 6 實(shí)戰(zhàn)開發(fā)講解視頻入門 6 Web 入門開發(fā) - JSP/HTML/JDBC 登錄

          本視頻介紹了開發(fā)中最難而又最容易被輕視的部分: JSP, 部分是因?yàn)楹芏嗳诉^分夸大了 Web 層框架例如 Struts 1 or 2, Spring MVC, JSF, Wichet 等等的作用(事實(shí)上對于編寫復(fù)雜的頁面, 這些框架都沒多大幫助). JSP 是表現(xiàn)層, 實(shí)際上不是那么容易做好的, 因?yàn)樗C合了 Web 層的幾乎所有技術(shù), 包括但不限于 DHTML, JavaScript, CSS, AJAX, 緩存等.

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具,  否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          代碼: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/6_JSPHelloWorld.zip 445KB

          視頻(第一部分):  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_6_1.exe 22分05秒 8.20MB

          視頻(第二部分):  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/MyEclipse6_6_2.exe 40分26秒 10.5 MB

          1. 新建 Web 項(xiàng)目
          2. 編寫首頁,登錄提交表單頁面并加入客戶端表單驗(yàn)證 JavaScript, 超鏈接CSS
          3. 編寫后臺 Java 類 - 業(yè)務(wù)層(Biz Layer)和數(shù)據(jù)層(DAO)
          4. 編寫 JSP, 加入必要的驗(yàn)證并調(diào)用后臺業(yè)務(wù)類
          5. 測試運(yùn)行, 驗(yàn)證登錄和退出
          6. SQL 注入: 用戶輸入名字為 user' or '1' = '1 拼出的攻擊SQL為:
              select * from myuser where user = 'user' or '1' = '1' and password = 'abc'

          視頻截圖:

          image

          image



          BeanSoft 2007-11-19 09:24 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/19/161502.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(599) | 評論 (0)編輯 收藏

          因?yàn)楸卷?xiàng)目已經(jīng)停止更新, 僅提供代碼供參考, 本人保持版權(quán), 不提供任何擔(dān)保和技術(shù)支持.

          附帶用戶貢獻(xiàn)排行, 頁面點(diǎn)擊率等多個(gè)插件.


          Eclipse 項(xiàng)目文件(兩個(gè)都在才能編譯運(yùn)行)
          JSPWiki 項(xiàng)目改進(jìn)版 http://beansoft.java-cn.org/download/JSPWiki2.4.71_project_src.7z  5.91 MB
          插件及中文模版增強(qiáng)文件 http://beansoft.java-cn.org/download/JSPWikiPlugins_project_src.7z  3.11 MB
          下載, 導(dǎo)入, 編譯及數(shù)據(jù)庫配置, 運(yùn)行視頻(無聲)
          http://beansoft.java-cn.org/download/jspwiki_beansoft.exe 3.0 MB

          環(huán)境: JDK 1.5, Eclipse 3.3, Tomcat 6.0.14, Mysql 5.0, Windows XP
          圖解發(fā)布過程
          真實(shí)操作以視頻為準(zhǔn).

          JSPWiki



          BeanSoft 2007-11-20 12:49 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/20/161836.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(220) | 評論 (0)編輯 收藏

          今天首頁看到一篇文章, 說了國人詆毀嫦娥一號的事. 也沒什么好說的, 怨天尤人是不對. 然后在上面點(diǎn), 就看到了另外的一篇新聞:

          奴隸般勞動,日本工會幫中國女工維權(quán) http://news.qq.com/a/20071122/001583.htm 

          也許大家的忘性很大, 已經(jīng)忘記了黑窯廠等等, 忘了北京方圓百里就是沒有任何現(xiàn)代氣息的城鄉(xiāng)結(jié)合部, 忘了苦苦掙扎在老家的農(nóng)村的鄉(xiāng)親們, 忘了在溫州, 深圳打工的人.  當(dāng)然, 我也是打工一員, 吃飽是沒問題, 可是也就僅此而已.  聰明人很多, 但是多數(shù)人卻很窮, 是大家不努力工作嘛? 不是. 那是什么呢?

           

          這篇文章中日本工會的組織者說的一段話發(fā)人深思:

          “她們都是善良而誠實(shí)的勞動者,為了家族的責(zé)任,來到日本,決心努力勞動3年,卻在這里遭受了奴隸般的勞動生活,這是不公正的。構(gòu)成社會的大部分成員都是普通勞動者,她們的權(quán)利和生活得不到保障的話,還談什么‘發(fā)展’?財(cái)富集中在一小部分人身上的時(shí)候,談‘發(fā)展’就是一種欺騙。

          2007年11月4日,日本廣島東部福山市的工會領(lǐng)袖武藤貢回復(fù)了這樣一封郵件給記者。半年多前,在他的幫助下,3名中國女工李紅慧、沈曉梅、繆秀琴與她們的日本雇主展開了長達(dá)一個(gè)多月的激烈斗爭,并成功拿回了自己應(yīng)得的400多萬日元,回到她們位于蘇北農(nóng)村的故鄉(xiāng)。.....

           

          再摘一段人民網(wǎng)貼的內(nèi)容: 書摘:1949年以后的蔣經(jīng)國與臺灣 http://www.people.com.cn/GB/wenhua/1086/2078201.html

          最近十年在臺灣任何一個(gè)有關(guān)"誰對臺灣貢獻(xiàn)最大"的民意調(diào)查里,蔣經(jīng)國始終穩(wěn)居首位。1960年代,臺灣經(jīng)濟(jì)穩(wěn)定累積成長,在有力的政治與社會條件中,技術(shù)官僚得以發(fā)揮最大的才干,加上國際資本和技術(shù)幾次轉(zhuǎn)移,臺灣成為有效率的接納者。到了1960年代末期,赤貧人口大幅降低,許多臺灣大學(xué)生畢業(yè)后就往美國跑,人民的生活已達(dá)小康的水平,唱歌、跳舞、打保齡球的娛樂活動如雨后春筍。如果說美國人努力影響蔣經(jīng)國的看法,他們顯然沒有白費(fèi)功夫,蔣經(jīng)國幾次訪問美國,眼見美國生產(chǎn)力的強(qiáng)大,印象十分深刻。美國式的管理不是從上而下的教育和指令,而是法治文化中的契約精神,在這種遵守公共約定的自覺中,人人追求創(chuàng)新,力爭上游。這種現(xiàn)象對于一向習(xí)慣于蘇聯(lián)式思辨的蔣經(jīng)國而言,確實(shí)耳目一新。此外,最具說服力的仍然是發(fā)展的事實(shí)本身,在美國受教育的知識菁英開始發(fā)揮影響力,他們根據(jù)所學(xué)結(jié)合臺灣的情形所制定的發(fā)展方案,確實(shí)行之有效,使得人民生活大幅改善,社會財(cái)富累積迅速。這樣的成果使得任何人都不得不重視美式管理背后的思維邏輯,一開始是經(jīng)濟(jì)的,接著便是政治的。 

           

          全中國的人民, 向60年代的臺灣邁進(jìn)吧! 我最希望的就是家鄉(xiāng)能早日出現(xiàn) IT 業(yè), 這樣我就不用背井離鄉(xiāng)了, 呵呵.



          BeanSoft 2007-11-22 23:21 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/22/162489.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(221) | 評論 (0)編輯 收藏

          這是 MyEclipse 幫助文檔中的內(nèi)容的翻譯, 點(diǎn)擊菜單 Help -> Contents 可以看到 MyEclipse 的全部英文幫助文檔.

          在線閱讀(完整內(nèi)容含 Flash 動畫): http://beansoft.java-cn.org/myeclipse_doc_cn/ajaxtutorial/

          下載: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse中文文檔/ajaxtutorial.zip 1.53 MB 

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具,  否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          翻譯: 劉長炯 BeanSoft@126.com
          Blog: http://www.aygfsteel.com/beansoft/
          日期: 2007-11-22
          聲明: 中文文字版權(quán)歸 劉長炯 所有, 原文及相關(guān)的圖片等資源的版權(quán)歸原作者 Genuitec L.L.C 公司所有.

          目錄

          1. 簡介
          2. 建議的聽眾
          3. 系統(tǒng)需求
          4. AJAX Debugging
          5. 小結(jié)
          6. 常見問題 FAQ
          7. 資源
          8. 反饋

           

          本人原創(chuàng) MyEclipse 6 幫助文檔中文版集中下載

          http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/MyEclipse中文文檔



          BeanSoft 2007-11-22 23:52 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/22/162498.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(440) | 評論 (0)編輯 收藏

          近日看到各大中文網(wǎng)站紛紛嗆聲說 Spring 2.5 發(fā)布, 典型消息如下:

           

          來自 Springframework 官方的消息,Spring 2.5 正式發(fā)布了。

          http://www.springframework.org/node/561

          該版本的主要特征包括:
          對Spring2.0的平滑升級 —— Spring2.5被設(shè)計(jì)成為對Spring2.0的平滑升級,現(xiàn)存的代碼和配置文件不需要做任何更改。
          更多XML命名空間配置 —— 新的命名空間包括和
          完全支持Java 6和Java EE 5 —— Spring2.5支持Java 6和Java EE 5的所有新特性——同時(shí)也提供了對Java 1.4.2和J2EE1.3的支持。
          完全支持基于注解的配置 —— 現(xiàn)在所有的配置都可以使用注解來實(shí)現(xiàn),并且也支持 JSR250 注解。
          基于注解的MVC controller —— Web Controller現(xiàn)在可以用如@RequestMapping這樣的注解來創(chuàng)建,無需實(shí)現(xiàn)任何接口。
          對AspectJ的支持 —— 在一些環(huán)境下,增加了對AspectJ的裝載時(shí)編織支持,同時(shí)提供了一個(gè)新的bean切入點(diǎn)。
          對OSGi的支持 —— Spring2.5框架的所有jar包都是兼容于OSGi的,以此來簡化在OSGi環(huán)境下對其的使用。
          測試框架的巨大改變 —— 現(xiàn)在新的基于注解的測試框架已經(jīng)支持TestNG和JUnit4
          性能的改良 —— Spring2.5各方面的性能指標(biāo)都有了顯著的改善。

          沖著 完全支持基于注解的配置 這句話, 我興沖沖的下載了 Spring 2.5 以及其文檔, 企圖體驗(yàn)一下 EJB 3 式的簡單快速的基于標(biāo)注的開發(fā), 然而, 遺憾的是官方文檔和消息的來源頁面: http://www.springframework.org/node/561, 沒有任何文字說到自己完全支持基于注解的配置. 我打開英文的 Reference, 仔細(xì)閱讀其中關(guān)于標(biāo)注的部分, 然而遺憾的發(fā)現(xiàn)只是部分實(shí)現(xiàn)了標(biāo)注, 請參考 http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-annotation-config , 簡單說就是實(shí)現(xiàn)了對 Autowired 和 Transaction, AOP 的標(biāo)注支持, 而不是所有 bean 定義, 更不是說從此你可以不用寫 Bean 配置的 XML 文件了. 下午仔細(xì)試了半天, 企圖寫出標(biāo)注配置的例子來, 也沒有成功實(shí)現(xiàn)不寫 bean 定義 XML 文件就能初始化 Bean 并注入所有屬性的功能(本來想做的例子是注入一個(gè) message 的 String 屬性), 去閱讀下載的示例代碼(example目錄下的文件), 也沒有這樣的例子. 最后又發(fā)現(xiàn)了原來支持標(biāo)注的版本在這里:

          http://www.jroller.com/habuma/entry/guice_vs_spring_javaconfig_a

          它的名字叫 Spring JavaConfig.

          最后我們再來看看原始頁面是如何介紹自己的標(biāo)注的(http://www.springframework.org/node/561):

          Spring 2.5 enhances Spring 2.0 with many exciting new features, including:
          Full Java 6 and Java EE 5 support (JDBC 4.0, JTA 1.1, JavaMail 1.4, JAX-WS 2.0)
          Full-featured annotation-driven dependency injection, including support for 'qualifiers' (注意這里只是說完整支持標(biāo)注驅(qū)動的依賴注入, 而不是 complete supported annotation of all features)
          Support for auto-detecting application components in the classpath and auto-configuring them as Spring managed objects
          A new bean name pointcut element in AspectJ pointcut expressions
          Built-in support for AspectJ load-time weaving based on the LoadTimeWeaver abstraction
          New XML configuration namespaces "context" and "jms", for maximum convenience
          A completely revised integration test framework, with first-class support for JUnit 4 and TestNG
          A new annotation-based controller model for Spring MVC supporting Servlet and Portlet environments
          Extended SimpleJdbcTemplate functionality, including support for named SQL parameters
          Officially certified WebSphere support
          The packaging of Spring Framework jars as OSGi-compliant bundles out of the box
          The ability to deploy a Spring ApplicationContext as a JCA RAR file, for headless application modules
          JCA 1.5 message endpoint management, for Spring-managed JMS and CCI message listeners

          小小的興奮了一把, 最后又不得不歸于失望, 繼續(xù)研究 XML 文件的編寫格式吧. 希望下次看到類似消息的時(shí)候能翻譯的準(zhǔn)確一些, 免得誤導(dǎo)偶等開源軟件"消費(fèi)者".

           

          當(dāng)然了, 也歡迎 Spring 2.5 高人們向偶分享完全使用標(biāo)注的例子代碼, 那樣的話我真是太感謝了!



          BeanSoft 2007-11-23 18:14 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/23/162700.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(366) | 評論 (0)編輯 收藏

          MyEclipse 6 實(shí)戰(zhàn)開發(fā)講解視頻入門 7 Struts 入門開發(fā) – 簡單登錄

          本視頻根據(jù)自己翻譯的 MyEclipse 官方教材制作了對應(yīng)的視頻, 視頻具體內(nèi)容請參考 翻譯: MyEclipse Struts 1.x 教程(PDF格式).

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          代碼: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/7_StrutsLoginDemo.zip  20.5 KB

          視頻:  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/myeclipse6_7.exe  19分45秒 8.0 MB

          1. 前言
          2. 簡介
          3. 系統(tǒng)需求
          4. 設(shè)置新項(xiàng)目和目錄結(jié)構(gòu)
          5. 開始 Struts 項(xiàng)目
            1. Struts 項(xiàng)目的組成部分
            2. 構(gòu)造我們的應(yīng)用
          6. 運(yùn)行示例代碼
          7. 小結(jié)
          8. 用戶反饋

          視頻截圖:
          myeclipse6_7



          BeanSoft 2007-11-26 23:42 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/26/163354.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(205) | 評論 (0)編輯 收藏

          這是 MyEclipse 幫助文檔中的內(nèi)容的翻譯, 點(diǎn)擊菜單 Help -> Contents 可以看到 MyEclipse 的全部英文幫助文檔.

          在線閱讀(完整內(nèi)容含 Flash 動畫): http://beansoft.java-cn.org/myeclipse_doc_cn/springintroduction/

          下載: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse中文文檔/MyEclipse Spring 快速入門.zip 2.31MB 

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具,  否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          MyEclipse Spring 入門教程
          翻譯: 劉長炯 BeanSoft@126.com
          Blog: http://www.aygfsteel.com/beansoft/
          日期: 2007-11-26
          聲明: 中文文字版權(quán)歸 劉長炯 所有, 原文及相關(guān)的圖片等資源的版權(quán)歸原作者 Genuitec L.L.C 公司所有.

          目錄

          1. 簡介
          2. 建議的聽眾
          3. 系統(tǒng)需求
          4. Spring 介紹
          5. 開始工作
          6. 可視化項(xiàng)目
          7. 理解和運(yùn)行代碼
          8. 修改項(xiàng)目
          9. 小結(jié)
          10. FAQ
          11. 資源
          12. 反饋

           

           

          本人原創(chuàng) MyEclipse 6 幫助文檔中文版集中下載

          http://cid-519b3f7aa2172030.skydrive.live.com/browse.aspx/Public/MyEclipse中文文檔



          BeanSoft 2007-11-27 12:06 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/27/163416.html

          posted @ 2007-11-30 20:57 J2EE UP?。眨?閱讀(692) | 評論 (0)編輯 收藏

          MyEclipse 6 實(shí)戰(zhàn)開發(fā)講解視頻入門 8 XFire Web Service 入門開發(fā)

          本視頻根據(jù) MyEclipse 幫助文檔制作的對應(yīng)的視頻.

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          代碼:http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/8_WebService.zip  29 KB

          視頻:  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/myeclipse6_8.exe   19分16秒 7.4 MB

          1. 簡介 MyEclipse on XFire 1.2
          2. 創(chuàng)建 Web Service Project
          3. 開發(fā)簡單的 Web Service
          4. 發(fā)布運(yùn)行項(xiàng)目, 顯示 WSDL
          5. 用 Web Service Explorer 測試
          6. 編寫基于 XFire  API 的客戶端并運(yùn)行測試
          7. 新建單獨(dú)的 Web Service 客戶端項(xiàng)目
          8. 根據(jù) WSDL 和 JAXB 生成客戶端代碼
          9. 調(diào)用客戶端代碼并運(yùn)行測試代碼

          視頻截圖:

           

          image



          BeanSoft 2007-11-29 09:29 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/29/163907.html

          posted @ 2007-11-30 20:57 J2EE UP?。眨?閱讀(866) | 評論 (0)編輯 收藏

          本視頻根據(jù)自己翻譯的 MyEclipse 官方教材制作了對應(yīng)的視頻, 視頻具體內(nèi)容請參考 MyEclipse JSF 快速入門中文版.

          友情提示: 下載微軟網(wǎng)盤文件時(shí)關(guān)閉下載工具否則你將得到錯(cuò)誤的文件, 雙擊 EXE 會出來 DOS 窗口. 正確操作是點(diǎn)擊文件名后能看到顯示下載鏈接和文件大小等信息.

          代碼: http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/9_JSFLoginDemo.zip  9 KB

          視頻:  http://cid-519b3f7aa2172030.skydrive.live.com/self.aspx/Public/MyEclipse6Videos/myeclipse6_9.exe  15分31秒 6.6 MB

          內(nèi)容包括:

          1.新建 Web Project

          2. 添加 JSF 功能

          3. 創(chuàng)建 Message Bundle

          4. 創(chuàng)建 Managed Bean

          5. 創(chuàng)建 userLogin.jsp

          6. 創(chuàng)建 userLoginSuccess.jsp

          7. 創(chuàng)建 導(dǎo)航規(guī)則

          8. 發(fā)布并測試

          9. 加入中文消息包

          10. 測試

           

          視頻截圖:

          image



          BeanSoft 2007-11-30 09:19 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/30/164166.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(275) | 評論 (0)編輯 收藏

           

          研究了很久新出的 Spring 2.5, 總算大致明白了如何用標(biāo)注定義 Bean, 但是如何定義和注入類型為 java.lang.String 的 bean 仍然未解決, 希望得到高人幫助.

          總的來看 Java EE 5 的標(biāo)注開發(fā)方式開來是得到了大家的認(rèn)可了.

          @Service 相當(dāng)于定義 bean, 自動根據(jù) bean 的類名生成一個(gè)首字母小寫的 bean

          @Autowired 則是自動注入依賴的類, 它會在類路徑中找成員對應(yīng)的類/接口的實(shí)現(xiàn)類, 如果找到多個(gè), 需要用 @Qualifier("chineseMan") 來指定對應(yīng)的 bean 的 ID.

          一定程度上大大簡化了代碼的編寫, 例如一對一的 bean 映射現(xiàn)在完全不需要寫任何額外的 bean 定義了.

          下面是代碼的運(yùn)行結(jié)果:

          man.sayHello()=抽你丫的
          SimpleMan said: Hi
          org.example.EnglishMan@12bcd4b said: Fuck you!

           

          代碼:

          beans.xml

          <?xml version="1.0" encoding="UTF-8"?>
          <beans xmlns="http://www.springframework.org/schema/beans"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xmlns:context="http://www.springframework.org/schema/context"
                 xsi:schemaLocation="http://www.springframework.org/schema/beans 
                     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
                     http://www.springframework.org/schema/context
                     http://www.springframework.org/schema/context/spring-context-2.5.xsd">
               <context:annotation-config/>
               <context:component-scan base-package="org.example"/>
               
          </beans>

          測試類:

          import org.example.IMan;
          import org.example.SimpleMan;
          import org.springframework.context.ApplicationContext;
          import org.springframework.context.support.ClassPathXmlApplicationContext;

          public class SpringTest {
              public static void main(String[] args) {
                  ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
                  SimpleMan dao = (SimpleMan) ctx.getBean("simpleMan");
                  System.out.println(dao.hello());
                  IMan man = (IMan) ctx.getBean("usMan");
                  System.out.println(man.sayHello());
              }
          }

          自動探測和注入bean的類:

          package org.example;

          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.beans.factory.annotation.Qualifier;
          import org.springframework.stereotype.Service;

          @Service
          public class SimpleMan {
              // 自動注入名稱為 Man 的 Bean
              @Autowired(required = false)
              @Qualifier("chineseMan")
              //@Qualifier("usMan")
              private IMan man;   

              /**
               * @return the man
               */
              public IMan getMan() {
                  return man;
              }

              /**
               * @param man the man to set
               */
              public void setMan(IMan man) {
                  this.man = man;
              }

              public String hello() {
                  System.out.println("man.sayHello()=" + man.sayHello());
                  return "SimpleMan said: Hi";
              }
          }

           

          一個(gè)接口和兩個(gè)實(shí)現(xiàn)類:

          package org.example;

          /**
          * 抽象的人接口.
          * @author BeanSoft
          * @version 1.0
          */
          public interface IMan {
              /**
               * 打招呼的抽象定義.
               * @return 招呼的內(nèi)容字符串
               */
              public String sayHello();
          }

           

          package org.example;

          import org.springframework.stereotype.Service;

          /**
          * 中國人的實(shí)現(xiàn).
          * @author BeanSoft
          */
          @Service
          public class ChineseMan implements IMan {

              public String sayHello() {
                  return "抽你丫的";
              }

          }

           

          package org.example;

          import org.springframework.stereotype.Service;

          /**
          * @author BeanSoft
          * 美國大兵
          */
          @Service("usMan")
          // 這里定義了一個(gè) id 為 usMan 的 Bean, 標(biāo)注里面的屬性是 bean 的 id
          public class EnglishMan implements IMan {

              public String sayHello() {
                  return this + " said: Fuck you!";
              }

          }

          BeanSoft 2007-11-30 12:53 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/11/30/164230.html

          posted @ 2007-11-30 20:57 J2EE?。眨小。眨?閱讀(279) | 評論 (0)編輯 收藏

          好好努力吧,技術(shù)上全面突破

          posted @ 2007-10-24 22:41 J2EE?。眨小。眨?閱讀(131) | 評論 (0)編輯 收藏

               摘要:   閱讀全文

          BeanSoft 2007-10-24 14:21 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/24/155586.html

          posted @ 2007-10-24 14:21 J2EE UP UP 閱讀(164) | 評論 (0)編輯 收藏

          這個(gè)分頁代碼基于 JDBC 2.0 的滾動游標(biāo)的機(jī)制, 核心觀念就是利用 ResultSet 類里面的 boolean absolute( int row ) throws SQLException 方法進(jìn)行數(shù)據(jù)的跳轉(zhuǎn).

          經(jīng)過測試(數(shù)據(jù)小于1萬條, SQL Server 2000), 這個(gè)方法比用復(fù)合 SQL 語句查詢分頁的方案要快很多.

          詳細(xì) JavaDoc 如下:

          Moves the cursor to the given row number in this ResultSet object.

          If the row number is positive, the cursor moves to the given row number with respect to the beginning of the result set. The first row is row 1, the second is row 2, and so on.

          If the given row number is negative, the cursor moves to an absolute row position with respect to the end of the result set. For example, calling the method absolute(-1) positions the cursor on the last row; calling the method absolute(-2) moves the cursor to the next-to-last row, and so on.

          An attempt to position the cursor beyond the first/last row in the result set leaves the cursor before the first row or after the last row.

          Note: Calling absolute(1) is the same as calling first(). Calling absolute(-1) is the same as calling last().

          Parameters:

          row the number of the row to which the cursor should move. A positive number indicates the row number counting from the beginning of the result set; a negative number indicates the row number counting from the end of the result set

          Returns:

          true if the cursor is on the result set; false otherwise

          Throws:

          SQLException if a database access error occurs, or the result set type is TYPE_FORWARD_ONLY

          @since

          1.2

          /*
          
          * @(#)Pager.java 1.00 2004-8-12
          
          *
          
          * Copyright 2004 . All rights reserved.
          
          * PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
          
          */
          
          import java.sql.Connection;
          
          import java.sql.ResultSet;
          
          import java.sql.Statement;
          
          import java.util.Vector;
          
          /**
          
          * Pager, 基于 JDBC 2.0 滾動機(jī)制的分頁程序, 在 MySQL, SQLServer, Access, Oracle 下測試通過.
          
          * @author 劉長炯
          
          * @version 1.0 2004-8-12
          
          */
          
          public class Pager {
          
          /** Used database connection */
          
          Connection conn = null;
          
          public Pager() {
          
          }
          
          /**
          
          * 分頁功能, 返回當(dāng)頁的數(shù)據(jù)(JDBC 2.0 實(shí)現(xiàn)).
          
          * 
          
          * @param currentPage
          
          * 當(dāng)前頁面數(shù)(取值范圍: 從 1 開始有效, 0 自動改為 1)
          
          * @param pageCount
          
          * 每頁顯示記錄數(shù)
          
          * 
          
          * @return a Vector - 數(shù)據(jù)列表
          
          */
          
          public Vector pageData(int currentPage, int pageCount) {
          
          Vector results = new Vector();
          
          String tableName = "table_name";// 要處理的表格名
          
          ResultSet rs = null;
          
          String sql = "SELECT * FROM " + tableName;
          
          Statement stmt = null;
          
          try {
          
          // TODO: open connection
          
          // 生成可滾動的結(jié)果集表達(dá)式
          
          stmt = conn.createStatement(ResultSet.
          
          TYPE_SCROLL_SENSITIVE,
          
          ResultSet.CONCUR_READ_ONLY);
          
          rs = stmt.executeQuery(sql);
          
          int count = recordCount(); // 總記錄數(shù)
          
          int totalPage = (int) Math.ceil(1.0 * count / pageCount); // 總頁面數(shù)
          
          if (currentPage <= 0) {
          
          currentPage = 1;
          
          }
          
          // 超出頁碼范圍, 不返回?cái)?shù)據(jù)
          
          if (currentPage > totalPage) {
          
          currentPage = totalPage;
          
          return results;
          
          }
          
          if ((currentPage - 1) * pageCount > 0) {
          
          // 移動結(jié)果集數(shù)據(jù)到當(dāng)前頁
          
          rs.absolute((currentPage - 1) * pageCount);
          
          }
          
          // rs.absolute(0); 在 ODBC 下會導(dǎo)致如下異常:java.sql.SQLException: Cursor
          
          // position (0) is invalid
          
          int i = 0; // Readed pages
          
          while (rs.next() && i < pageCount) {
          
          i++;
          
          // TODO: Read each row and process to value object
          
          ValueObject bean = new ValueObject();
          
          // TODO: Read value to value object
          
          result.add(bean);
          
          }
          
          } catch (Exception exception) {
          
          System.out.println("Occur a error in " + getClass()
          
          + ".pageData() : " + exception.getMessage());
          
          // exception.printStackTrace();
          
          } finally {
          
          closeJDBCResource(stmt);
          
          closeJDBCResource(rs);
          
          closeJDBCResource(conn);
          
          }
          
          return results;
          
          }
          
          /**
          
          * 返回當(dāng)前數(shù)據(jù)庫中記錄的總數(shù).
          
          * 
          
          * @return int 記錄總數(shù)
          
          */
          
          public int recordCount() {
          
          int allCount = -1;
          
          String tableName = "table_name";// 要處理的表格名
          
          String sql = "SELECT COUNT(*) FROM " + tableName;
          
          ResultSet rs = null;
          
          Statement stmt = null;
          
          try {
          
          // TODO: open connection
          
          stmt = conn.createStatement();
          
          rs = stmt.executeQuery(sql);
          
          if (rs.next()) {
          
          allCount = rs.getInt(1);
          
          }
          
          } catch (Exception exception) {
          
          System.out
          
          .println("Occur a error in " + getClass()
          
          + ".recordCount() : " + exception.getMessage());
          
          } finally {
          
          closeJDBCResource(stmt);
          
          closeJDBCResource(rs);
          
          closeJDBCResource(conn);
          
          }
          
          return allCount;
          
          }
          
          /**
          
          * Close a jdbc resource, such as ResultSet, Statement, Connection.... All
          
          * these objects must have a method signature is void close().
          
          * 
          
          * @param resource -
          
          * jdbc resouce to close
          
          */
          
          public static void closeJDBCResource(Object resource) {
          
          try {
          
          Class clazz = resource.getClass();
          
          java.lang.reflect.Method method = clazz.getMethod("close", null);
          
          method.invoke(resource, null);
          
          } catch (Exception e) {
          
          e.printStackTrace();
          
          }
          
          }
          
          /**
          
          * Test page.
          
          * @param args
          
          */
          
          public static void main(String[] args) {
          
          // 分頁, 讀取第一頁數(shù)據(jù), 共讀取5個(gè)記錄
          
          Vector data = new Pager().pageData(1, 5);
          
          // TODO: process value object, 更改類名
          
          for(int i = 0; results != null && i < data.size(); i++) {
          
          ValueObject bean = (ValueObject)data.get(i);
          
          }
          
          }
          
          }
          


          BeanSoft 2007-10-23 16:00 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/23/155318.html

          posted @ 2007-10-23 16:00 J2EE?。眨小。眨?閱讀(204) | 評論 (0)編輯 收藏

          2005 年的時(shí)候幫人收集整理修改的一份腳本級聯(lián)菜單, 沒用到 AJAX, 寫死的數(shù)據(jù). 效果自己試試就知道了. 支持主流瀏覽器. 自己現(xiàn)在看看這代碼就覺得頭大... 呵呵 腳本就是腳本啊. 一段時(shí)間放下就看不懂了.

           

          三級關(guān)聯(lián)菜單

           

          <HTML>
          <HEAD>
          <TITLE>合同申請</TITLE>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <SCRIPT LANGUAGE = JavaScript>
          /** Define object Dsy 構(gòu)造器
          fieldValues - 三個(gè)表單域的名稱, 可以通過 request.getParameter(xxx) 取值
          defalutOptions - 默認(rèn)選項(xiàng)
          */
          function Dsy(fieldValues, defalutOptions){
            this.Items = {};
            this.defalutOptions = defalutOptions;// 默認(rèn)選項(xiàng) 
            this.fieldValues = fieldValues;// 三個(gè)表單域的名稱
          }

          Dsy.prototype.add = function(id, iArray){
            this.Items[id] = iArray;
          }

          Dsy.prototype.Exists = function(id){
            if (typeof(this.Items[id]) == "undefined")
              return false;
            return true;
          };

          Dsy.prototype.setup = function() {
              this.bean_change(0);
          }

          // This prototype method added by BeanSoft Studio
          Dsy.prototype.bean_change = function(v){
            var str = "0";
            for (i = 0; i < v; i++){
              str += ("_" + (document.getElementById(this.fieldValues[i]).selectedIndex - 1));
            };

            var ss = document.getElementById(this.fieldValues[v]);
            // Avoid a null exception
            if(ss == null) return;

              with(ss){
                length = 0;
                options[0] = new Option(this.defalutOptions[v], this.defalutOptions[v]);
                if (v && document.getElementById(this.fieldValues[v - 1]).selectedIndex > 0 || !v){
                  if (this.Exists(str)){
                    array = this.Items[str];
                    for (i = 0; i < array.length; i++)
                      options[length] = new Option(array[i], array[i]);
                    if (v)
                      options[1].selected = true;
                  }
                }

                if (++v < s.length){
                  this.bean_change(v);
                }
              }
          }

            function change(v){   
              dsy.bean_change(v);// Call test prototype
            }

            // Write form data string, 輸出表單腳本代碼
            // dsy, object name
            // varName, 變量名
            function toString(dsy, varName) {
              var str = "";
              for(i = 0; i < dsy.fieldValues.length; i++) {
                  str += "<select id=\"" + dsy.fieldValues[i] + "\" onChange=\"" + varName + ".bean_change(" + (i + 1)
                      + ");\"></select>\r\n";
              }
              str += "<br/>";
              return str;
            }

          // 第一個(gè)對象
            var dsy = new Dsy(["s1", "s2", "s3"], ["銷售方名稱", "銷售方聯(lián)系人", "聯(lián)系電話"]);
            var dsy1 = new Dsy(["s4", "s5", "s6"],  ["最終用戶名稱", "最終用戶聯(lián)系人", "聯(lián)系電話"]);
            var dsy2 = new Dsy(s = ["s7", "s8", "s9"], ["廠商", "廠商銷售", "聯(lián)系電話"]);

          // 填入數(shù)據(jù), 重復(fù)的代碼
            dsy.add("0", ["亞信", "航天理想"]);

            dsy.add("0_0", ["亞信聯(lián)系人_1", "亞信聯(lián)系人_2"]);
            dsy.add("0_0_0", ["亞信聯(lián)系人_1聯(lián)系電話"]);
            dsy.add("0_0_1", ["亞信聯(lián)系人_2聯(lián)系電話"]);

            dsy.add("0_1", ["航天理想聯(lián)系人_1", "航天理想聯(lián)系人_2"]);
            dsy.add("0_1_0", ["航天理想聯(lián)系人_1聯(lián)系電話"]);
            dsy.add("0_1_1", ["航天理想聯(lián)系人_2聯(lián)系電話"]);

            dsy1.add("0", ["最終用戶1", "最終用戶2"]);

            dsy1.add("0_0", ["最終用戶1_聯(lián)系人1", "最終用戶1_聯(lián)系人2"]);
            dsy1.add("0_0_0", ["最終用戶1_聯(lián)系人1_電話"]);
            dsy1.add("0_0_1", ["最終用戶1_聯(lián)系人2_電話"]);

            dsy1.add("0_1", ["最終用戶2_聯(lián)系人1", "最終用戶2_聯(lián)系人2"]);
            dsy1.add("0_1_0", ["最終用戶2_聯(lián)系人1_電話"]);
            dsy1.add("0_1_1", ["最終用戶2_聯(lián)系人2_電話"]);

            dsy2.add("0", ["BEA", "Horizon"]);

            dsy2.add("0_0", ["張學(xué)友", "BeanSoft"]);
            dsy2.add("0_0_0", ["1234567890"]);
            dsy2.add("0_0_1", ["beansoft@126.com"]);

            dsy2.add("0_1", ["AAA", "BBB"]);
            dsy2.add("0_1_0", ["AAA_99999"]);
            dsy2.add("0_1_1", ["bbb_88888"]);

            function setup(){  // Initialize the object
              dsy.setup(); //依次調(diào)用 setup
              dsy1.setup();
              dsy2.setup();
            }

          function prints1(){
              alert(document.frm.s1.value + " " + document.frm.s2.value + " " + document.frm.s3.value +"\r\n");
          }

          //isNaN()檢查運(yùn)算結(jié)果  http://tech.ccidnet.com/pub/article/c1115_a120997_p1.html

          </SCRIPT>

          </head>
          <body bgcolor="#E0E0E0" onload="setup()">
          多級關(guān)聯(lián)菜單:
          <form name="frm">

          <!-- 方式1: 手工輸出 HTML 代碼, 便于排版
          <select id="s1" onChange="dsy.bean_change(1);"></select>
          <select id="s2" onChange="dsy.bean_change(2);"></select>
          <select id="s3" onChange="dsy.bean_change(3);"></select>
          <br>
          <br>
          <br>
          <select id="s4" onChange="dsy1.bean_change(1);"></select>
          <select id="s5" onChange="dsy1.bean_change(2);"></select>
          <select id="s6" onChange="dsy1.bean_change(3);"></select>
          <br>
          <br>
          <br>
          <select id="s7" onChange="dsy2.bean_change(1);"></select>
          <select id="s8" onChange="dsy2.bean_change(2);"></select>
          <select id="s9" onChange="dsy2.bean_change(3);"></select>
          -->
          <SCRIPT LANGUAGE="JavaScript">
          <!--
          // 方式2: 腳本輸出表單 HTML 代碼, 代碼和上面注釋掉的類似
          document.write(toString(dsy, "dsy"));
          document.write(toString(dsy1, "dsy1"));
          document.write(toString(dsy2, "dsy2"));
          //-->
          </SCRIPT>

          <input type=button name=b1 value="監(jiān)測" onclick="prints1()">

          </form>

          </body>
          </html>



          BeanSoft 2007-10-22 10:43 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/22/154898.html

          posted @ 2007-10-22 10:43 J2EE UP?。眨?閱讀(254) | 評論 (0)編輯 收藏

          注: 昨天用 VMWare 試了試 Fedora Live, 下載地址: ftp://download.fedora.redhat.com/pub/fedora/linux/releases/7/Live/i386/ 里面的兩個(gè) ISO 隨便下一個(gè)就行了, 還不錯(cuò), 安裝后登錄選擇語言, 竟然支持中文和中文輸入法, 要知道現(xiàn)在想找個(gè)安裝包為700MB 的 Linux 還能支持中文的還真不多啊. 不過感覺有點(diǎn)吃內(nèi)存, 響應(yīng)上不如 RedHat 快. 安裝后占用了 2.54 G 的空間.

          image

          June 5th, 2007

          Fedora 7 Live 安裝手記

          Category: Ubuntu, Author: Nicky, Popularity: 30%

          fedora-logo.png
          這次 Fedora 7 提供的 CD 鏡像分為兩大版本,F(xiàn)edora 7 Live 和 Fedora 7 KDE Live,前者默認(rèn)采用 GNOME 桌面環(huán)境,后者集成 KDE 環(huán)境,只有在 DVD 版中才同時(shí)提供 GNOME 和 KDE 這兩個(gè)供選擇。用過 Redhat Linux 的都知道,在安裝的時(shí)候可以選擇一個(gè)桌面環(huán)境,也可以同時(shí)選擇它們,現(xiàn)在 Fedora 7 真有點(diǎn) Ubuntu 和 Kubuntu 的意思。我下載的是 Fedora 7 Live i686 來嘗試,整個(gè)安裝過程分為兩方面,安裝和配置,共 16 大步驟,花了我 30 張截圖,不過絕大多數(shù)設(shè)置默認(rèn)就行,重點(diǎn)還是在分區(qū)上。

          下面是安裝全過程。

          一、進(jìn)入 Live 桌面

          1、下載 Fedora 7 Live,設(shè)置為光盤啟動后,選擇第一個(gè)從光盤鏡像啟動。

          2、直接回車進(jìn)入

          3、進(jìn)入到 Live 桌面

          這種 Live 安裝方式,對桌面用戶來說是最爽的。

          二、進(jìn)行安裝

          1、雙擊桌面 install to fedora 圖標(biāo)開始安裝。

          2、選擇鍵盤布局。

          3、問你是否初始化這個(gè)驅(qū)動器,選擇 Yes,否則無法繼續(xù)。

          4、開始分區(qū),選擇 Create custom layout,自定義分區(qū)。

          Linux 分區(qū)和文件系統(tǒng)的選擇可以參考這篇文章

          可惜不提供 ReiserFS 文件系統(tǒng)的選擇。

          分區(qū)結(jié)束,點(diǎn)擊 Next。

          如果提示 Low Memory,選擇 Yes。

          5、選擇 GRUB 安裝位置,點(diǎn)擊 Next。

          6、網(wǎng)絡(luò)設(shè)備配置,可以讓它默認(rèn),點(diǎn)擊 Next。

          7、選擇時(shí)區(qū),可以在下拉菜單中選擇,建議直接在地圖上點(diǎn)擊。

          8、設(shè)置超級用戶 root 的口令。

          9、安裝配置結(jié)束,點(diǎn)擊 Next 開始進(jìn)行安裝。

          自動安裝過程

          10、安裝結(jié)束,點(diǎn)擊 Close 重新引導(dǎo)系統(tǒng)。

          三、安裝后的設(shè)置

          1、重新引導(dǎo),進(jìn)入 GRUB 畫面。

          可以看到核心是 2.6.21,比 Ubuntu 7.04 稍高一點(diǎn)。

          啟動畫面很漂亮。

          2、開始進(jìn)行設(shè)置,這里面大多數(shù)都可以默認(rèn),直接 Forward 就是。

          3、直接 Forward。

          4、選擇在哪些服務(wù)上啟用防火墻,可以都不選擇。

          5、直接 Forward。

          6、設(shè)置時(shí)間。

          7、發(fā)送硬件信息到服務(wù)器,選 Do not send profile,點(diǎn)擊 Forward。

          再說一次 No, do not send。

          8、建立個(gè)人帳戶信息

          如果提示口令太弱,不管它,點(diǎn)擊 Yes。

          9、聲卡設(shè)置,完成點(diǎn)擊 Finish。

          到這里 Fedora 7 Live 的安裝才算徹底完成了,雖然很多步驟可以默認(rèn),直接點(diǎn)擊下一步,但相比 Ubuntu 7 步加 15 分鐘安裝的過程,說不繁瑣那是騙人的。

          來自: http://www.osxcn.com/ubuntu/fedora-7-installation-notes.html



          BeanSoft 2007-10-20 10:18 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/20/154442.html

          posted @ 2007-10-20 10:18 J2EE?。眨小。眨?閱讀(311) | 評論 (0)編輯 收藏

          用戶可在 NetBeans 中開發(fā) JSR 295 (Beans Binding) 和 JSR 296 (Swing Application Framework) 的應(yīng)用。本教程演示了這一過程。

           



          BeanSoft 2007-10-19 13:09 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/19/154173.html

          posted @ 2007-10-19 13:09 J2EE?。眨小。眨?閱讀(1266) | 評論 (0)編輯 收藏

          從網(wǎng)上找的版本呢, 有白邊. 今天花時(shí)間改進(jìn)了一下, 效果打開頁面的時(shí)候你就應(yīng)該看到了. 如果配合 AJAX 做基于網(wǎng)頁版 Outlook 通知的話會有一點(diǎn)點(diǎn)用. 首先感謝最初的原作者(轉(zhuǎn)載的太多了, 找不到了).

          顯示效果:

          image
          其實(shí)有人做的有更好的版本, 參考這里(也是僅支持IE的):
          Web的桌面提醒(Popup) 效果演示: http://webuc.net/MyProject/Popup/popup.htm
          下載: http://webuc.net/MyProject/Popup/popup.rar

          blogjava_popup_outlook

          < SCRIPT >
          var oPopup;
          try {
          oPopup
          = window.createPopup();
          }
          catch (e) {
          window.status
          = '彈出通知消息僅能用于 IE 下 ! ';
          }

          var popTop = 10 ;
          var mytime;

          function popmsg(msgstr){
          if ( ! oPopup) {
           
          return ;
          }
          oPopup.document.body.innerHTML
          = msgstr;
          popshow();
          }

          function popshow(){
          // window.status=popTop;
          if (popTop >   1720 ){
          clearTimeout(mytime);
          oPopup.hide();
          return ;
          }
          else   if (popTop >= 1720   -   108   && popTop <=   1720 ){
            oPopup.show(screen.width
          - 200 ,screen.height, 193 , 1720   - popTop);
          }
          else   if (popTop >= 1500   && popTop <   1720   -   108 ){
          oPopup.show(screen.width
          - 200 , screen.height -   220   + (popTop -   1500 ), 193 , 108 );
          }
          else   if (popTop <= 108 ){
          oPopup.show(screen.width
          - 200 , screen.height, 193 , popTop);
          }
          else   if (popTop <= 220 ){
          oPopup.show(screen.width
          - 200 , screen.height - popTop, 193 , 108 );
          }
          else {
           
          // window.status=popTop + "  else";
            oPopup.show(screen.width - 200 , screen.height - 220 , 193 , 108 );
          }

          popTop
          +=   10 ;
          mytime
          = setTimeout( " popshow(); " , 40 );
          }

          function hidePop() {
            clearTimeout(mytime);
            oPopup.hide();
          }

          popmsg(
          " <div onclick='window.parent.hidePop()' title='點(diǎn)擊隱藏' style='cursor:pointer; background-image: url(http://www.aygfsteel.com/images/blogjava_net/beansoft/18269/o_qqbg.gif); width:193; height:108; color:white; padding-top:1em; padding-left:5; font-size:11pt; color:white' ><center><b>BlogJava 系統(tǒng)消息<br><br>請留言或者捐款支持 BeanSoft 的 Java EE 學(xué)習(xí)視頻, 謝謝 !!</b></center></div> " );

          </ SCRIPT >

           

          最后來一個(gè)支持頁面內(nèi)的跨瀏覽器的:

          blogjava_popup_msn_in

          完美仿MSN右下角彈出廣告代碼并可自動消失,附帶關(guān)閉按鈕.

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <title>先飛電腦技術(shù)網(wǎng)</title>
          </head>
          <Script language="JavaScript">
          <!--
          window.onload = getMsg;
          window.onresize = resizeDiv;
          window.onerror = function(){}
          //短信提示使用(asilas添加)
          var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;
          function getMsg()
          {
              try{
              divTop = parseInt(document.getElementById("eMeng").style.top,10)
              divLeft = parseInt(document.getElementById("eMeng").style.left,10)
              divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
              divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
              docWidth = document.body.clientWidth;
              docHeight = document.body.clientHeight;
              document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;//  divHeight
              document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth
              document.getElementById("eMeng").style.visibility="visible"
              objTimer = window.setInterval("moveDiv()",10)
              }
              catch(e){}
          }

          function resizeDiv()
          {
              i+=1
              if(i>300) closeDiv()    //客戶想不用自動消失由用戶來自己關(guān)閉所以屏蔽這句
              try{
              divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10)
              divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10)
              docWidth = document.body.clientWidth;
              docHeight = document.body.clientHeight;
              document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10)
              document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10)
              }
              catch(e){}
          }

          function moveDiv()
          {
              try
              {
              if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))
              {
              window.clearInterval(objTimer)
              objTimer = window.setInterval("resizeDiv()",1)
              }
              divTop = parseInt(document.getElementById("eMeng").style.top,10)
              document.getElementById("eMeng").style.top = divTop - 1
              }
              catch(e){}
          }
          function closeDiv()
          {
              document.getElementById('eMeng').style.visibility='hidden';
              if(objTimer) window.clearInterval(objTimer)
          }
          -->
          </Script>

          <!--溫馨提示代碼開始-->

          <DIV id=eMeng style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX:99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 180px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 116px; BACKGROUND-COLOR: #c9d3f3">
              <TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#AFDCF3 border=0>
              <TBODY>
                  <TR bgColor=#6699cc>
                      <TD style="font-size: 12px; background-image: url('msgTopBg.gif'); color: #0f2c8c" width=30 height=24></TD>
                      <TD style="font-weight: normal; font-size: 12px; background-image: url('msgTopBg.gif'); color: #ffffff; padding-left: 4px; padding-top: 4px" vAlign=center width="100%"> 網(wǎng)站溫馨提示:</TD>
                      <TD style="background-image: url('msgTopBg.gif'); padding-right: 2px; padding-top: 2px" vAlign=center align=right width=19><span title=關(guān)閉 style="CURSOR: hand;color:white;font-size:12px;font-weight:bold;margin-right:4px;" onclick=closeDiv() >×</span><!--<IMG title=關(guān)閉 style="CURSOR: hand" onclick=closeDiv() hspace=3 src="msgClose.jpg">--></TD>
                  </TR>
                  <TR>
                      <TD style="background-image: url(' padding-right: 1px; padding-bottom: 1px" colSpan=3 height=90>
                          <DIV style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 12px; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%">先飛電腦技術(shù)網(wǎng)全新改版,免費(fèi)精品網(wǎng)絡(luò)資源,你用了嗎?<BR>
                          <DIV align=center style="word-break:break-all"><!--<a href="
          target="_blank">--><a href=" target="_blank">
                          <font color=#FF0000>進(jìn)入網(wǎng)站瀏覽</font></a></DIV>

                          </DIV>
                      </TD>
                  </TR>
              </TBODY>
              </TABLE>
          </DIV>
          <!--溫馨提示代碼結(jié)束-->
          </html>



          BeanSoft 2007-10-18 23:03 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/18/154020.html

          posted @ 2007-10-18 23:03 J2EE?。眨小。眨?閱讀(312) | 評論 (0)編輯 收藏

          Struts 里面的 <html:text> 之類的表單域標(biāo)簽, 都有一個(gè)屬性叫: property, 這個(gè)屬性根據(jù)文檔是可以嵌套的, 例如下面的 formBean 嵌套了一個(gè)屬性 User:

          public class User {
            private String username;
            
            public String getUsername() {
              return username;
            }
            
            public void setUsername(String username) {
              this.username = username;
            }
          }

           

          public class UserForm extends FormBean {
            private User user;
            
            public User getUser() {
              return user;
            }
            
            public void setUser(User user) {
              this.user = user;
            }
          }

           

          那么對應(yīng)的 JSP 頁面里的  Tag 可以寫成:

          <html:text property="user.username" />

          但是如果這時(shí)候有人還想給生成的表單加入 JavaScript 驗(yàn)證的話, 必須用下面的寫法才能通過:

          <script> // 表單驗(yàn)證函數(shù) function validateForm(form) { // this.user.username 會報(bào)錯(cuò) alert( this['user.username'] ); if(this['user.username'] .value == "") { alert("用戶名不能為空!"); return false; } return true; }
          </script>

          這是因?yàn)?Struts 標(biāo)簽最后產(chǎn)生的 HTML 如下所示:

           

          <form onsubmit="return validateForm(this);">
          <input name="user.username" />
          </form>

           

          直接引用 元素.user.username 肯定會出錯(cuò)的. 正確的方法參考上上面的代碼段即可.



          BeanSoft 2007-10-17 14:24 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/17/153565.html

          posted @ 2007-10-17 14:24 J2EE?。眨小。眨?閱讀(816) | 評論 (0)編輯 收藏

          目前在 http://developers.sun.com.cn 已正式宣布發(fā)布Java SE 6 API 中文版。
          大家也可以從以下網(wǎng)址下載:
          * HTML 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api/index.html  )
          * zip 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html_zh_CN.zip  )
          * CHM 格式 ( http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/chm/JDK_API_1_6_zh_CN.CHM  )

          http://gceclub.sun.com.cn/NASApp/sme/jive/thread.jsp?forum=35&thread=44422



          BeanSoft 2007-10-14 11:01 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/14/152693.html

          posted @ 2007-10-14 11:01 J2EE?。眨小。眨?閱讀(412) | 評論 (0)編輯 收藏

          這篇文章, 個(gè)人認(rèn)為非常片面和誤導(dǎo), 至于后記, 更是垃圾.  至于怎么樣, 大家自己看, 呵呵. 起碼, 企業(yè)不是軍隊(duì), 領(lǐng)導(dǎo)不是總統(tǒng), 員工也不是軍人, 社會的發(fā)展又不是戰(zhàn)爭.

           

          在一切有關(guān)古巴的事物中,有一個(gè)人最讓我忘不了。
                    當(dāng)美國戰(zhàn)爭爆發(fā)后,美國必須立即跟西班牙的反抗軍首領(lǐng)取得聯(lián)系。加西亞將軍在古巴叢林的山里—沒人知道確切的地點(diǎn),所以無法寫信或打電話給他。美國總統(tǒng)必須盡快地獲得他的合作。
                  怎么辦呢?
                 有人對總統(tǒng)說:“有一個(gè)叫羅文的人,有辦法找到加西亞,也只有他才找得到。”
          他們把羅文找來,交給他一封寫給加西亞的信。關(guān)于那個(gè)“名叫羅文的人”,如何拿了信,把它裝進(jìn)一個(gè)油布制的袋里,封好,吊在胸口,劃著一艘小船,四天之后的一個(gè)夜里在古巴上岸,消逝于叢林中,接著在三個(gè)星期之后,從古巴島的那一邊出來,已徒步走過一個(gè)危機(jī)四伏的國家,把那封信交給了加西亞—這些細(xì)節(jié)都不是我想說明的。我要強(qiáng)調(diào)的重點(diǎn)是:麥金利總統(tǒng)把一封寫給加西亞的信交給了羅文;而羅文接過信之后,并沒有問:“他在什么地方?”像他這種人,我們應(yīng)該為他塑造不朽的雕像,放在每一所大學(xué)里。年輕人所需要的不是學(xué)習(xí)書本上的知識,也不是聆聽他人種種的指導(dǎo),而是要強(qiáng)調(diào)一種敬業(yè)精神,對于上級的托付,立即采取行動,全心全意去完成任務(wù)—“把信帶給加西亞”。
          加西亞將軍已不在人間,但現(xiàn)在還有其他的加西亞。凡是需要眾多人才的企業(yè)經(jīng)營者,有時(shí)候都會因?yàn)橐话闳说谋粍印獰o法或不愿意專心去做一件事——而大吃一驚:懶懶散散,漠不關(guān)心,馬馬虎虎的做事態(tài)度,似乎已經(jīng)變成常態(tài);除非苦口婆心、威迫利誘地叫屬下幫忙,或者除非奇跡出現(xiàn)——上帝派一名助手給他,沒有人能把事情辦成。
                  不信的話,我們來做個(gè)試驗(yàn):你此刻坐在辦公室—周圍有6名職員。其中一名叫來,對他說:“請幫我查一查百科全書,把哥立奇的生平做成一篇摘錄?!?br>        那人職員會靜靜地說:“好的,先生”,然后說去執(zhí)行嗎?我敢說他絕不會。他反而會滿臉狐疑地提出一個(gè)或數(shù)個(gè)下列的問題:
                  他是誰呀?
                  哪套百科全書?
                  這是我的工作嗎?
                  你不是指俾斯麥吧?
                  為什么不叫查理去做呢?
                  他是過世的人嗎?
                  急不急?
                  我是否把書拿來,由你自己來查?
                  你為什么要查他?
                  我敢以10比1的賭注跟你打賭,在你回答了他所提出的問題、解釋了怎么樣去查那資料,以及你為什么要查的理由之后,那個(gè)職員會走開,去找另一個(gè)職員幫他查哥立奇的資料,然后又回來對你說,根本查不到這個(gè)人。當(dāng)然,我這個(gè)打賭可能會輸,但根據(jù)或然率,我還是會贏的。真的,如果你是聰明人,你就不會對你的“助理”解釋,你會滿面笑容地說“算啦”,然后自己去查。這種被動的行為,這種道德的愚行,這種心靈的脆弱,這種姑息的作風(fēng)—都在把這個(gè)社會帶到三個(gè)和尚沒水喝的危險(xiǎn)境界。如果人們都不能為了自己而自動自發(fā),你又怎么能期待他們?yōu)閯e人采取行動呢?
                   你登廣告征求一名速記員,而應(yīng)征者中,十之八九不會拼也不會寫——他們甚至不認(rèn)為這些是必要條件。這種人能寫出一封給加西亞的信嗎?
                  在一家大公司里,總經(jīng)理對我說:“你看那個(gè)簿記員?!?br>       “我看到了,他怎樣?”
                 “他是個(gè)不錯(cuò)的會計(jì),不過如果我派他到城里去辦個(gè)小差事,他可能把任務(wù)完成,但也可能就在途中走進(jìn)一家酒吧,而當(dāng)他到了鬧市區(qū),可能根本忘了他的差事。”
                    這種人你能派他送信給加西亞嗎?
                   近來我們聽到,許多人為“那些為了廉價(jià)工資工作而又無出頭之日的工人”,以及為“那些為求溫飽而工作的無家可歸人士”表示出同情,同時(shí)又把那些雇主罵得體無完膚。
                   但從沒有人提到,有些老板一直到年老,都無法使有些不求上進(jìn)的懶蟲做點(diǎn)正經(jīng)的工作;也沒有人提到,有些老板長久而耐心地想感動那些當(dāng)他一轉(zhuǎn)身就投機(jī)取巧的 “員工”。在每一個(gè)商店和工廠,都有一個(gè)持續(xù)的整頓過程。公司負(fù)責(zé)人經(jīng)常地送走那些顯然無法對公司有所貢獻(xiàn)的“員工”,同時(shí)也吸引新的進(jìn)來。不論業(yè)務(wù)怎么忙碌,這種整頓一直進(jìn)行著。只有當(dāng)景況不佳,就業(yè)機(jī)會不多,整頓才會出現(xiàn)較佳的成績——那些不能勝任沒有才能的人,都被摒棄在就業(yè)的大門之外。只有最能干的人,才會被留下來。為了自己的利益,使得每個(gè)老板只保留對那些最佳的職員——那些能夠把信帶給加西亞的人。
                   我認(rèn)識一個(gè)極為聰明的人,他沒有自己創(chuàng)業(yè)的能力,而對別人來說也沒有一絲一毫的價(jià)值,因?yàn)樗鲜钳偪竦貞岩伤墓椭髟趬赫ニ?,或存心壓迫他。他無法下命令,也不敢接受命令。如果你要他帶封信給加西亞,他極可給回答說:“你自己帶去吧!”
          當(dāng)然,我知道像他這種道德不健全的人更值得同情;但是,我們也不會同情那些努力去從事一項(xiàng)大事業(yè)的人,他們不會因?yàn)橄掳嗟拟徛暥畔鹿ぷ?。他們因?yàn)榕θナ鼓切┠魂P(guān)心、偷懶被動、沒有良心的員工不至于離譜而日增白發(fā)。如果沒有這份努力和心血,那些員工將挨餓和無家可歸。
                  我是否說得太嚴(yán)重了?也許是吧。不過,當(dāng)整個(gè)世界變成貧民窟,我要為成功者說幾句同情的話——在成功機(jī)會極小之下,他導(dǎo)引別人的力量,終于獲得了成功;但他從成功中所得到的一片空虛,除了食物之外,就是一片空無。我曾經(jīng)是為了三餐而替人工作的人,也曾經(jīng)當(dāng)過老板,我知道這兩面的種種。貧窮是不好的;貧苦是不值得推介的;并非所有老板都是婪都、專橫者,就像并非所有的人都是善良者。
                   我欽佩的是那些不論老板是否在辦公室都努力工作的人;我也敬佩那些能夠把信交給加西亞的人;靜靜地把信拿去,不會提出任何愚笨問題,也不會存心隨手把信丟進(jìn)水溝里,而是不顧一切地把信送到;這種人永遠(yuǎn)不會被“解雇”,也永遠(yuǎn)不必為了要求加薪而罷工。文明,就是為了焦心地尋找這種人才的一段長遠(yuǎn)過程。這種人不論要求任何事物都會獲得。他在每個(gè)城市、村莊、鄉(xiāng)鎮(zhèn)—每個(gè)辦公室、公司、商店、工廠,都會受到歡迎。世界上急需這種人才,這種能夠把信帶給加西亞的人。

          后記:
                   這是一個(gè)很多人都知道的故事,講述了一個(gè)可能改變一場戰(zhàn)爭結(jié)局或一個(gè)國家命運(yùn)的敬業(yè)守責(zé)的人的故事,這讓人在許多方面心生感慨??▋?nèi)基把它與企業(yè)經(jīng)營聯(lián)系起來,閱讀這篇文章,最強(qiáng)的感覺就是:卡內(nèi)基怎么知道那么多我們企業(yè)的事?不僅有經(jīng)營者的心聲,也有職員的感受。在充斥著懶懶散散、漠不關(guān)心、馬馬虎虎做事態(tài)度的表象下,能把信帶給加西亞的人才彌足珍貴。
                  那么,我們來看一下能把信帶給加西亞的人具有什么樣的特質(zhì):
            ——“把信帶給加西亞”要有積極的態(tài)度,這個(gè)積極的態(tài)度會決定下一步的一切行動。國內(nèi)一知名企業(yè)宣揚(yáng)自己的工作理念是,“企業(yè)的每個(gè)員工不是螺絲釘而是發(fā)動機(jī)”,當(dāng)然,發(fā)動機(jī)固然可以促進(jìn)企業(yè)加大馬力發(fā)展,但不合格的螺絲釘同樣會影響到整個(gè)機(jī)器的運(yùn)轉(zhuǎn),如果做不了強(qiáng)大的發(fā)動機(jī),那就安心做好一顆螺絲釘吧,努力做實(shí)事,盡心盡力,是一顆稱職的螺絲釘應(yīng)有的本份,好高鶩遠(yuǎn),眼高手低,能“把信帶給加西亞”嗎?   ——“把信帶給加西亞”要有主動的行動,行動本身就含有可能遇到麻煩甚至危險(xiǎn)的含義,積極的行動就是要主動解決這些問題和麻煩,而不是被動地等待,消極地推諉。一家企業(yè)的老板炒掉了他們企業(yè)惟一的一名研究生,研究生不依不撓詢問被炒的原因,老板說,你找到的只是一份工作,而不是一項(xiàng)事業(yè)。勇于承擔(dān)責(zé)任,積極付出努力,我的上司說過一句雖然粗糙但很有道理的話:企業(yè)怎樣才能做好?就一條,你家里的事怎么做,你在公司就怎么做。
            ——“把信帶給加西亞”要有極強(qiáng)的責(zé)任心,沒有哪個(gè)人說自己沒有責(zé)任心,但缺乏責(zé)任心幾乎無處不體現(xiàn),有些人整日抱怨,有些人投機(jī)取巧,有些人劃地自封,有些人會找各種借口為自己開脫,這些都無法掩蓋責(zé)任心的缺乏……
            如此看來,卡內(nèi)基在文章中提到的“把信帶給加西亞”的人是一個(gè)盡心盡力做好本職工作的人應(yīng)當(dāng)具備的素質(zhì),并不是什么高不可攀的要求,但為什么在社會中,不缺各類專業(yè)人才,不乏各種精英,卻獨(dú)獨(dú)缺乏“能把信帶給加西亞”的人?是制度的某種缺陷?文化的丑陋一面?還是個(gè)體的差異?似乎都不能完全解釋。卡內(nèi)基是實(shí)證主義,他由此及彼,得出的結(jié)論也讓人信服。如果卡內(nèi)基是個(gè)中國人,我們會和他討論一下世界觀的問題,那些不能“把信送給加西亞”的人一定是世界觀出了毛病,是對生活的態(tài)度出了偏差,我們崇尚的是“世界上怕就怕‘認(rèn)真’二字”、“認(rèn)真對待生活的人,生活一定會認(rèn)真對待你”,聽起來似乎與企業(yè)經(jīng)營相差較遠(yuǎn),但做事與做人是一致的,對生活采取敷衍態(tài)度的人不是能“把信送給加西亞”的。
                 如果你最近因?yàn)楣ぷ鞣矫娴氖赂械接魫?,比如你覺得老板對你不公、同事不好好和你配合、待遇太低要求加薪,或者因?yàn)樽约旱倪h(yuǎn)大理想正面臨新的選擇,那么請抽出半個(gè)小時(shí)閱讀這本《致加西亞的信》,它會幫你從另一個(gè)角度認(rèn)識自己。
          我也相信新空間公司里也有很多很好的“羅文”,但實(shí)際上大部分人都不能“主動準(zhǔn)時(shí)地把信帶給加西亞?!笔聦?shí)勝于雄辯:
                    1.“請將個(gè)人當(dāng)日計(jì)劃傳遞至管理秘書處?!钡耐ㄖ蟼€(gè)星期就在白板了,到了今天仍然有很多人無動于衷,小徐只能在通知的后面加“!”號。
                    2.3月21日到廣州參觀國際展覽原定早上7:30起程,但最后是8:30才動身。還是像上次去中山春游一樣,要打電話催,要到宿舍去拉,才能將部分人集合。
          這樣的小事都做不好,業(yè)務(wù)上的事情更不用說了。我們的工作好像接力跑,很多人在接到棒后還未跑到接力點(diǎn)就把棒扔掉了,甚至有些人接到棒后根本就沒有跑。所以我們公司的管理層總要疲于奔命地為下屬留下的手尾“擦屁股”。
                    形成良好的的職業(yè)素質(zhì),不論你在哪一間公司工作,你都是最受歡迎的的!


          BeanSoft 2007-10-14 10:26 發(fā)表評論

          文章來源:http://www.aygfsteel.com/beansoft/archive/2007/10/14/152683.html

          posted @ 2007-10-14 10:26 J2EE?。眨小。眨?閱讀(137) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 云南省| 永靖县| 漳浦县| 囊谦县| 保山市| 南平市| 江孜县| 蛟河市| 罗江县| 南昌市| 左贡县| 大关县| 米泉市| 通化县| 南京市| 封丘县| 曲松县| 隆安县| 信丰县| 宿迁市| 余干县| 普陀区| 库伦旗| 河曲县| 西乌| 盈江县| 星子县| 金秀| 汝南县| 诸暨市| 三亚市| 大安市| 元阳县| 阳曲县| 宁强县| 榆树市| 新乡县| 平乡县| 阿荣旗| 顺昌县| 冕宁县|