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 閱讀(363) 評論(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
          主站蜘蛛池模板: 登封市| 隆德县| 嘉峪关市| 定边县| 乐山市| 合肥市| 宜宾县| 湘西| 芜湖县| 济源市| 江安县| 平舆县| 信宜市| 商南县| 黄龙县| 手机| 江城| 泰州市| 肇源县| 苍南县| 新巴尔虎左旗| 闻喜县| 安新县| 乌兰浩特市| 威海市| 宁化县| 新巴尔虎左旗| 清徐县| 白水县| 南漳县| 鄂尔多斯市| 澄江县| 颍上县| 青铜峡市| 宜都市| 乡宁县| 黄梅县| 长白| 巴彦淖尔市| 从化市| 乐都县|