ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩国产中文,懂色av一区二区在线播放,亚洲男人第一av网站http://www.aygfsteel.com/DuYang/articles/46237.htmlDalston.YoungDalston.YoungMon, 15 May 2006 08:27:00 GMThttp://www.aygfsteel.com/DuYang/articles/46237.htmlhttp://www.aygfsteel.com/DuYang/comments/46237.htmlhttp://www.aygfsteel.com/DuYang/articles/46237.html#Feedback0http://www.aygfsteel.com/DuYang/comments/commentRss/46237.htmlhttp://www.aygfsteel.com/DuYang/services/trackbacks/46237.html  下蝲地址:http://proxool.sourceforge.net/ æœ€æ–°ç‰ˆæœ¬äØ“: Proxool 0.9.0RC2
  下蝲后解压羃Proxool 0.9.0RC2å?把Proxool 0.9.0RC2/lib下的.jaræ–‡äšg部çÖv到WEB-INF/libä¸?
  看看下面的范�example for Oracle):
  Proxool.jsp
________________________________________________________________________________________________________________________________________
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=gb2312"%>

<html>
    <head>
        <title>Proxool.jsp</title>
    </head>
    <body>
        <h2>使用Proxool.jsp</h2>
        <%
           Connection con=null;
           Statement stmt=null;
           ResultSet rs=null;
           
           String ename="";
           
           try
           {
             Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
             con=DriverManager.getConnection("proxool.JSPBook:oracle.jdbc.driver.OracleDriver:
                       jdbc:oracle:thin:@yang:1521:orcl","scott","ss");             
             stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
             String query="select * from emp";
             rs=stmt.executeQuery(query);
             while(rs.next())
             {
               ename=rs.getString("ename");
      %>
        从emp表中取出姓名<%=ename%><br>
      <%
             }
             stmt.close();
             con.close();
           }
           catch(SQLException e)
           {
             out.println("发生异常"+e);
           }
           finally
           {
             try
             {
               if(con!=null)
               {
                 con.close();
               }
             }
             catch(SQLException ne)
             {
               out.println("SQLException:"+ne);
             }
           }
        %>
    </bdoy>
</html>
Proxool.jsp通过Proxool˜qžæŽ¥æ± å–å¾—Connection,然后昄¡¤ºemp表格中的ename.
首先动态加载Proxool的driver:
  Class.forName("org.logicalcobwebs.proxool.ProxoolDriver);
然后ž®†Proxool URLåˆ†äØ“ä¸‰ä¸ªéƒ¨åˆ†: ˜qžæŽ¥æ± çš„别名,JDBC驱动½E‹åº(DataBase JDBC Drivers),˜qžæŽ¥URL.

讑֮šProxool
proxool提供了许多连接池的参æ•?例如:˜qžæŽ¥æ± æœ€å¤šæœ‰å‡ ä¸ªConnection,最ž®‘有几个Connection,Connection生命期限½{‰ç­‰ã€?br />Proxool主要有以下四¿Uè®¾å®šæ–¹å¼?
(一) 通过java.util.Properties对象来设�例如:
Properties info=new Properties();
info.setProperty("proxool.maximum-connection-count","20");
info.setProperty("proxool.house-keeping-test-sql","select CURRENT_DATE");
info.setProperty("user","your DB username");
info.setProperty("password","your DB prassword");
String alias="Develop"; //Proxool˜qžæŽ¥æ± çš„别名,æ ÒŽ®è‡ªå·±å–œå¥½éšä¾¿å†™^_^
String driverClass="oracle.jdbc.driver.OracleDriver";
String driverUrl="jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName";
String url="proxool."+alias+":"+drvierClass+":"+driverUrl;
connection=DrvierManager.getConnection(rul,info);

(äº? 通过XMLæ–‡äšg来设å®?例如:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored.-->
<proxool>
  <alias>Develop</alias>
  <driver-url>
    jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
  </driver-url>
  <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
  <driver-properties>
    <property name="user" value="your database name"/>
    <property name="password" value="your DB password"/>
  </driver-properties>
  <maximum-connection-count>10</maximum-connection-count>
  <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
然后通过JAXPConfigurationè¯Õd–XMLæ–‡äšg:
JAXPConfigurator.configure("/WEB-INF/classes/proxool.xml",false);

(ä¸? 先通过Propertiesæ–‡äšg来设å®?例如:
jdbc-0.proxool.alias=Develop
jdbc-0.proxool.drvier-url=jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
jdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriver;
jdbc-0.user=your database username
jdbc-0.password=your database password
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
然后通过PropertyConfiguratorè¯Õd–Propertiesæ–‡äšg:
PropertyConfigurator.configure("/WEB-INF/classes/Proxool.properties");

(å›?在web.xmlä¸?通过servlet来设å®?æ–ÒŽ³•又有三种,前两¿Uæ˜¯æŒ‰ç…§æ ¼å¼æ¥çš„:
1.XMLæ–‡äšg
<servlet>
  <servlet-name>ServletConfigurator</servlet-name>
  <servlet-class>
     org.logicalcobwebs.proxool.configuration.ServletConfigurator
  </servlet-class>
  <init-param>
     <param-name>xmlFile</param-name>
     <param-value>WEB-INF/classes/Proxool.xml</param-value>
  </init-param>
  <load-on-start>1</load-on-start>
</servlet>

2.Propertiesæ–‡äšg
<servlet>
  <servlet-name>ServletConfigurator</servlet-name>
  <servlet-class>
     org.logicalcobwebs.proxool.configuration.ServletConfigurator
  </servlet-class>
  <init-param>
     <param-name>propertyFile</param-name>
     <param-value>WEB-INF/classes/Proxool.properties</param-value>
  </init-param>
  <load-on-start>1</load-on-start>
</servlet>

3.Init Prameter
<servlet>
  <servlet-name>ServletConfigurator</servlet-name>
  <servlet-class>
     org.logicalcobwebs.proxool.configuration.ServletConfigurator
  </servlet-class>
  <init-param>
     <init-name>jdbc-0.proxool.alias</init-param>
     <init-value>Develop</init-value>
  </init-param>
  <init-param>
     <init-name>jdbc-0.proxool.driver-rul</init-param>
     <init-value>
        jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
     </init-value>
  </init-param>
  <init-param>
     <init-name>jdbc-0.proxool.driver-class</init-param>
     <init-value>oracle.jdbc.driver.OracleDriver</init-value>
  <init-param>
</servlet>

廸™®®å¤§å®¶ä½¿ç”¨½W¬å››¿Uæ–¹æ³?好处在于当Container启动æ—?Proxool的参æ•îC¼šè‡ªåŠ¨è®‘Ö®šåŠ è²åˆ°å†…å­˜ä¸­,原因在于:
<servlet>
......ç•?br /><load-on-start>1</load-on-start>

一个完整的½CÞZ¾‹å¦‚下:
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">
.......�br />  <servlet>
     <servlet-name>ServletConfigurator</servlet-name>
     <servlet-class>
       org.logicalcobwebs.proxool.configuration.ServletConfigurator
     </servlet-class>
     <init-param>
       <param-name>propertyFile</param-name>
       <param-value>WEB-INF/classes/Proxool.properties</param-value>
     </init-param>
     <load-on-start>1</load-on-start>
  </servlet>
.......ç•?br /></web-app>

Proxool.proterties
jdbc-0.proxool.alias=Develop
jdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriver
jdbc-0.proxool.driver.url=jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
jdbc-0.proxool.maximum-connection-count=10
jdbc-0.proxool.prototype-count=4
jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
jdbc=0.proxool.verbose=true

我们可以用下面的Test Page来进行测�br />Proxool-config.jsp
____________________________________________________
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=gb2312"%>

<html>
    <head>
        <title>Proxool.jsp</title>
    </head>
    <body>
        <h2>使用Proxool.jsp</h2>
        <%
           Connection con=null;
           Statement stmt=null;
           ResultSet rs=null;
           
           String ename="";
           
           try
           {
             con=DriverManager.getConnection("proxool.Develop");             
             stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                      ResultSet.CONCUR_UPDATABLE);
             String query="select * from emp";
             rs=stmt.executeQuery(query);
             while(rs.next())
             {
               ename=rs.getString("ename");
      %>
        从emp表中取出姓名<%=ename%><br>
      <%
             }
             stmt.close();
             con.close();
           }
           catch(SQLException e)
           {
             out.println("发生异常"+e);
           }
           finally
           {
             try
             {
               if(con!=null)
               {
                 con.close();
               }
             }
             catch(SQLException ne)
             {
               out.println("SQLException:"+ne);
             }
           }
        %>
    </bdoy>
</html>
‹¹‹è¯•¾l“æžœä¸?
=====================================
使用Proxool.jsp
从emp表中取出姓名SMITH
从emp表中取出姓名ALLEN
从emp表中取出姓名WARD
从emp表中取出姓名JONES
从emp表中取出姓名MARTIN
从emp表中取出姓名BLAKE
从emp表中取出姓名CLARK
从emp表中取出姓名SCOTT
从emp表中取出姓名KING
从emp表中取出姓名TURNER
从emp表中取出姓名ADAMS
从emp表中取出姓名JAMES
从emp表中取出姓名FORD
从emp表中取出姓名MILLER
从emp表中取出姓名feiyang
从emp表中取出姓名yang
从emp表中取出姓名feifei
从emp表中取出姓名fei

Dalston.Young 2006-05-15 16:27 发表评论
]]>
JDNI---数据来源(Data Source)http://www.aygfsteel.com/DuYang/articles/46188.htmlDalston.YoungDalston.YoungMon, 15 May 2006 04:01:00 GMThttp://www.aygfsteel.com/DuYang/articles/46188.htmlhttp://www.aygfsteel.com/DuYang/comments/46188.htmlhttp://www.aygfsteel.com/DuYang/articles/46188.html#Feedback0http://www.aygfsteel.com/DuYang/comments/commentRss/46188.htmlhttp://www.aygfsteel.com/DuYang/services/trackbacks/46188.htmlTomcat下JNDI的配¾|?/font>

    JNDI全名为Java Naming and Directory Interface.JNDI主要提供应用½E‹åºæ‰€éœ€è¦èµ„源上命名与目录服åŠ?在Java EE环境ä¸?JNDI扮演了一个很重要的角è‰?
它提供了一个接口让用户在不知道资源所在位¾|®çš„æƒ…åÅžä¸?取得该资源服åŠ?
    ž®±å¥½æ¯”网¾lœç£ç›˜é©±åŠ¨å™¨çš„åŠŸèƒ½ä¸€æ —÷€‚如果有äºÞZº‹å…ˆå°†å¦ä¸€å°æœºå™¨ä¸Šçš„磁盘驱动器接到用户的机器上,用户在ä‹É用的时候根本就分èöL不出现在的驱动器是存在本ç«?
˜q˜æ˜¯åœ¨å¦ä¸€ç«¯çš„æœºå™¨ä¸?用户只需取得资源来用,æ ÒŽœ¬ž®×ƒ¸çŸ¥é“资源在什么地斏V€?br />    JNDI˜q™ä¸ªæŽ¥å£åŸºæœ¬ä¸Šæ˜¯LDAP,LDAP全名为Lightweight Directory Access Protocol.
    
    要设定JNDIçš„JDBC数据源和DBCP˜qžæŽ¥æ± éœ€è¦åšä»¥ä¸‹çš„å·¥ä½?(for example Oracle DataBase)

    一. 安装JDBC Driver
    ž®†ä½ DBçš„JDBC Driver部çÖv到{Tomcat_Install]\common\lib目录下ã€?br />    äº? 讑֮šTomcat下的server.xml
    修改{Tomcat_Install|\conf\server.xmlæ–‡äšg中你的站台标½{ùN‡Œçš?lt;Host></Host>之间的内å®?如下:
    server.xml
     <Host>
        <Context path="/Develop" docBase="Develop" debug="0" reloadable="true"               crossContext="true">
        <Resource name="jdbc/dy" auth="Container" type="javax.sql.DataSource"/>
            <ResourceParams name="jdbc/dy">
               <parameter>
                  <name>factory</name>
                  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
               </parameter>
               <parameter>
                  <name>driverClassName</name>
                  <value>oracle.jdbc.driver.OracleDriver</value>
               </parameter>
               <parameter>
                  <name>url</name>
                  <value>jdbc:oracle:thin:@yang:1521:orcl</value>
               </parameter>               
               <parameter>
                  <name>username</name>
                  <value>scott</value>
               </parameter>
               <parameter>
                  <name>password</name>
                  <value>ss</value>
               </parameter>
               <parameter>
                  <name>maxActive</name>
                  <value>20</value>
               </parameter>
               <parameter>
                  <name>maxIdle</name>
                  <value>10</value>
               </parameter>
               <parameter>
                  <name>maxWait</name>
                  <value>-1</value>
               </parameter>                                                                 
            </ResourceParams>
        </Context>
      </Host>
  上述½C‘Ö®šæ‰€è¡¨ç¤ºçš„æ„æ€æ˜¯åœ¨Develop站台ä¸?定义一个JDBC数据来源,名称为jdbc/dy.
  通过以下的代码来讄¡½®çš„这个jdbc/dy的数据来源和DBCP˜qžæŽ¥æ±?
  <parameter>
     <name>factory</name>
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  </parameter>
  讑֮šä½¿ç”¨DBCP˜qžæŽ¥æ±?˜q™æ˜¯æœ‰Jakarta Project¾l„织所制定的连接池½E‹åº,它一æ äh˜¯OpenSourceçš?
参数说明:
     <Context></Context>用于讄¡½®ä½ çš„站台.
     <Context>标签中的path="/Develop"代表¾|‘站名称,å? http://IP_DomaninName/Develop; docBase="Develop"代表站台的目录位¾|?debug则是讑֮šdebug level
     ,0表示提供最ž®‘的信息,9表示提供最都多的信æ?reloadable则表½CºTomcat执行æ—?当class,web.xml被更新时,都会自动重新加蝲,不需要重新启动Tomcat;
     maxActive表示˜qžæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“˜qžæŽ¥æ•?è®¾äØ“0表示无限åˆ?maxIdle表示讑֮š˜qžæŽ¥æ± ä¸­æœ€ž®èƒ½æœ‰å‡ ä¸ªConnection,è‹¥äØ“0表示不限åˆ?maxWait 最大徏立连接等待时间ã€?br />    如果­‘…过此时间将接到异常,è®¾äØ“åQ?表示无限åˆ?单位为ms;driverClassName JDBC驱动½E‹åº;url表示数据库连接字½W¦ä¸².

 ä¸? 讑֮šåº”用站台中的web.xml
 eg:讑֮šDevelopçš„web.xml如下:
  <resource-ref>
     <description>JNDI JDBC DataSource of Develop</description>   //一个描˜q?br />     <res-ref-name>jdbc/dy</res-ref-name>                        //˜q™é‡Œå¿…é¡»ä¸ÞZ½ ä¹‹å‰æŒ‡å®šçš?lt;ResourceParams name="jdbc/dy">
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
  </resource-ref>

 � 使用JDBC数据来源获得Connection对象
   Context initContext=new InitialContext();
   Context envContext=(Context)initContext.lookup("java:/comp/env");
   或�br />   Context envContext=(Context)initContext.lookup("java:comp/env");
   DataSourceds conn=(DataSource)envContext.lookup("jdbc/dy");
   conn=ds.getConnection();

按照˜q™å››ä¸ªæ­¥éª¤åšä¸‹æ¥å?那么你就可以写个Test Page来测试一下了.
Test Page1:
_________________________________________________________________________________________________________
testpool.jsp
<!--‹¹‹è¯•JNID数据源的配置-->
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
  DataSource ds=null;
  try
  {
      Context initCtx=new InitialContext();
      Context envCtx=(Context)initCtx.lookup("java:comp/env");
      //从Context中loopup 数据�br />      ds=(DataSource)envCtx.lookup("jdbc/dy");
      if(ds!=null)
      {
        out.println("已经获得DataSource!");
        out.println("<br>");
        Connection conn=ds.getConnection();
        Statement stmt=conn.createStatement();
        ResultSet rst=stmt.executeQuery("select * from emp");
        out.println("以下是从数据库里è¯Õd‡ºæ¥çš„æ•°æ®");
        out.println("<hr>");
        while(rst.next())
        {
          out.println("empName:"+rst.getString("ename"));
          out.println("<br>");
        }
      }
    else
        out.println("˜qžæŽ¥å¤ÞpÓ|");
  }
  catch(Exception e)
  {
      out.println(e);
  }
%>
如果成功那么输出¾l“æžœ:
========================================
已经获得DataSource!
以下是从数据库里è¯Õd‡ºæ¥çš„æ•°æ®:
empName:SMITH
empName:ALLEN
empName:WARD
empName:JONES
empName:MARTIN
empName:BLAKE
empName:CLARK
empName:SCOTT
empName:KING
empName:TURNER
empName:ADAMS
empName:JAMES
empName:FORD
empName:MILLER
empName:feiyang
empName:yang
empName:feifei
empName:fei


 



Dalston.Young 2006-05-15 12:01 发表评论
]]>
Image Maphttp://www.aygfsteel.com/DuYang/articles/45270.htmlDalston.YoungDalston.YoungTue, 09 May 2006 11:55:00 GMThttp://www.aygfsteel.com/DuYang/articles/45270.htmlhttp://www.aygfsteel.com/DuYang/comments/45270.htmlhttp://www.aygfsteel.com/DuYang/articles/45270.html#Feedback0http://www.aygfsteel.com/DuYang/comments/commentRss/45270.htmlhttp://www.aygfsteel.com/DuYang/services/trackbacks/45270.html
   å›¾è±¡åœ°å›¾åˆ†äØ“: 客户端图象地å›?服务器端图象地图.但是现在服务器端图象地图已经被前者给淘汰äº?什么是图象地图?把一òq…图è±?br />分成多个区域,每个区域指向不同的URL.例如:把一òq…中国地囄¡š„图象按照省䆾划成若干区域,˜q™äº›åŒºåŸŸè¢«ç§°ä¸ºçƒ­ç‚¹åŒºåŸ?点击热点区域ž®?br />可以链接到相关的地方,˜q™å°±æ˜¯å›¾è±¡åœ°å›?
   知道了概å¿?那怎么样äñ”生图象地囑֑¢?
1> 必须定义出图象上个热点区域的形状,位置坐标,及指向的URL地址信息,˜q™ä¸ª˜q‡ç¨‹å«å›¾è±¡çƒ­ç‚ÒŽ˜ ž®?图象热点映射需要ä‹Éç”?lt;map nam
   e=mapname></map>标签˜q›è¡Œè¯´æ˜Ž.其中nameå±žæ€§äØ“è¯¥å›¾è±¡çƒ­ç‚ÒŽ˜ ž®„指定了一个名¿U?
2> 图象热点映射中的各个区域ç”?lt;are>标签说明,<area>æ ‡ç­¾çš„æ ¼å¼äØ“: <area sharp="形状" coords="坐标" href=url>,也可ä»?br />   nohref替换href,表示该区域单击鼠标无æ•?<area>标签˜q˜å¯ä»¥æœ‰ä¸ªtarget属æ€?用来指名‹¹è§ˆå™¨å“ªä¸ªçª—口或侦中昄¡¤ºhref属性所
   指向的资�
3> 定义好图象热点后,接着ž®Þp¦åœ?lt;img>图象标签中增加一个名为usemap的属性设¾|?usemap属性指定该囑ÖŞ被用做图象地å›?其设¾|?br />   å€égؓ所使用的图象热点名¿U?
eg:
<img src="logo.gif" border="0" usemap="#mymap">
<map name=mymap>
<area shape="rect" coords="0,0,50,50" href="a.html">
<area shape="rect" coords="50,0,100,50" href="b.html">
<area shape="rect" coords="100,0,150,50" href="c.html">
</map>
sharp属性的讄¡½®è¯´æ˜Ž:
.rect 定义一个矩形区åŸ?coords属性设¾|®äؓ矩åŞ的左上角,右下角的坐标,各个坐标之间用逗号隔开.
.poly 定义一个多边åŞ区域,coords属性设¾|®äؓ多边形个™å¶ç‚¹çš„坐标å€?
.circle 定义了一个圆形区åŸ?coords属性设¾|®äؓ圆心坐标及半å¾?å‰ä¸¤ä¸ªå‚æ•°åˆ†åˆ«äØ“åœ†å¿ƒçš„æ¨ª,¾Uµåæ ?½W¬ä¸‰ä¸ªå‚æ•îCؓ半径.
eg:
<map name="mymap">
<area sharp="rect" href="a.html" coords="140,20,280,60">
<area sharp="poly" href="b.html" coords="80,100,60">
<area sharp="circle" href="c.html" coords="100,100,180,80,200,140">
</map>



Dalston.Young 2006-05-09 19:55 发表评论
]]>
分页昄¡¤ºçš„è§£å†Ïx–¹æ¡?/title><link>http://www.aygfsteel.com/DuYang/articles/44579.html</link><dc:creator>Dalston.Young</dc:creator><author>Dalston.Young</author><pubDate>Fri, 05 May 2006 00:01:00 GMT</pubDate><guid>http://www.aygfsteel.com/DuYang/articles/44579.html</guid><wfw:comment>http://www.aygfsteel.com/DuYang/comments/44579.html</wfw:comment><comments>http://www.aygfsteel.com/DuYang/articles/44579.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/DuYang/comments/commentRss/44579.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/DuYang/services/trackbacks/44579.html</trackback:ping><description><![CDATA[ <p>在JSP开发中,¾lå¸¸é‡åˆ°æ•°æ®çš„æŸ¥è¯¢é—®é¢?当查询结果非常多æ—?ž®±éœ€è¦è¿›è¡Œåˆ†™å‰|˜¾½C?有两¿Uæ–¹æ¡ˆè§£å†?一是把所有的资料都查询出æ?然后在每™åµä¸­æ˜„¡¤ºæŒ‡å®šèµ„æ–™;另一¿Uæ˜¯å¤šæ¬¡æŸ¥è¯¢æ•°æ®åº?每次获得本页的数æ?考虑到数据往往是大量甚è‡Ïx˜¯‹¹·é‡,如果一‹Æ¡æ€§çš„获取,那么˜q™äº›æ•°æ®å¿…然占用大量的服务器资源,使系¾lŸçš„æ€§èƒ½å¤§å¤§é™ä½Ž..</p> <p>=======™åµé¢æŽ§åˆ¶çš„JavaBean======</p> <p>/*<br /> * JavaBean.java<br /> *<br /> * Created on 2006òq?æœ?4æ—? 下午3:00<br /> *<br /> * To change this template, choose Tools | Template Manager<br /> * and open the template in the editor.<br /> */</p> <p>package jspdev;</p> <p>import java.util.Vector;<br />/**<br /> *<br /> * @author DuYang<br /> */<br />public class PageBean {<br />    public int curPage; //当前是第几页<br />    public int maxPage; //一共有多少™å?br />    public int maxRowCount; //一共多ž®‘行<br />    public int rowsPerPage=5; //每页多少è¡?br />    public java.util.Vector data; //本页中要昄¡¤ºçš„资æ–?br />    public PageBean() {<br />    }<br />    public void countMaxPage()<br />    { //æ ÒŽ®æ€»è¡Œæ•°è®¡½Ž—总页æ•?br />        if(this.maxRowCount % this.rowsPerPage==0)<br />        {<br />            this.maxPage=this.maxRowCount/this.rowsPerPage;<br />        }<br />        else<br />        {<br />            this.maxPage=this.maxRowCount/this.rowsPerPage+1;<br />        }<br />    }<br />    public Vector getResult()<br />    {<br />        return this.data;   //˜q”回当前的资æ–?br />    }<br />    public PageBean(ContactBean contact) throws Exception<br />    {<br />        this.maxRowCount=contact.getAvailableCount(); //得到æ€Èš„行数<br />        this.date=contact.getResult();<br />        this.countMaxPage();<br />    }<br />}<br />=========处理业务逻辑的ContactBean==========</p> <p>/*<br /> * ContactBean.java<br /> *<br /> * Created on 2006òq?æœ?4æ—? 下午3:12<br /> *<br /> * To change this template, choose Tools | Template Manager<br /> * and open the template in the editor.<br /> */</p> <p>package jspdev;</p> <p>import java.util.*;<br />import java.sql.*;<br />/**<br /> *<br /> * @author DuYang<br /> */<br />public class ContactBean {<br />    private Connection con;<br />    Vector v;<br />    /**<br />     *构造方æ³?br />     *创徏数据库连æŽ?br />     *初始化一个vector<br />     */<br />    public ContactBean() throws Exception {<br />        con=DatabaseConn.getConnection();<br />        v=new Vector();<br />    }<br />    /**<br />     *˜q”回查询的记录数<br />     */<br />    public int getAvailableCount()throws Exception<br />    {<br />        int ret=0;<br />        Statement stmt=conn.createStatement();<br />        String sql="select count(*) from contact";<br />        ResultSet rest=stmt.executeQuery(sql);<br />        while(rest.next())<br />        {<br />            ret=rest.getInt(1);<br />        }<br />        return ret;<br />    }<br />    /**<br />     *获得指定的页面数据,òq¶ä¸”ž®è£…在PageBean中返å›?br />     */<br />    public PageBean listDate(String page)throws Exception<br />    {<br />      try<br />      {<br />          PageBean pageBean=new PageBean(this);<br />          int pageNum=Integer.parseInt(page);<br />          Statement stmt=conn.createStatement();<br />          /**注意åQ?查询(pageNum-1)*pageBean.rowsPerPageåˆ?br />           *(pageNum-1)*pageBean.rowsPerPage之间的数据,<br />           *˜q™é‡Œåªæ˜¯ä¸€ä¸ªç®€å•的实现方式<br />           */<br />          String strSql="select top"+pageNum*pageBean.rowsPerPage+"*from contact order by userName";<br />          ResultSet rset=stmt.executeQuery(strSql);<br />          int i=0;<br />          while(rset.next())<br />          {<br />              if(i>(pageNum-1)*pageBean.rowsPerPage-1)<br />              {<br />                  Object[] obj=new Object[6];<br />                  obj[0]=rset.getString("userName");<br />                  obj[1]=new Integer(rset.getInt("mobile"));<br />                  obj[2]=rset.getString("phone");<br />                  obj[3]=rset.getString("mail");<br />                  obj[4]=rset.getDate("lastcontact");<br />                  obj[5]=rset.getString("men");<br />                  v.add(obj);<br />              }<br />              i++;<br />          }<br />          rset.close();<br />          stmt.close();<br />          <br />         pageBean.curPage=pageNum;<br />         pageBean.data=v;<br />         return pageBean;<br />      }<br />      catch(Exception e)<br />         {<br />             e.printStackTrace();<br />             throw e;<br />         }<br />    }<br />    /**<br />     *˜q”回¾l“æžœé›?br />     */<br />    public Vector getResult()throws Exception<br />    {<br />        return v;<br />    }<br />}<br />=======控制器Servlet==========</p> <p>/*<br /> * ContactServlet.java<br /> *<br /> * Created on 2006òq?æœ?4æ—? 下午3:44<br /> *<br /> * To change this template, choose Tools | Template Manager<br /> * and open the template in the editor.<br /> */</p> <p>package jspdev;</p> <p>import javax.servlet.http.*;<br />import java.io.*;<br />/**<br /> *<br /> * @author DuYang<br /> */<br />public class ContactServlet extends javax.servlet.http.HttpServlet{<br />    /**<br />     *处理客户端请æ±?br />     */    <br />    public void doPost(HttpServletRequest request,HttpServletResponse response)throws javax.servlet.ServletException,IOException<br />    {<br />        response.setContentType("text/html");<br />        PrintWriter out=response.getWriter();<br />        try<br />        {<br />            ContactBean contact=new ContactBean();<br />            PageBean pageCtl=contact.listDate((String)request.getParameter("jumpPage"));<br />            //把PageBean保存在requestä¸?br />            request.setAttribute("pageCtl",pageCtl);<br />        }<br />        catch(Exception e)<br />        {<br />            e.printStackTrace();<br />        }<br />        //把试图派发到目的<br />        javax.servlet.RequestDispatcher dis=request.getRequestDispatcher("/viewcontact");<br />        dis.forward(request,response);<br />    }<br />   public void doGet(HttpServletRequest request,HttpServletResponse response)throws javax.servlet.ServletException,IOException<br />   {<br />       doGet(request,response);<br />   }<br />}<br />=======使用¾˜»é¡µçš„JSPæ–‡äšg==========</p> <p><jsp:useBean id="pageCtl" class="jspdev.PageBean" scope="request"/><br /> <table border="1"><br />  <% <br />  java.util.Vector v=pageCtl.getResult();<br />  java.util.Enumeration e=v.elements();<br />  while(e.hasMoreElement())<br />  {<br />  Object[] obj=(Object)e.nextElement();<br />  %><br />  <tr><br />   <td align="center" width="95%"><%=obj[0]%></td><br />   <td align="center" width="95%"><%=obj[1]%></td><br />   <td align="center" width="95%"><%=obj[2]%></td><br />   <td align="center" width="95%"><%=obj[3]%></td><br />   <td align="center" width="95%"><%=obj[4]%></td><br />   <td align="center" width="95%"><%=obj[5]%></td>               <br />  </tr><br />  <% } %><br /> </table><br /> <%if(pageCtl.maxPage!=1){%><br /> <form name="PageForm" action="/ch13/servlet/contactservlet" method="post"><br />  <<a href="mailto:%@include">%@include</a> file="/pageman.jsp"%><br /> </form><br /> <%}%></p> <p>======可重用的¾l„äšg在你需要分™å늚„地方都可以ä‹É用它=======</p> <p><script language="javascript"><br /> <!--<br />   function Jumping()<br />   {<br />    document.PageForm.submit();<br />    return;<br />   }<br />   function gotoPage(pagenum)<br />   {<br />    document.PageForm.jumpPage.value=pagenum;<br />    document.PageForm.submit();<br />    return;<br />   }<br /> --><br /> </script><br /> <br /> 每页<%=pageCtl.rowsPerPage%>è¡?br /> å…?lt;%=pageCtl.maxRowCount%>è¡?br /> ½W?lt;%=pageCtl.curPage%>™å?br /> å…?lt;%=pageCtl.maxPage%>™å?br /> <br><br /> <%if(pageCtl.curPage==1){out.print("首页 上一™å?);}<br />else<br /> { %><br /> <a href="javascript:gotoPage(1)">首页</a><br /> <a href="javascript:gogoPage(<%=pageCur.curPage-1%>)"上一™å?lt;/a><br /> <%}%><br /> <%if(pageCtl.curPage==pageCtl.maxPage){out.print("下一™å?ž®ùN¡µ");}<br />else<br /> {%><br /> <a href="javascript:gotoPage(<%=pageCtl.curPage+1)">下一™å?lt;/a><br />  <a href="javascript:gotoPage(<%=pageCtl.maxPage)">ž®ùN¡µ</a><br /><%}%></p> <p> 转到½W?lt;select name="jumpPage" onchange="Jumping()"><br />     <% for(int i=1;i<pageCtl.maxPage;i++)<br />     {<br />       if(i==pageCtl.curPage)<br />       {<br />       %><br />       <option selected value=<%=i%>><%=i%></option><br />      <%} else{%><br />      <option value=<%=i%>><%=i%></option><br />      <%}}%><br />     </select>™å?/p> <img src ="http://www.aygfsteel.com/DuYang/aggbug/44579.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/DuYang/" target="_blank">Dalston.Young</a> 2006-05-05 08:01 <a href="http://www.aygfsteel.com/DuYang/articles/44579.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">Ó¯½­ÏØ</a>| <a href="http://" target="_blank">Á°Ë®ÏØ</a>| <a href="http://" target="_blank">ÎĵÇÊÐ</a>| <a href="http://" target="_blank">Á¬ÄÏ</a>| <a href="http://" target="_blank">ÂÛ̳</a>| <a href="http://" target="_blank">¶¨ÌÕÏØ</a>| <a href="http://" target="_blank">¿Æ¼¼</a>| <a href="http://" target="_blank">¼Ñľ˹ÊÐ</a>| <a href="http://" target="_blank">×ó¹±ÏØ</a>| <a href="http://" target="_blank">ËÞËÉÏØ</a>| <a href="http://" target="_blank">»ªÈÝÏØ</a>| <a href="http://" target="_blank">³¤ÎäÏØ</a>| <a href="http://" target="_blank">×Ô¹±ÊÐ</a>| <a href="http://" target="_blank">ÏØ¼¶ÊÐ</a>| <a href="http://" target="_blank">Î÷ÎÚÖéÄÂÇ߯ì</a>| <a href="http://" target="_blank">ä»Ë®ÏØ</a>| <a href="http://" target="_blank">¶«Ã÷ÏØ</a>| <a href="http://" target="_blank">º³ÇÊÐ</a>| <a href="http://" target="_blank">À½²×</a>| <a href="http://" target="_blank">µÂ²ýÏØ</a>| <a href="http://" target="_blank">¸§Ô¶ÏØ</a>| <a href="http://" target="_blank">´óÁ¬ÊÐ</a>| <a href="http://" target="_blank">ÃÏ´å</a>| <a href="http://" target="_blank">µ¦³ÇÏØ</a>| <a href="http://" target="_blank">ºÚºÓÊÐ</a>| <a href="http://" target="_blank">±£¿µÏØ</a>| <a href="http://" target="_blank">É̶¼ÏØ</a>| <a href="http://" target="_blank">ºÏ×÷ÊÐ</a>| <a href="http://" target="_blank">ͬ½­ÊÐ</a>| <a href="http://" target="_blank">Ðí²ýÏØ</a>| <a href="http://" target="_blank">ÁÙÏÄÏØ</a>| <a href="http://" target="_blank">ÃÅÍ·¹µÇø</a>| <a href="http://" target="_blank">ƽ²ýÏØ</a>| <a href="http://" target="_blank">±¨¼Û</a>| <a href="http://" target="_blank">ǨÎ÷ÏØ</a>| <a href="http://" target="_blank">·±²ýÏØ</a>| <a href="http://" target="_blank">Ã÷ÏªÏØ</a>| <a href="http://" target="_blank">¸£ÇåÊÐ</a>| <a href="http://" target="_blank">Íú²ÔÏØ</a>| <a href="http://" target="_blank">Ó¢É½ÏØ</a>| <a href="http://" target="_blank">ÖîôßÊÐ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>