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實現(xiàn)頁面級緩存實踐

          用CashFilter實現(xiàn)頁面級緩存實踐
           

          1.mysql在本地localhost的test數(shù)據(jù)庫 建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
            * 關(guān)閉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中增加一條記錄,發(fā)現(xiàn)已對/testCache.jsp頁面進(jìn)行緩存,而/testCache2.jsp頁面未緩存,如去掉黑體,則數(shù)據(jù)表增加一行,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中增加一條記錄,發(fā)現(xiàn)已對/testCache.jsp,/testCache2.jsp頁面進(jìn)行緩存,頁面不變化,60s后頁面變化.

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


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


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(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
          主站蜘蛛池模板: 焦作市| 天门市| 长春市| 永城市| 额尔古纳市| 克山县| 南雄市| 前郭尔| 连江县| 堆龙德庆县| 施秉县| 收藏| 沧州市| 曲周县| 客服| 台北县| 施秉县| 云浮市| 樟树市| 凌海市| 明星| 左权县| 娄烦县| 玛曲县| 青川县| 漠河县| 尖扎县| 尉氏县| 西青区| 屏山县| 杭锦后旗| 花莲县| 蓬安县| 贡山| 霍城县| 芜湖市| 丽水市| 崇左市| 精河县| 陕西省| 莎车县|