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

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

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

    java技術研究

    統計

    留言簿(3)

    閱讀排行榜

    評論排行榜

    #

    網頁的緩存

    網頁緩存
    2009-07-09 10:42

    網頁的緩存是由HTTP消息頭中的“Cache-control”來控制的,常見的取值有private、no-cache、max-age、must-revalidate等,默認為private。其作用根據不同的重新瀏覽方式分為以下幾種情況:
    (1) 打開新窗口
    如果指定cache-control的值為private、no-cache、must-revalidate,那么打開新窗口訪問時都會重新訪問服務器。而如果指定了max-age值,那么在此值內的時間里就不會重新訪問服務器,例如:
    Cache-control: max-age=5
    表示當訪問此網頁后的5秒內再次訪問不會去服務器
    (2) 在地址欄回車
    如果值為private或must-revalidate(和網上說的不一樣),則只有第一次訪問時會訪問服務器,以后就不再訪問。如果值為no-cache,那么每次都會訪問。如果值為max-age,則在過期之前不會重復訪問。
    (3) 按后退按扭
    如果值為private、must-revalidate、max-age,則不會重訪問,而如果為no-cache,則每次都重復訪問
    (4) 按刷新按扭
    無論為何值,都會重復訪問


    項目中使用過濾器來設置網頁的緩存
    FilterConfig fc;

        public void doFilter(ServletRequest req, ServletResponse res,
                FilterChain chain) throws IOException, ServletException {
            HttpServletResponse response = (HttpServletResponse) res;
            // set the provided HTTP response parameters
            for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) {
                String headerName = (String) e.nextElement();
                response.addHeader(headerName, fc.getInitParameter(headerName));
            }
            // pass the request/response on
            chain.doFilter(req, response);
        }

    配置文件的配置:
    <filter>
            <filter-name>NoCache</filter-name>
            <filter-class>filter.CacheFilter</filter-class>
            <init-param>
                <param-name>Cache-Control</param-name>
                <param-value>no-cache, must-revalidate</param-value>
            </init-param>
        </filter>
        <filter>
            <filter-name>CacheForWeek</filter-name>
            <filter-class>filter.CacheFilter</filter-class>
            <init-param>
                <param-name>Cache-Control</param-name>
                <param-value>max-age=604800</param-value>
            </init-param>
        </filter>

        <filter-mapping>
            <filter-name>CacheForWeek</filter-name>
            <url-pattern>*.js</url-pattern>
        </filter-mapping>
        <filter-mapping>
            <filter-name>CacheForWeek</filter-name>
            <url-pattern>*.css</url-pattern>
        </filter-mapping> 
        <filter-mapping>
            <filter-name>CacheForWeek</filter-name>
            <url-pattern>*.gif</url-pattern>
        </filter-mapping>

    posted @ 2012-04-10 17:54 小秦 閱讀(210) | 評論 (0)編輯 收藏

    jquery AJAX 當參數包含特殊字符如&*#等的時候

    JQuery AJAX中遇到這樣一個問題,參數中包含特殊字符,比如&'#@等
    這是執行AJAX的時候就會出問題,因為所傳的參數變了.
    看個示例就明白:
                  $.ajax({
                        url: '/ashx/ajax.ashx',
                        type: 'post',
                        data: 'option=delete&name=11&adb,
                        success: function (data) {
                            if (data != 'error') {
                              
                                }
                            }
                   });
    上面執行的ajax就是異步刪除一個name為 11&abd 的數據
    當請求到ajax.ashx頁面時,我們獲取到的name參數為11
    執行操作后會發現其實刪除了 name 為 11的數據,而沒有刪除 name 為 11&abc 的數據
    這是由于有&特殊字符,把以前的倆個參數變成了三個參數 option,name,abc
    這時就需要用另外一種方法傳遞參數:
                  $.ajax({
                        url: '/ashx/ajax.ashx',
                        type: 'post',
                        data:{ 'option':'delete','name':'11&adb'},
                        success: function (data) {
                            if (data != 'error') {
                              
                                }
                            }
                   });
    采用上面的json格式傳遞參數就可以避免特殊字符引起的參數錯誤問題.

    posted @ 2012-03-26 14:50 小秦 閱讀(1206) | 評論 (1)編輯 收藏

    ant快速部署web項目

     1、安裝ant,下載ant包,并解壓到d盤根目錄d:\ant
    2、配置環境變量,包括ANT和JAVA_HOME
    ANT_HOME:D:\ant
    JAVA_HOME:E:\workserver\jdk1.5.0_06
    path:D:\ant\bin;E:\workserver\jdk1.5.0_06\bin
    3、ant需要jsch-0.1.37.jar包和js-1.6R2.jar包放在ant\lib目錄下
    4、啟動命令行cmd,到該目錄:E:\workspace\ebizcenter\metadata\build\scripts
    5、執行a、"ant checkout"從svn服務器下載,b、"ant build"編譯java類成class文件,c、"ant deploy"部署到服務器(上傳) 
    6、如果是64位系統,參考這篇文章http://www.linuxso.com/linuxbiancheng/13326.html
    a、去http://www.sliksvn.com/en/download下載并安裝
    b、安裝完成后,把安裝目錄(如:D:\Program Files\SlikSvn\bin)  加入到系統環境變量PATH中 
    c、在安裝目錄下(如:D:\Program Files\SlikSvn\bin)找到“libsvnjavahl-1.dll”這個文件,復制一份后重命名為“svnjavahl-1.dll”,即去掉文件名中前三個字母 

    posted @ 2012-02-28 14:32 小秦 閱讀(506) | 評論 (0)編輯 收藏

    亂碼

    1、url轉發需要修改響應的字符類型
    response.setContentType("text/html;charset=UTF-8");
    2、@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 

    posted @ 2012-02-25 14:14 小秦 閱讀(201) | 評論 (0)編輯 收藏

    java類似ajax文件上傳

     ajax 是無法實現上傳文件的 , ajax與后臺通信都是通過傳遞字符串

     

     

    -- index.html

     

    Html代碼  收藏代碼
    1. <form action="upload.jsp" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" >  
    2.     <input type="file" id="file" name="file" style="width:450">  
    3.     <input type="submit" value="上傳文件"><span id="msg"></span>  
    4.     <br>  
    5.     <font color="red">支持JPG,JPEG,GIF,BMP,SWF,RMVB,RM,AVI文件的上傳</font>  
    6.       
    7.     <iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>  
    8. </form>  
    9.   
    10. <!-- javascript s -->  
    11. <script type="text/javascript">    
    12.     function callback(msg) {    
    13.         document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;  
    14.         document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>";  
    15.     }  
    16. </script>  

     

     

    index.html 中主要要做的就是寫一個 form 和 iframe ,并把 form 的 target 設為 iframe 的名字,注意要把iframe 設為不可見,其他的都是正常的文件上傳的寫法,這樣刷新的頁面就是這個隱藏的 Iframe ,而在 index.html 中是不會有頁面刷新的,js的 callback 方法是回調方法。用于清空文件上傳框和顯示后臺信息,注意清空文件上傳框的方法,和普通方法有點不一樣。


    上傳的注意事項:
    1、<form method="POST" id="matchItemForm" name="formEntity" action="${CoreCtxPath}/gather/gatherAjax.html" enctype="multipart/form-data" target="hidden_frame">
    這里的method很重要不能少,enctype也不能少,target代表form和iframe綁定也不能少。

    posted @ 2012-02-25 14:13 小秦 閱讀(4096) | 評論 (2)編輯 收藏

    讓Myeclipse格式化更漂亮(轉自javaeye)

    1.Java代碼

    打開Eclipse的Window菜單,然后Preferences->Java->Code Style->Formatter->Edit/Show(根據不同版本可用的按鈕會不一樣) ->Line Wrapping->Maximum line width:由默認的80改成自己想要設定的長度
     
    2.Html代碼
    Window->Preferences->MyEclipse->Files and Editors->Html->Html Source->Line width->加個0以后保存。
     
    3.xml代碼
    Window->Preferences->MyEclipse->Files and Editors->xml->xml Source->->Line width->999
    @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

     

    posted @ 2011-10-21 10:14 小秦 閱讀(5454) | 評論 (0)編輯 收藏

    MySQL遠程訪問

           為了能夠讓終端通過網絡訪問,需要開啟MYSQL遠程訪問服務。即在MYSQL的user表中進行設置,使任何ip的主機都能夠使用用戶名為root,密碼為“1”訪問數據庫。在Linux的終端中輸入如下命令:

    #mysql –uroot -p

    Enter password:

    #mysql>use mysql;

    #mysql>update user set host='%' where user='root';

    #mysql>FLUSH PRIVILEGES;

    #mysql>select host,user from user ;

    當看到Host 這一項中有一個%記錄且用戶名為root。說明設置已成功。


    一般MySQL安裝的時候默認是綁定了本機。因此需要在配置文件中取消本機綁定。方能夠被遠程的主機訪問。MySQL配置文件為my.cnf ,位于/etc/mysql/文件夾下。編輯my.cnf,找到bind-address =127.0.0.1。這一句就是將MySQL與本機綁定。所以將此句注釋掉。取消與本機的綁定。然后執行 #sudo /etc/init.d/mysql restart 。即重啟MySQL服務,重啟之后就可進行遠程訪問。這樣就完全搭建好可以在網絡中被終端訪問的服務器端數據庫了。

    posted @ 2009-07-24 14:32 小秦 閱讀(743) | 評論 (1)編輯 收藏

    如何讓struts2和spring2在jdk1.4上跑起來

    1、struts2提供的有struts-2.0.9\j4目錄,這個下面有工具可以把1.5下編譯的包,給編譯成兼容1.4的包。
    2、spring2是直接支持jre1.4的,其實大部分開源jar包都直接支持。
    3、如果你用的是eclipse,你需要在項目--->屬性--->構建路徑---->庫,中進行設置“JRE 系統庫[jdk 1.4.2_07]”,當然你也要引入其它編譯好了的兼容1.4的包。
    4、在項目--->屬性--->java編譯器,中需要勾選“啟用特定與項目的設置”,將“編譯器一致性級別”設置為1.4,并且應用。
    5、有些jar包不能在1.4環境下跑的,不過這個不好統計,我遇到的有commons-beanutils-1.6.jar不要用1.7以及以后版本的,貌似commons-logging-1.0.4.jar也不要用高版本。
    這個是沒有設置好的時候報出的錯誤信息(這里是c3p0,也可能不是這個類報出來):
    (C3P0Registry.java:139) jdk1.5 management interfaces unavailable... JMX support disabled.

    posted @ 2009-05-13 15:11 小秦 閱讀(1249) | 評論 (0)編輯 收藏

    緩存實現實現手段(轉自javaeye)

    緩存實現的層面有很多:

    1、對象緩存
    由ORM框架提供,透明性訪問,細顆粒度緩存數據庫查詢結果,無需業務代碼顯式編程。當軟件結構按照ORM框架的要求進行針對性設計,使用對象緩存將會極大降低web系統對于數據庫的訪問請求。因為類似Hibernate這樣的ORM,良好的設計數據庫結構和利用對象緩存,在大負載網站,能夠提供極高的性能。因為使用對象緩存也無需顯式編程,所以適用范圍也最廣泛。

    2、查詢緩存
    對數據庫查詢結果行集進行緩存,適用于一些耗時,但是時效性要求比較低的場景。iBATIS就只能使用查詢緩存,而無對象緩存。查詢緩存和對象緩存適用的場景不一樣,是互為補充的。

    3、片斷緩存
    針對動態頁面的局部片斷內容進行緩存,適用于一些個性化但不經常更新的頁面(例如博客)。OSCache提供了相當簡陋的片斷緩存,而RoR則提供了相當好的片斷緩存機制。

    4、Action緩存
    針對URL訪問返回的頁面結果進行緩存,適用于粗粒度的頁面緩存,例如新聞發布。OScache提供了相當簡陋的Action緩存(通過web.xml中的配置),而RoR提供了相當好的Action緩存。

    緩存不能一概而論,以上每種緩存分別適用于各自的場景,緩存不同的層面。當然你可以在應用程序當中把4種緩存一起用上。

    posted @ 2007-11-13 14:46 小秦 閱讀(362) | 評論 (0)編輯 收藏

    Java路徑問題最終解決方案之一(出自:http://dev.yesky.com/85/3001085_1.shtml)

    相對路徑本質上還是絕對路徑

      因此,歸根結底,Java本質上只能使用絕對路徑來尋找資源。所有的相對路徑尋找資源的方法,都不過是一些便利方法。不過是API在底層幫助我們構建了絕對路徑,從而找到資源的!

      得到classpath和當前類的絕對路徑的一些方法

      下面是一些得到classpath和當前類的絕對路徑的一些方法。你可能需要使用其中的一些方法來得到你需要的資源的絕對路徑。

      1.FileTest.class.getResource("")

      得到的是當前類FileTest.class文件的URI目錄。不包括自己!

      如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

      2.FileTest.class.getResource("/")

      得到的是當前的classpath的絕對URI路徑。

      如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

      3.Thread.currentThread().getContextClassLoader().getResource("")

      得到的也是當前ClassPath的絕對URI路徑。

      如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

      4.FileTest.class.getClassLoader().getResource("")

      得到的也是當前ClassPath的絕對URI路徑。

      如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

      5.ClassLoader.getSystemResource("")

      得到的也是當前ClassPath的絕對URI路徑。

      如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

      我推薦使用Thread.currentThread().getContextClassLoader().getResource("")來得到當前的classpath的絕對路徑的URI表示法。

      Web應用程序中資源的尋址

      上文中說過,當前用戶目錄,即相對于System.getProperty("user.dir")返回的路徑。

      對于JavaEE服務器,這可能是服務器的某個路徑,這個并沒有統一的規范!

      而不是我們發布的Web應用程序的根目錄!

      這樣,在Web應用程序中,我們絕對不能使用相對于當前用戶目錄的相對路徑。

      在Web應用程序中,我們一般通過ServletContext.getRealPath("/")方法得到Web應用程序的根目錄的絕對路徑。

      這樣,我們只需要提供相對于Web應用程序根目錄的路徑,就可以構建出定位資源的絕對路徑。

      這是我們開發Web應用程序時一般所采取的策略。

                                                  (本文轉載自:http://dev.yesky.com/85/3001085_1.shtml)

    posted @ 2007-06-06 11:02 小秦 閱讀(372) | 評論 (0)編輯 收藏

    僅列出標題
    共11頁: First 上一頁 3 4 5 6 7 8 9 10 11 下一頁 
    主站蜘蛛池模板: 区久久AAA片69亚洲| 亚洲国产高清在线一区二区三区| 国产成人A人亚洲精品无码| 免费看美女午夜大片| va亚洲va日韩不卡在线观看| 特级毛片aaaa级毛片免费| 免费播放春色aⅴ视频| 无遮挡a级毛片免费看| 亚洲国产精品第一区二区三区| 暖暖免费中文在线日本| 亚洲日本韩国在线| 久久久精品午夜免费不卡| 亚洲国产精品无码久久久秋霞2 | 亚洲色成人网一二三区| 亚洲综合免费视频| 国产精品高清视亚洲一区二区| 国产精品自在自线免费观看| 中美日韩在线网免费毛片视频 | 免费a在线观看播放| 国产亚洲人成在线影院| 国产亚洲美女精品久久久| 久久黄色免费网站| 亚洲人成网站看在线播放| 国产又粗又长又硬免费视频| 一级毛片在播放免费| 久久久久亚洲精品美女| 成人免费的性色视频| 国产亚洲精品2021自在线| 日本亚洲视频在线 | 中文字幕亚洲免费无线观看日本| 亚洲国产亚洲综合在线尤物| 可以免费观看一级毛片黄a| a级毛片高清免费视频| 亚洲av日韩av无码av| 亚洲国产成人精品女人久久久 | 亚洲成人动漫在线观看| 四虎影视精品永久免费网站| 日韩免费观看一区| 亚洲成av人无码亚洲成av人| 亚洲av不卡一区二区三区| 国产精品国产免费无码专区不卡 |