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

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

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

    paulwong

    #

    在jsp頁面中使用oscache標簽實現(xiàn)可配置的頁面緩存

    最近在學習oscache的相關(guān)內(nèi)容,寫點東西作為鞏固

    如果在jsp中使用如下標簽

    <cache:cache key="foobar" scope="session">  
              some jsp content   
    </cache:cache> 


    那么這中間的一段jsp代碼將會以key="foobar"緩存在session中,任何其他頁面中使用這個key
    的cache標簽都能共享這段存在緩存中的執(zhí)行結(jié)果

    考慮一個需求,一個頁面是有許多個不同的jsp文件拼出來的
    可能在頁首有隨機的廣告,登錄用戶的信息,系統(tǒng)的即時信息,固定的目錄信息等等
    這其中可以考慮將固定的目錄信息放入緩存中,而其他動態(tài)信息則即時刷新
    再進一步考慮 有時候頁面之間的信息是關(guān)聯(lián)的,只有當其中一條信息的內(nèi)容變化了才需要去刷新
    對于這種需求就可以考慮在<cache:cache/>標簽中配置group屬性,將不同的具有關(guān)聯(lián)關(guān)系的cache內(nèi)容
    分組,這樣oscache會自動的幫你檢查該組緩存內(nèi)容的變化情況,如果有任何一子成員組的內(nèi)容變化了
    則會執(zhí)行刷新,這樣就可以在頁面實現(xiàn)數(shù)據(jù)的動態(tài)同步
    代碼如下:(來源oscache:groupTest.jsp )



    <%@ page import="java.util.*" %>  
    <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>  
       
     
    <head>  
     
    <title>Test Page</title>  
     
    <style type="text/css">  
     body 
    {font-family: Arial, Verdana, Geneva, Helvetica, sans-serif}  
     
    </style>  
     
    </head>  
     
    <body>  
       
     
    <href="<%= request.getContextPath() %>/">Back to index</a><p>  
     
    <hr>Flushing 'group2'<hr>  
     
    <cache:flush group='group2' scope='application'/>  
     
    <hr>  
     
    <cache:cache key='test1' groups='group1,group2' duration='5s'>  
         
    <b>Cache Time</b><%= (new Date()).getTime() %><br>  
         This is some cache content test1 that is in 'group1' and 'group2'. Normally it would refresh if it  
         was more than 5 seconds old, however the 
    <cache:flush group='group2' scope='application'>  
         tag causes this entry to be flushed on every page refresh.
    <br>  
     
    </cache:cache>  
     
    <hr> 



    這里有兩個cache分組group1和group2,將group2設(shè)置為每次都執(zhí)行刷新,所以test1為key的cache每次刷新頁面內(nèi)容都是重新執(zhí)行過的

    <cache:cache key='test2' groups='group1' duration='5s'>  
        
    <b>Cache Time</b><%= (new Date()).getTime() %><br>  
         This is some cache content test2 that is in 'group1' (refreshes if more than 5 seconds old)
    <br>  
     
    </cache:cache>  
     
    <hr> 


    而test2只有當間隔時間超過5秒才會更新內(nèi)容

     <cache:cache key='test3' duration='20s'>  
         
    <b>Cache Time</b><%= (new Date()).getTime() %><br>  
         This is some cache content test3 that is in 'group1' and 'group2'. The groups are added using the 
    <cache:addgroup /> tag.<br>  
         
    <cache:addgroup group='group1'/>  
         
    <cache:addgroup group='group2'/>  
     
    </cache:cache>  
     
    <hr>  
     
    <cache:cache key='test4' duration='20s'>  
         
    <b>Cache Time</b><%= (new Date()).getTime() %><br>  
         This is some cache content test4 that is in 'group1' and 'group2'. The groups are added using the 
    <cache:addgroups /> tag.<br>  
         
    <cache:addgroups groups='group1,group2'/>  
    </cache:cache>  
     
    <hr>  
     
    </body>  
    </html> 


    <cache:addgroup group='{you_group}'/>可以將所在的cache加入存在的group中

    posted @ 2008-02-19 22:28 paulwong 閱讀(1499) | 評論 (0)編輯 收藏

    用Hibernate實現(xiàn)領(lǐng)域?qū)ο蟮淖远x字段

         摘要: 導言 在開發(fā)企業(yè)級業(yè)務應用(企業(yè)規(guī)模)時,客戶往往要求在不修改系統(tǒng)源代碼的情況下對應用對象模型的擴展性提供支持。利用可擴展域模型可以實現(xiàn)新功能的開發(fā),而不需要額外的精力和成本 應用的使用周期將被延長;  外部因素改變時,系統(tǒng)工作流也可以隨之被修改; 已經(jīng)被部署的應用可以被“設(shè)定”,使其符合企業(yè)的特定情況。 完成以上功能...  閱讀全文

    posted @ 2008-01-23 11:57 paulwong 閱讀(2183) | 評論 (1)編輯 收藏

    struts2筆記:與spring2集成


    struts2基本上就是webwork的翻版,所以遷移過程倒是很簡單,只需要修改下配置文件和一些包名就可以了。如果在Eclipse、Netbeans這些集成開發(fā)工具的幫助下,記不清包名也很容易找到想要的類的,呵呵。


    在Eclipse下建立一個Dynamic Web Application。


    從struts2.0.6的lib目錄中復制下面的庫文件到WEB-INF/lib目錄下:
    commons-logging-1.1.jar
    freemarker-2.3.8.jar
    ognl-2.6.9.jar
    struts-api-2.0.6.jar
    struts-core-2.0.6.jar
    struts-spring-plugin-2.0.6.jar
    xwork-2.0.0.jar


    從spring中l(wèi)ib目錄中復制下面的庫文件到WEB-INF/lib目錄下:
    spring.jar


    修改web.xml,增加一個struts的分派器filter,映射所有的url-pattern,再增加一個spring的ContextLoaderListener監(jiān)聽器。修改后的內(nèi)容如下:


    <?xml version="1.0" encoding="UTF-8"?>   
    <web-app id="WebApp_ID" version="2.4"   
        xmlns
    ="http://java.sun.com/xml/ns/j2ee"   
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"   
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
        
    <display-name>struts2tutorial</display-name>   
            
        
    <filter>   
            
    <filter-name>struts2</filter-name>   
            
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>   
        
    </filter>   
            
        
    <filter-mapping>   
            
    <filter-name>struts2</filter-name>   
            
    <url-pattern>*.action</url-pattern>   
        
    </filter-mapping>   
            
        
    <welcome-file-list>   
            
    <welcome-file>index.jsp</welcome-file>   
        
    </welcome-file-list>   
            
        
    <listener>   
            
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>   
        
    </listener>   
            
    </web-app>   

     

    寫一個簡單的Action,HelloWorld:


    package tutorial;    
    import com.opensymphony.xwork2.ActionSupport;    
    public class HelloWorld extends ActionSupport {    
       
        
    public static final String MESSAGE = "Struts is up and running ";    
       
        
    public String execute() throws Exception {    
            setMessage(MESSAGE);    
            
    return SUCCESS;    
        }
        
       
        
    private String message;    
       
        
    public void setMessage(String message){    
            
    this.message = message;    
        }
        
       
        
    public String getMessage() {    
            
    return message;    
        }
        
    }
       


    在源文件路徑下(項目的src目錄)增加struts.xml配置action。這個文件是集成spring的關(guān)鍵所在,這里面描述有如何將spring2集成到struts2的相關(guān)信息:


    <!DOCTYPE struts PUBLIC    
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    
        "http://struts.apache.org/dtds/struts-2.0.dtd"
    >   
    <struts> 
        
    <!-- 下面這句表明對象是由spring負責產(chǎn)生的.加上這句后,struts會產(chǎn)生讓spring負責產(chǎn)生bean,如果spring不能產(chǎn)生bean,則由struts自己產(chǎn)生.也可以在struts.properties文件內(nèi)定義這個屬性.--> 
        
    <constant name="objectFactory" value="spring"></constant>   
        
    <package name="struts2tutoial" extends="struts-default" namespace="/">   
            
    <!-- 注意,現(xiàn)在action的class屬性不再是類的名字了,而是在spring中的bean的id,詳細信息請看下面的spring的bean配置文件applicationContext.xml --> 
            
    <action name="HelloWorld" class="helloWorld">   
                
    <result>/helloWorld.jsp</result>   
            
    </action>   
            
    <!-- Add your actions here -->   
        
    </package>   
    </struts>   


    在WEB-INF/目錄下增加spring的bean配置文件applicationContext.xml:


    <?xml version="1.0" encoding="UTF-8"?>   
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">   
    <beans>   
       
        
    <bean id="helloWorld" class="tutorial.HelloWorld"></bean>   
       
    </beans>  


    配置很簡單,只有一個bean。

    最后,在WebContent目錄下增加helloWorld.jsp:


    <%@ taglib prefix="s" uri="/struts-tags" %>   
       
    <html>   
        
    <head>   
            
    <title>Hello World!</title>   
        
    </head>   
        
    <body>   
            
    <h2><s:property value="message" /></h2>   
        
    </body>   
    </html> 

    posted @ 2007-07-16 23:38 paulwong 閱讀(571) | 評論 (0)編輯 收藏

    Struts-Menu結(jié)合角色權(quán)限的應用

         摘要: STRUTS-MENU簡介:STRUTS-MENU支持靜態(tài)和動態(tài)菜單,數(shù)據(jù)來源和顯示方式分開,菜單文字國際化,權(quán)限。 <menu:useMenuDisplayer name="Velocity" config="/framework/res/menucomp/templates/xtree.html"  bundle="org.apache.stru...  閱讀全文

    posted @ 2007-07-16 23:07 paulwong 閱讀(1825) | 評論 (1)編輯 收藏

    Spring Module---cache

    項目需要緩存,google了一下,發(fā)現(xiàn)spring module有現(xiàn)成的東西可用,隨即拿來看看。發(fā)現(xiàn)還是比較好用的。
    改cache采用了aop的方式進行cache的寫入和刷出。使用spring風格,上手容易。
    系統(tǒng)負載不高,因此對于該緩存方法的性能等等不做評價,目前滿足需要。
    使用方法:
    有這么幾個概念需要提前知道1.XXCacheFacade,比如如果是oscache,那么XX就是oscachefacade.該類負責緩存的寫入和刷出

    <bean id="oscacheFacade" class="org.springmodules.cache.provider.oscache.OsCacheFacade">  
        
    <property name="failQuietlyEnabled" value="true"/>  
        
    <property name="cacheManager">  
            
    <bean id="oscacheManager" class="org.springmodules.cache.provider.oscache.OsCacheManagerFactoryBean"/>  
        
    </property>  
      
    </bean>  


    里面的cacheManager必須要有,改類負責提供底層具體的cache實現(xiàn),比如oscache或者EHcache等。
    2.MethodMapCachingInterceptor這個攔截器是官方提供的同類型的攔截器之一,根據(jù)方法名,參數(shù)匹配攔截。

    <bean id="cachingInterceptor001" class="org.springmodules.cache.interceptor.caching.MethodMapCachingInterceptor">  
        
    <property name="cacheProviderFacade" ref="oscacheFacade"/>  
        
    <property name="cachingModels">  
            
    <props>  
                
    <prop key="com.company.jncz.TestItIF.get*">groups=aa;refreshPeriod=10</prop>  
                
    <prop key="com.company.jncz.TestItIF.load*">groups=bb;refreshPeriod=10</prop>  
            
    </props>  
        
    </property>  
      
    </bean>  


    注意cachingModels。有兩種方式寫法,一種是上面看到的使用props另一種是使用Map.在有些情況下只能使用Map方式,下面解釋

    <map>  
      
    <entry key="com.company.jncz.TestIt.get*">  
        
    <ref local="oscacheCachingModel"/>  
      
    </entry>  
    </map>  

     

     

    <bean id="oscacheCachingModel" class="org.springmodules.cache.provider.oscache.OsCacheCachingModel">  
        
    <property name="groups">  
                
    <list>  
                   
    <value>aa</value>  
                   
    <value>bb</value>  
                
    </list>  
           
    </property>  
        
    <property name="refreshPeriod" value="10"/>  
     
    </bean>  


    尤其當groups(對于oscache來說是groups)的值不止一個的時候,就需要使用map的方式。
    否則不生效(也許還有什么我沒有注意到).另外需要注意的是對于model來說他的key很重要。有以下需要注意:如果AImpl是A接口的實現(xiàn)類,而且你在其他地方使用時都是用A接口來聲明的,那么key就必須寫成接口的全限定名比如:com.company.jncz.A.getXX,否則無法識別。

     

    對于與cachingModel相對應的flushingModel寫法是類似的,參考api很容易寫出來。

    最后

    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
            
    <property name="beanNames">  
                
    <value>*Service</value>  
            
    </property>  
            
    <property name="interceptorNames">  
                
    <list>  
                    
    <value>cachingInterceptor001</value>  
                    
    <value>flushingInterceptor001</value>  
                
    </list>  
            
    </property>  
      
    </bean>  
      
    <bean id="testService" class="com.company.jncz.TestItStub"/>  


    這些不做介紹。
    總之比較簡單。這兩天感冒,昏昏沉沉,不知道有沒有表達清楚。。。。

     

    自己看了一眼,的確沒說清楚,要清楚的幾個概念是cacheFacade.CachingModel.FlushingModel.CachingInterceptor.FlushingInterceptor.這些算是比較重要的。其他aop內(nèi)容略。caching攔截器攔截某方法,根據(jù)cachingModel定義的規(guī)則由cacheFacade將之放入cache。flushing攔截器攔截到某方法,根據(jù)flushingModel定義的規(guī)則由cacheFacade將對應的cache清除。嗯,基本上流程就這樣子了。

    posted @ 2007-07-16 17:01 paulwong 閱讀(1397) | 評論 (0)編輯 收藏

    applicationContext解析

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

    <beans>

      建立一個數(shù)據(jù)源
     
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      
    <property name="driverClassName">
       
    <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
      
    </property>
      
    <property name="url">
       
    <value>jdbc:microsoft:sqlserver://192.168.0.6:1433</value>
      
    </property>
      
    <property name="username">
       
    <value>sa</value>
      
    </property>
      
    <property name="password">
       
    <value></value>
      
    </property>
     
    </bean>

      建立會話工廠類,這個類使用spring專門為hibernate3提供LocalSessionFactoryBean
     
     
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
      
    <property name="dataSource">
       
    <ref local="dataSource" />  --引用上面的數(shù)據(jù)源
      
    </property>
      
    <property name="mappingResources">  --調(diào)入映射文檔
       
    <list>
        
    <value>com/yourcompany/User.hbm.xml</value>  
       
    </list>
      
    </property>
      
    <property name="hibernateProperties">  --相關(guān)設(shè)置
       
    <props>
        
    <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
        
    <prop key="hibernate.show_sql">true</prop>
       
    </props>
      
    </property>
     
    </bean>
      

        定義事務管理器,這個也是 spring專門為hibernate3提供的HibernateTransactionManager 事務管理器
     
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      
    <property name="sessionFactory">
       
    <ref local="sessionFactory" />   --引用會話工廠類
      
    </property>
     
    </bean>


     定義實體DAO
     
    <bean id="userDAO" class="com.yourcompany.UserDAOImp">
      
    <property name="sessionFactory">
       
    <ref local="sessionFactory" />--引用會話工廠類
      
    </property>
     
    </bean>
     

     為上面的實體DAO定義一個代理(proxy)類,這是spring為解決事務問題而提供TransactionProxyFactoryBean動態(tài)事務代理類
     
    <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
      
    <property name="transactionManager">
       
    <ref bean="transactionManager" />  --指定事務管理器(需要是spring專用的)
      
    </property>
      
    <property name="target"> --目標實體DAO類
       
    <ref local="userDAO" />
      
    </property>
      
    <property name="transactionAttributes"> --定義要使用事務的方法
       
    <props>
        
    <prop key="insert*">PROPAGATION_REQUIRED</prop>  --所有insert開頭的方法都使用事務,出錯要回滾
        
    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> --所有g(shù)et開頭的方法都使用只讀事務
        
    <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>--所有ist開頭的方法都使用只讀事務
       
    </props>
      
    </property>
     
    </bean>


      為 path="/login" 的struts action 定義實際的action類,該action 已經(jīng)進行 type="org.springframework.web.struts.DelegatingActionProxy"設(shè)置
      
    <bean name="/login" class="com.yourcompany.struts.action.LoginAction" singleton="false">
        
    <property name="userDAO">
        
    <ref bean="userDAOProxy" />  --注意,這里指定的userDAO是上面定義的代理類
      
    </property>
     
    </bean>
    </beans> 

    posted @ 2007-04-06 16:19 paulwong 閱讀(300) | 評論 (0)編輯 收藏

    RFID 應用

    小心「RFID 智能型陳列貨架」就在你身邊!


    還有什么比自己的一舉一動受人監(jiān)控還要恐怖的事呢?現(xiàn)在,日本的 DNP、Tana-X 和SEARS(不是美國的那個Sears喔!)正在研發(fā)一種智能型陳列貨架,可以追蹤掛著RFID 標簽的商品,進而分析消費者的行為模式,像是:商品的「訪客率」及購買率,消費者的「平均考慮時間」及「同次購買物品」(比方說消費者可能會同時購買 PSP和UMD光盤),當消費者拿起商品掃進店內(nèi)的 POP 系統(tǒng),查詢產(chǎn)品的相關(guān)信息時,系統(tǒng)背后的營銷人員也在悄悄收集相關(guān)信息,進而獲得所需的營銷信息。


    目前我們還不太確定今年十二月圣誕節(jié)采購旺季時,哪里的消費者會被「試用」,不過建議大家在逛街的同時,還是多回頭看看,小心「RFID 智能型陳列貨架」就在你身邊。



    IBM 發(fā)布標簽箝技術(shù),讓 RFID 可靠一點點...


    RFID 無線辨識系統(tǒng)的數(shù)據(jù)安全,實在是讓人冷汗直流。特別是在護照及信用卡方面,已經(jīng)傳出了相當多的問題之后,讓人必須快點找到應對的方法。而咱們的藍色巨人,不玩筆電很久的 IBM 公司,近來則是在不改變 RFID 運作的方法之下,改進了其安全性上的問題。


    利用這個叫做標簽箝的方式(clipped tag),將天線的接收訊號的范圍縮小到只有短短的幾吋之內(nèi),將 RFID 的讀取限制在一個很小的范圍,迫使有心人必須非常接近相關(guān)的卡片、卷標,才能有效的讀取并竊取數(shù)據(jù),試想,如果有人故意貼在你身上拿個掃描裝置來探測你,你會不反擊嗎?


    那這項技術(shù)廣泛應用要等多久呢?一年?不用!一個月?不用!根據(jù) InfoWorld,再過幾天,他就會開始在市面上使用(特定區(qū)域、對象),而該雜志也專訪了加拿大一位專家 Ann Cavoukian 博士,請教她對于這項技術(shù)的看法,她則表示,這項技術(shù)解決了相當多讓人頭痛的問題,進而讓 RFID 技術(shù)能讓消費者隱私的安全,多上了點保護。


    雖然這目前只是個折沖的辦法,但是只要消費者小心點,重要證件、檔案不要落到有心人手里,我們就可以不用擔心,沒事走在路上,私人資料就被掃走的問題。



    IBM 將利用 RFID 技術(shù)來防止假藥流入市面


    RFID 無線辨識技術(shù)上的應用,算是越來越廣泛了,雖然也曾經(jīng)出了不少問題,但經(jīng)過一番努力,這項技術(shù),相信還是能為全體民眾帶來更多的便利及保障。


    近來 IBM 則是要將 RFID 應用在藥品運送的管控上,讓有心人無機可乘。利用瓶身上的 RFID 標簽,在經(jīng)由各個轉(zhuǎn)運站時,工作人員透過相對應的接收裝置,將 RFID 里頭的信息讀入電腦,并上傳到藥廠,讓藥廠能夠追蹤藥品在通路期間的轉(zhuǎn)運地點,并且實時更新相關(guān)數(shù)據(jù),到了中游的通路商、下游的藥局手中時,也能利用藥廠提供的數(shù)據(jù),來作比對,確保沒有被掉包之疑慮。



    飛利浦推出使用 RFID 技術(shù)的植物標本箱
    ?

    飛利浦公司又將觸角伸向另一項前無古人的新科技-植物標本箱-運用RFID(無線射頻辨識技術(shù))的植物溫室。這個植物溫室能夠偵測你種植在它貼了標簽的花盆里植物的品種,然后針對該品種制造完美的成長環(huán)境,這樣你就可以很簡便地在家栽種新鮮荷蘭芹、鼠尾草、迷迭香和百里香等調(diào)味植物,免除了出門去市集或是有機食物專賣超市購物的麻煩。



    將行李置入 RFID 標簽,從此時無走失之慮



    我們想有一天,這個世界應該會布滿 RFID 標簽, 正要出門旅行的您,手上的行李相當不能例外。位在拉斯維加司的馬卡倫國際機場(McCarran International Airport),在他們?nèi)龡l航線中,設(shè)立了一個系統(tǒng),為您家的行李裝上 RFID 標簽,透過單音道的掃射,可以追蹤標簽自動地將您的行李送到正確的目的地,停留在原地等待進一步的掃射。官方聲稱這套系統(tǒng)將有99.5%的準確性,所以朋友們,賭上一把的時候,別忘了順別跟上帝禱告一下,您的行李不在0.5%的誤差范圍內(nèi)。



    RFID 幫消費者選擇化妝用品


    日本 Seijo 藥妝店貼心的為消費者推出了一項化妝品試用服務,今后消費者就不用將擺在架上不知幾個人試用過的化妝品抹在臉上試用,可以改用一款由 NTT 設(shè)計的 RFID 仿真化妝軟件來看看心儀的化妝品是否適合自己。


    消費者只需要坐在電腦屏幕前,由網(wǎng)絡(luò)攝影機幫他拍張臉部正面照,照片出現(xiàn)在屏幕后,消費者就可以開始把自己想要試用的化妝品用電腦內(nèi)置的 RFID 掃描儀讀取,然后軟件會根據(jù)掃描進來的化妝品項目自動判斷應該涂抹在臉部的哪個部位,消費者便可由屏幕上出現(xiàn)的照片來判斷此化妝品的顏色或質(zhì)感是否適合自己或符合自己所需。


    此軟件還會根據(jù)消費者選用的產(chǎn)品再推薦其它能夠相互搭配的色彩,所有配色和試用的動作完成后,消費者還可以把屏幕上完妝后的照片印出來,做為日后購物的參考。


    這個所有程序都由電腦完成的化妝品試用軟件,保證比傳統(tǒng)專柜一對一試用來得迅速方便,造福的除了女性外,應該還有常需要陪另一半逛公司,并在一旁苦等的男性朋友吧。



    確保清酒瓷具組安全的 RFID 標簽


    像這樣頂級清酒瓷器組,如果不能在恒溫底下保存,可能本身的質(zhì)量會受影響,尤其是在長途運送的過程,更是苦煞制造商。


    于是NTT和數(shù)家瓷器公司一同合作,利用監(jiān)測程序來偵測貼在瓷器上具溫度傳感器的RFID卷標,并讓運送的卡車上裝載感應器,實時將標簽的感應值藉由3G來傳送至總部,如果有任何異狀,可以實時反應(如果司機想趁機開箱行竊,是逃不過感應器法眼的!)。


    當運送到買家手上,就可以調(diào)閱其溫度記錄,看看是否被動手腳。看來這對于其它的高檔貨而言,可能會是的不錯的防盜措施!



    美國將在八月正式對一般民眾發(fā)行 RFID 護照


    經(jīng)過了各方角力爭議,最終美國還是會在八月對一般民眾發(fā)行 RFID 護照 ePassport(先前已經(jīng)讓外交人員使用。)。而新的帶有 RFID 標簽的護照,里頭將會包含姓名、地址、國籍、相片、數(shù)字化的指紋文件等個人相關(guān)資料。


    而先前所擔心的防偽、資料外泄等問題,美國政府仍然十分自信,表示他們已經(jīng)做好萬全的準備。不過自從荷蘭發(fā)行的 RFID 護照遭破解、竊取數(shù)據(jù)后,人們就開始對 RFID 護照的可靠與否感到懷疑。而這項科技,最終將是會便利機場的安檢、節(jié)省大家的時間,或是讓科技罪犯更容易的侵犯他人隱私,大家可以好好觀察后續(xù)的發(fā)展。



    VoIP 和 RFID High 翻日本試衣間


    愛逛街的女生要注意啰,日本三越百貨最近引進一個新系統(tǒng),讓消費者在試衣間時,可透過無線辨識系統(tǒng) (RFID) 先將衣服上的吊牌掃入,然后使用網(wǎng)絡(luò)語音電話 (VoIP) 查看目前店內(nèi)的庫存,并通知店員展示其它所需商品。


    這個系統(tǒng)利用三越百貨本身的銷售端管理系統(tǒng) (Point of Sale System),可實時掌控店內(nèi)的庫存,配合使用 Cisco 的網(wǎng)絡(luò)電話,整個安裝成本只需美金 700~800元,相較之下,成本高達美金 20,000~25,000 的觸碰式銀幕型導覽器 (touchscreen kiosk),實在貴多了。


    當衣服被掃入辨識系統(tǒng)之后,可供選擇的尺寸、顏色及其它類似款式的服飾會顯示在電話上的觸碰式銀幕,消費者拿起話機就可與店員通話,這可比在試衣間扯著嗓子喊著自己所需的尺寸低調(diào)多了。


    系統(tǒng)供貨商 Litescape 宣稱,目前已向許多美國零售商(Abercrombie、HomeDepot、Gap、Virgin Mega…等)推銷這個系統(tǒng),不知何時才輪到中國?



    韓國公司 Rocket 發(fā)展「紙電池」,主要應用在 RFID 等方面


    雖然韓國公司 Rocket 開發(fā)的這個產(chǎn)品被自稱為「紙電池」,但似乎應該只是指它和紙一樣薄(像 NEC 一年前的產(chǎn)品一樣),而不是真的用紙做的。在技術(shù)的部份我們是一個字兒也看不懂,不過大致上就是「電池科技」+「薄膜科技」產(chǎn)生一個像紙一樣薄、無毒、而且不會著火也不會爆炸(重要!)的新電池之類的吧。


    Rocket 估計主要的應用應該是在 RFID、智能卡和「化妝品、藥品輸送系統(tǒng)」等需要迷你電池的地方。奇怪的是,Rocket 還提出了「牙齒美白、抗老化、去皺紋」的應用,我們實在猜不出電擊牙齒是怎么能讓它變白?總之,讓我們期待看看它是如何神奇吧!


    http://cn.engadget.com/search/?q=rfid

    posted @ 2006-12-23 11:38 paulwong 閱讀(265) | 評論 (0)編輯 收藏

    JSP + Jndi + Spring + Hibernate 心得筆記

    這幾天小試了一下JSP +Jndi + Spring + Hibernate組合的功能,想讓JSP網(wǎng)頁可以秀出Database裡的資料。試了老半天,發(fā)現(xiàn)要讓這組合成功運作,還真的是很麻煩,很多細節(jié)要注意。而且很多設(shè)定找不到文件,很讓人...DeadDeadDead


    以下是這個組合成功運作所需注意的地方。


    1.系統(tǒng)建置環(huán)境如下
    AP Server : Tomcat 5.5.x
    Database : Oracle 10g
    Framework : Spring 1.2.x + Hibernate 3.x


    2.相關(guān)重要修改設(shè)定如下
    2.1 首先,我要利用Tomcat的DBCP Connection pool功能,所以必需先改Tomcat裡面的Server.xml設(shè)定檔,加入下面藍字所示的相關(guān)設(shè)定

    <Host>
    ??
    ??中略
    ??
    ??
    <Context?中略>
    ????
    ????
    <!--?Tomcat5.5的DBCP設(shè)定方式寫法與之前版本完全不同?-->
    ????
    <Resource?
    ??????
    name="jdbc/scott"
    ??????auth
    ="Container"
    ??????factory
    ="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"?????????????
    ??????type
    ="javax.sql.DataSource"
    ??????driverClassName
    ="oracle.jdbc.driver.OracleDriver"????????????
    ??????url
    ="jdbc:oracle:thin:@localhost:1521:orcl"??????????????
    ??????username
    ="scott"????????????
    ??????password
    ="tiger"
    ??????maxIdle
    ="10"
    ??????maxWait
    ="1000"??????????????
    ??????maxActive
    ="100"/>????
    ??????
    ??
    </Context>
    </Host>


    2.2 接下來修改web.xml設(shè)定檔藍字所示內(nèi)容

    <?xml?version="1.0"?encoding="UTF-8"?>
    <web-app?id="WebApp_ID"?version="2.4"
    ??xmlns
    ="http://java.sun.com/xml/ns/j2ee"
    ??xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
    ??xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee?http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    ?
    ??
    <!--?指定log4j設(shè)定檔位置?-->
    ??
    <context-param>
    ????
    <param-name>log4jConfigLocation</param-name>
    ????
    <param-value>/WEB-INF/log4j.properties</param-value>
    ??
    </context-param>
    ??????
    ??
    <!--?指定spring設(shè)定檔位置?-->
    ??
    <context-param>
    ????
    <param-name>contextConfigLocation</param-name>
    ????
    <param-value>/WEB-INF/beans-config.xml</param-value>
    ??
    </context-param>?
    ??
    ??
    <!--?一定要在ContextLoaderListener設(shè)定之前加上Log4jConfigListener設(shè)定,如此一來ContextLoaderListener才可以正常運作?-->
    ??
    <listener>
    ????
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
    ??
    </listener>
    ?
    ??
    <listener>
    ????
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    ??
    </listener>??
    ?
    ??
    <!--?指定此項Filter可使Spring取回的DomainObject在JSP(View層)作完所有的事情後,才將Hiberante?Session給Close?-->
    ??
    <filter>
    ??????
    <filter-name>hibernateFilter</filter-name>
    ??????
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    ??
    </filter>?
    ??
    ??
    <filter-mapping>
    ??????
    <filter-name>hibernateFilter</filter-name>
    ???????
    <url-pattern>/*</url-pattern>
    ??
    </filter-mapping>
    ??
    ??
    <!--?指定JNDI?JDBC?DataSource?-->
    ??
    <resource-ref>
    ????
    <description>JNDI?JDBC?DataSource</description>
    ????
    <res-ref-name>jdbc/scott</res-ref-name>
    ????
    <res-type>javax.sql.DataSource</res-type>
    ????
    <res-auth>Container</res-auth>
    ??
    </resource-ref>
    ??
    ??中略

    </web-app>


    2.3 在/WEB-INF目錄裡面,增加beans-config.xml這個Srping設(shè)定檔,修改藍字所示內(nèi)容


    <?xml?version="1.0"?encoding="UTF-8"?>?
    <!DOCTYPE?beans?PUBLIC?"-//SPRING/DTD?BEAN/EN"?
    ?"http://www.springframework.org/dtd/spring-beans.dtd"
    >?
    <beans>?
    ????中略
    ?????
    ????
    <!--?利用JNDI的方式連結(jié)到DataSource?-->
    ????
    <bean?id="dataSource"?class="org.springframework.jndi.JndiObjectFactoryBean">?
    ????????
    <property?name="jndiName">??
    ????????????
    <!--?不可省略"java:comp/env/"字串,否則會出現(xiàn)異常?-->
    ????????????
    <value>java:comp/env/jdbc/scott</value>?
    ????????
    </property>??
    ????
    </bean>?????????
    ????
    ????中略
    </beans>


    2.4 在/WEB-INF目錄裡面,增加log4j.properties這個log4j設(shè)定檔

    #這是我用的設(shè)定檔,請自行修改成以符合實務上需求
    log4j.rootLogger=info,consoleAppender
    log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
    log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.consoleAppender.layout.ConversionPattern=%d?[%t]?%-5p?%c?-?%m%n


    3.大功告成...寫個測試的JSP網(wǎng)頁試試看吧...Big SmileBig SmileBig Smile...以下是我測試用的JSP,請自行修改以符合實務上需求

    <%@?page?language="java"?contentType="text/html;?charset=utf-8"??pageEncoding="utf-8"%>
    <%@?page?import="org.springframework.web.context.WebApplicationContext"%>
    <%@?page?import="org.springframework.web.context.support.WebApplicationContextUtils"%>
    <%@?page?import="com.db.table.Emp"%>
    <%@?page?import="com.db.dao.IEmpDAO;"%>
    ?
    <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
    <html>
    <head>
    <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
    <title>Spring?Test</title>
    </head>
    <body>
    <%
    ??WebApplicationContext?context?
    =?WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());??
    ??IEmpDAO?empDAO?
    =?(IEmpDAO)context.getBean("empDAOImpl");
    ??Emp?emp?
    =?empDAO.find(new?Short((short)7369));
    ??out.println(
    "Ename:?"?+?emp.getEname()?+?"<br>");
    ??out.println(
    "Dname:?"?+?emp.getDept().getDname()?+?"<br>");
    %>
    </body>
    </html>

    posted @ 2006-12-20 14:53 paulwong 閱讀(1684) | 評論 (0)編輯 收藏

    可變列寬的表格

         摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> /* ?表格? */ .ResizedColTable { ????border-bottom : ...  閱讀全文

    posted @ 2006-11-24 16:05 paulwong 閱讀(846) | 評論 (0)編輯 收藏

    分析設(shè)計工作

    1.需求調(diào)研
    2.需求分析
    3.數(shù)據(jù)庫設(shè)計(數(shù)據(jù)字典)
    4.系統(tǒng)概要分析
    5.詳細設(shè)計
    6.集成測試方案設(shè)計,確認指導開發(fā)工程師工作 其它要求:
    1、做詳細或部分概要(核心)設(shè)計;
    2、按時提供提交件(UML格式設(shè)計文檔或數(shù)據(jù)模型文檔);
    3、按設(shè)計提交件編碼;
    4、指導程序員做詳細設(shè)計或編碼;
    5、確保核心代碼質(zhì)量保證。

    posted @ 2006-11-10 19:13 paulwong 閱讀(255) | 評論 (0)編輯 收藏

    僅列出標題
    共115頁: First 上一頁 107 108 109 110 111 112 113 114 115 下一頁 
    主站蜘蛛池模板: 亚洲高清日韩精品第一区| 亚洲国产美女在线观看| 亚洲美女视频网站| 色天使亚洲综合一区二区| 精品一卡2卡三卡4卡免费视频| 亚洲AV无码不卡在线播放| 亚洲av成人一区二区三区| 免费无码午夜福利片| 91青青青国产在观免费影视| 99视频免费观看| 国产免费观看网站| 精品亚洲麻豆1区2区3区| 中文字幕亚洲免费无线观看日本| 亚洲aⅴ无码专区在线观看春色 | 亚洲人成777在线播放| 亚洲伦理中文字幕| 国产精品小视频免费无限app| 动漫黄网站免费永久在线观看| 亚洲综合国产精品第一页| 久久夜色精品国产噜噜亚洲a| 中文字幕a∨在线乱码免费看| 午夜视频在线在免费| 亚洲黄色网站视频| 一个人免费播放在线视频看片| 日韩免费在线视频| 一个人免费高清在线观看| 国产亚洲精品观看91在线| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 欧洲乱码伦视频免费国产| 免费看成人AA片无码视频羞羞网| 日韩精品亚洲aⅴ在线影院| 中文字幕亚洲精品资源网| 国产成人自产拍免费视频| 美女黄网站人色视频免费国产| 亚洲黄色中文字幕| 色播在线永久免费视频网站| 国产一级淫片免费播放电影| 亚洲三级视频在线观看| 久久久久久久久久国产精品免费| 亚洲精品99久久久久中文字幕| 亚洲日本成本人观看|