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

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

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

    gembin

    OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

    HBase, Hadoop, ZooKeeper, Cassandra

    Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

    There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

    About Me

     

    用CashFilter實現頁面級緩存實踐

    用CashFilter實現頁面級緩存實踐
     

    1.mysql在本地localhost的test數據庫 建person表,暫以字段id,name,password ,表中可輸入一行值.

    2.建類 DAOUtil 

    import  java.sql.Connection;
    import  java.sql.DriverManager;

    public class DAOUtil {
        public DAOUtil() {
        }

       public static Connection getConn() {
            Connection conn = null;
            String db_url = "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=gb2312";
            String db_user = "root";
            String db_password= "admin";
            String db_driver = "com.mysql.jdbc.Driver";

            try {
                Class.forName(db_driver);
                conn = DriverManager.getConnection(db_url, db_user, db_password);
                 } catch (Exception ex) {
                 ex.printStackTrace();
            }
            return conn;
        }

      /**
      * dbclose
      * 關閉Connection,Statement
      * @param conn Connection
      * @param stmt Statement
      */
     public static void dbclose(Connection conn, Statement stmt) {
           try {
               if (stmt != null)
                   stmt.close();
           } catch (Exception e) {
             e.printStackTrace();
           }
           try {
               if (conn != null)
                   conn.close();
           } catch (Exception e) {
              e.printStackTrace();
           }
       }

    }

    3.建類 PersonDAO

    import java.util.*;
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.ResultSet;


    public class PersonDAO {
        static PersonDAO pdao;
        public static PersonDAO getInstance() {
            if (pdao == null) {
                synchronized (PersonDAO.class) {
                    pdao = new PersonDAO();
                }
            }
            return pdao;
        }

        public PersonDAO() {
            super();    }

        public static void main(String[] args) {
              System.out.println("person==="+PersonDAO.getInstance().getPersonInfo());
        }
       
           private static List getPersonInfo() {
              String name  = "";
              String password = "";
              Connection conn = null;
              List list = new java.util.ArrayList();
              Statement stmt = null;
              String sql =
                      "select name,password from person";
              try {
                  conn = DAOUtil.getConn();
                  stmt = conn.createStatement();
                  ResultSet rs = stmt.executeQuery(sql);
                  while (rs.next()) {
                      name = (String)rs.getString("name");
                      password = (String)rs.getString("password");
                      list.add(name+","+password);
                     }
              } catch (Exception ex) {
                  ex.printStackTrace();
                   } finally {
                  DAOUtil.dbclose(conn, stmt);
              }
              return list;
          } 
    }

    4.建testCache.jsp,testCache2.jsp

    <%@page contentType="text/html; charset=GBK"%>
    <%@page import="com.mcsky.dao.PersonDAO" session="false"%>
    <%@page import="java.util.List" session="false"%>
    <html>
    <body bgcolor="#FFFFFF">
    test ,hello world!!<p>
      <table width="85%" border="1" align="center">
       <tr>
          <td width="8%" height="20"> <div align="center">序號</div></td>
          <td width="12%"><div align="center">名字</div></td>
          <td width="17%"><div align="center">密碼 </div></td>
           </tr>
    <%
    //todo connect mysql server (localhost root/admin) and test(db) person(table)
    List list =PersonDAO.getInstance().getPersonInfo();
    System.out.println("size==="+list.size());
    for(int i=0;i<list.size();i++){
    String namePass = (String)list.get(i);
    java.util.StringTokenizer st = new  java.util.StringTokenizer(namePass,",");
    String   name = st.nextToken();
    String    pass = st.nextToken();
    System.out.println("namePass+++++"+namePass);
    %>
      <tr> 
          <td><div align="center"><%=i+1%></div></td>
          <td> <div align="center"><%=name%></div></td>
          <td><div align="center"><%=pass%></div></td>
          </tr>
        <%
            }
    %>
      </table>

    </body>
    </html>

    5.把module部署在tomcat的webapp下

    5.1 在WEB-INF\lib\log4j-1.2.8.jar,mysql-connector-java-3.0.11-stable-bin.jar,oscache-2.3.2.jar,commons-logging.jar,jgroups-all.jar

    5.2 在WEB-INF\classes拷貝cach\etc\下的oscache.tld,oscache.properties

    5.3 只對/testCache.jsp緩存

    修改WEB-INF\web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
      <display-name>test</display-name>
      <taglib><taglib-uri>oscache</taglib-uri><taglib-location>/WEB-INF/classes/ oscache.tld</taglib-location></taglib> 
       <filter>    
       <filter-name>CacheFilter</filter-name>
       <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
       </filter>
       <filter-mapping>
       <filter-name>CacheFilter</filter-name>  
           <url-pattern>/testCache.jsp</url-pattern>
          </filter-mapping>
         
    </web-app>

    啟動tomcat,在mysql的person中增加一條記錄,發現已對/testCache.jsp頁面進行緩存,而/testCache2.jsp頁面未緩存,如去掉黑體,則數據表增加一行,testCache.jsp也隨之修改

    5.4對所有的jsp緩存,

    修改WEB-INF\web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
      <display-name>test</display-name>
          <filter>    
            <filter-name>CacheFilter</filter-name>
            <filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
              <init-param>        
               <param-name>time</param-name> 
                        <param-value>60</param-value>   
               </init-param>    
              <init-param>                            
              <param-name>scope</param-name>
                         <param-value>session</param-value> 
              </init-param>
              </filter>
              <filter-mapping>
              <filter-name>CacheFilter
              </filter-name>
                <url-pattern>*.jsp</url-pattern>
              </filter-mapping>
    </web-app>

    其中60s,是失效時間,在mysql的person中增加一條記錄,發現已對/testCache.jsp,/testCache2.jsp頁面進行緩存,頁面不變化,60s后頁面變化.

    posted on 2007-09-21 11:05 gembin 閱讀(364) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(6)

    隨筆分類(440)

    隨筆檔案(378)

    文章檔案(6)

    新聞檔案(1)

    相冊

    收藏夾(9)

    Adobe

    Android

    AS3

    Blog-Links

    Build

    Design Pattern

    Eclipse

    Favorite Links

    Flickr

    Game Dev

    HBase

    Identity Management

    IT resources

    JEE

    Language

    OpenID

    OSGi

    SOA

    Version Control

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    free counters
    主站蜘蛛池模板: 污污网站免费观看| 一级免费黄色大片| 日本h在线精品免费观看| 久久久久久亚洲精品中文字幕| 国产精品美女久久久免费 | 亚洲视频无码高清在线| 免费人成网站在线观看不卡| 可以免费观看的一级毛片| 亚洲最大成人网色香蕉| 99精品免费观看| 亚洲国产精品一区二区第一页| 美女视频黄a视频全免费网站一区| 在线观看日本免费a∨视频| 亚洲综合日韩中文字幕v在线| 两性色午夜视频免费网| 亚洲一区无码精品色| 国产成人精品亚洲| 国产精品成人无码免费| 亚洲日韩一中文字暮| 国产一卡二卡3卡四卡免费| 亚洲资源在线视频| 国产偷伦视频免费观看| 亚洲国产精品VA在线看黑人| 成在人线av无码免费高潮水| 夜夜春亚洲嫩草影院| 中文字幕免费播放| 亚洲精品国产精品乱码不99 | 亚洲国产精品日韩av不卡在线 | 亚洲AV无码专区国产乱码不卡| 成年人免费视频观看| 亚洲小说图区综合在线| 天天看免费高清影视| 亚洲人成网站免费播放| 国产网站免费观看| 精品国产日韩亚洲一区在线| 亚洲Av无码乱码在线znlu| 一级毛片免费不卡| 亚洲国产精品无码一线岛国| 91精品国产免费久久国语蜜臀 | 久久久WWW成人免费精品| 亚洲精品中文字幕乱码|