<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 閱讀(358) 評論(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
    主站蜘蛛池模板: 国产亚洲AV手机在线观看| 亚洲av成人无码久久精品| 一级毛片免费一级直接观看| 亚洲AV无码乱码国产麻豆穿越 | 日本免费人成视频在线观看| 在线亚洲午夜片AV大片| 亚洲综合最新无码专区| 99re6热视频精品免费观看| 亚洲av永久无码精品秋霞电影秋 | 鲁啊鲁在线视频免费播放| 久久精品国产亚洲夜色AV网站| 无码人妻久久一区二区三区免费丨| 亚洲一区二区三区免费| 亚洲AV成人无码天堂| 337p日本欧洲亚洲大胆裸体艺术 | 在线电影你懂的亚洲| 又大又黄又粗又爽的免费视频| 免费国产黄网站在线观看| 免费无码国产V片在线观看| 亚洲熟妇av一区| 一本色道久久综合亚洲精品高清| 2020因为爱你带字幕免费观看全集| 免费人成网上在线观看| 国产精品亚洲午夜一区二区三区| 久久久久亚洲AV成人网人人网站| 最近中文字幕mv手机免费高清| 精品在线免费观看| 人妻巨大乳hd免费看| 亚洲国产欧美国产综合一区 | 亚洲av片一区二区三区| 西西大胆无码视频免费| 久久久久久免费一区二区三区| 综合一区自拍亚洲综合图区| 亚洲午夜精品在线| 久久久久久亚洲精品成人| 国产亚洲精品资源在线26u| 亚洲国模精品一区| 四虎国产精品免费视| 午夜老司机免费视频| 国产成在线观看免费视频| 69av免费视频|