锘??xml version="1.0" encoding="utf-8" standalone="yes"?>无码专区—VA亚洲V天堂,亚洲av无码片在线播放,亚洲AV无码AV日韩AV网站http://www.tkk7.com/balajinima/category/26961.htmlzh-cnThu, 21 Feb 2008 19:32:22 GMTThu, 21 Feb 2008 19:32:22 GMT60閫氳繃Map鍙栨彁浜ょ殑琛ㄥ崟鍩熷?/title><link>http://www.tkk7.com/balajinima/articles/181106.html</link><dc:creator>鏉庝簯娉?/dc:creator><author>鏉庝簯娉?/author><pubDate>Thu, 21 Feb 2008 09:27:00 GMT</pubDate><guid>http://www.tkk7.com/balajinima/articles/181106.html</guid><wfw:comment>http://www.tkk7.com/balajinima/comments/181106.html</wfw:comment><comments>http://www.tkk7.com/balajinima/articles/181106.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/balajinima/comments/commentRss/181106.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/balajinima/services/trackbacks/181106.html</trackback:ping><description><![CDATA[ <p>import java.util.Enumeration;<br />import java.util.HashMap;<br />import java.util.Map;</p> <p>import javax.servlet.http.HttpServletRequest;</p> <p>import com.mdcl.mocha.fe.developer.template.util.TemplateUtil;</p> <p>public class ParamUtil {</p> <p>聽/**<br />聽 * 鎶妑equest鍙栧埌鐨勫弬鏁版斁鍒頒竴涓狹ap涓?br />聽 * @param request<br />聽 * @return<br />聽 */<br />聽public static Map parseRequest(HttpServletRequest request){<br />聽聽Map map = new HashMap();<br />聽聽String key = null;<br />聽聽String value = null;<br />聽聽聽聽聽聽聽 for(Enumeration enumeration = request.getParameterNames(); enumeration.hasMoreElements(); map.put(key, value))<br />聽聽聽聽聽聽聽 {<br />聽聽聽聽聽聽聽聽聽聽聽 key = (String)enumeration.nextElement();<br />聽聽聽聽聽聽聽聽聽聽聽 String as[] = request.getParameterValues(key);<br />聽聽聽聽聽聽聽聽聽聽聽 value = as[0];<br />聽聽聽聽聽聽聽聽聽聽聽 for(int i = 1; i < as.length; i++)<br />聽聽聽聽聽聽聽聽聽聽聽 聽value = value + "," +as[i];</p> <p>聽聽聽聽聽聽聽 }<br />聽聽return map;<br />聽}<br />}<br /></p> <img src ="http://www.tkk7.com/balajinima/aggbug/181106.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/balajinima/" target="_blank">鏉庝簯娉?/a> 2008-02-21 17:27 <a href="http://www.tkk7.com/balajinima/articles/181106.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>java鍒ゆ柇鎿嶄綔緋葷粺http://www.tkk7.com/balajinima/articles/178792.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Fri, 01 Feb 2008 02:13:00 GMThttp://www.tkk7.com/balajinima/articles/178792.htmlhttp://www.tkk7.com/balajinima/comments/178792.htmlhttp://www.tkk7.com/balajinima/articles/178792.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/178792.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/178792.htmlimport java.net.URL;

public class OS {
聽public static final String CLASS_PATH;
聽public static final boolean isLinux;
聽static {
聽聽URL resource = OS.class.getResource("OS.class");
聽聽String classPath = resource.getPath();
聽聽String className = OS.class.getName().replace('.', '/') + ".class";
聽聽String classesPath = classPath.substring(0, classPath.indexOf(className));
聽聽
聽聽if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") != -1&& classesPath.startsWith("/")) {
聽聽聽classesPath = classesPath.substring(1);
聽聽聽isLinux = false;
聽聽} else {
聽聽聽isLinux = true;
聽聽}
聽聽CLASS_PATH = classesPath;
聽}

聽public static void main(String arg[]){
聽聽
聽聽System.out.println(OS.isLinux);
聽}
}



]]>
jsp鏌ョ湅session淇℃伅http://www.tkk7.com/balajinima/articles/165409.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Wed, 05 Dec 2007 02:29:00 GMThttp://www.tkk7.com/balajinima/articles/165409.htmlhttp://www.tkk7.com/balajinima/comments/165409.htmlhttp://www.tkk7.com/balajinima/articles/165409.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/165409.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/165409.html<%@ page language="java" contentType="text/html; charset=GBK"
聽import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>Insert title here</title>
</head>
<body>
<%
out.print("<br>"+"session is new:"+session.isNew());

Date created = new Date(session.getCreationTime());
//寰楀埌session瀵硅薄鍒涘緩鐨勬椂闂?br />Date accessed = new Date(session.getLastAccessedTime());
//寰楀埌鏈鍚庤闂session瀵硅薄鐨勬椂闂?br />out.println("<br>"+"ID " + session.getId()+" ");
//寰楀埌璇ession鐨刬d錛屽茍鎵撳嵃
out.println("<br>"+"Created: " + created+" ");
//鎵撳嵃session鍒涘緩鏃墮棿
out.println("<br>"+"Last Accessed: " + accessed+" ");
//鎵撳嵃鏈鍚庤闂椂闂?/p>

session.setAttribute("Name","Tom");
//鍦╯ession涓坊鍔犲彉閲廚ame=Tom
session.setAttribute("UID","12345678");
//鍦╯ession涓坊鍔犲彉閲廢ID=12345678

Enumeration e = session.getAttributeNames();
//寰楀埌session涓彉閲忓悕鐨勬灇涓懼璞?br />while (e.hasMoreElements()) { //閬嶅巻姣忎竴涓彉閲?br />String name = (String)e.nextElement(); //棣栧厛寰楀埌鍚嶅瓧
String value = session.getAttribute(name).toString();
//鐢卞悕瀛椾粠session涓緱鍒板?br />out.println("<br>"+name + " = " + value+" "); //鎵撳嵃
}

%>
</body>
</html>



]]>
鏈夌儹鐐圭殑JfreeChart鏌卞瀷鍥撅紙鍘熷垱錛?/title><link>http://www.tkk7.com/balajinima/articles/165086.html</link><dc:creator>鏉庝簯娉?/dc:creator><author>鏉庝簯娉?/author><pubDate>Tue, 04 Dec 2007 01:57:00 GMT</pubDate><guid>http://www.tkk7.com/balajinima/articles/165086.html</guid><wfw:comment>http://www.tkk7.com/balajinima/comments/165086.html</wfw:comment><comments>http://www.tkk7.com/balajinima/articles/165086.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/balajinima/comments/commentRss/165086.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/balajinima/services/trackbacks/165086.html</trackback:ping><description><![CDATA[ <p> <img src="http://www.tkk7.com/images/blogjava_net/balajinima/26977/r_chart.JPG" /> <br /> <br />瀹炵幇鏂瑰紡錛歫sp+javabean<br />鐗堟湰 錛歫freechart-1.0.8<br />web-inf錛氳緗?br />=====================================<br /><servlet><br />聽聽<servlet-name>DisplayChart</servlet-name><br />聽聽<servlet-class><br />聽聽聽org.jfree.chart.servlet.DisplayChart<br />聽聽</servlet-class><br />聽</servlet><br />聽<servlet-mapping><br />聽聽<servlet-name>DisplayChart</servlet-name><br />聽聽<url-pattern>/servlet/DisplayChart</url-pattern><br />聽</servlet-mapping><br />======================================<br />jsp鏂囦歡錛?br />=========================================================================<br /><%@ page language="java" contentType="text/html; charset=GBK"<br />聽pageEncoding="GBK"%><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br /><html><br /><head><br /><meta http-equiv="Content-Type" content="text/html; charset=GBK"><br /><title>Insert title here</title></p> <p><script language="javascript"><br />function overlib(s){<br />聽document.all.ChartTip.style.display="block";<br />聽top.document.getElementById('ChartTip').innerHTML=s;<br />聽document.all.ChartTip.style.left=document.body.scrollLeft+event.x;<br />聽document.all.ChartTip.style.top=document.body.scrollTop+event.y-20;<br />}<br />function nd(s){<br />聽document.all.ChartTip.style.display="none";<br />}<br /></script><br /><jsp:useBean id="barchart01" scope="session"<br />聽class="com.mdcl.fso.homepage.chart.BarChart01" /><br /></head><br /><body><br /><%<br />聽String fileName = barchart01.drawPic(request.getSession(), out);<br />聽String graphURL = request.getContextPath()<br />聽聽聽+ "/servlet/DisplayChart?filename=" + fileName;<br />%><br /><br /><br /><img src="<%= graphURL %>" border="0" usemap="#<%=fileName %>" /><br /><br /><br /><div id="ChartTip"<br />聽style="position:absolute; font-family:'瀹嬩綋'; font-size: 12px;line-height: 20px;background-color:#FFFFEC; border: 1px solid #999999;display:none;left:0px;top:1px;">嫻嬭瘯鏄劇ず</div><br /></body><br /></html><br />=========================================================================<br />java鏂囦歡<br />=========================================================================<br />package com.mdcl.fso.homepage.chart;</p> <p>import org.jfree.chart.ChartFactory;<br />import org.jfree.chart.ChartRenderingInfo;<br />import org.jfree.chart.ChartUtilities;<br />import org.jfree.chart.JFreeChart;<br />import org.jfree.chart.plot.PlotOrientation;<br />import org.jfree.data.category.DefaultCategoryDataset;<br />import java.awt.Color;<br />import java.awt.Font;<br />import java.io.IOException;<br />import java.io.OutputStream;<br />import java.io.PrintWriter;</p> <p>import org.jfree.chart.renderer.category.BarRenderer3D;<br />import org.jfree.chart.servlet.ServletUtilities;<br />import org.jfree.chart.urls.StandardCategoryURLGenerator;<br />import org.jfree.chart.urls.StandardPieURLGenerator;<br />import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;<br />import org.jfree.chart.axis.AxisLocation;<br />import org.jfree.chart.axis.CategoryAxis;<br />import org.jfree.chart.entity.StandardEntityCollection;<br />import org.jfree.chart.plot.CategoryPlot;<br />import org.jfree.chart.labels.*;<br />import org.jfree.ui.*;<br />import java.util.*;</p> <p>import javax.servlet.http.HttpSession;<br />import javax.servlet.http.HttpServletResponse;<br />import javax.servlet.jsp.JspWriter;</p> <p>import com.mdcl.fso.homepage.*;</p> <p>public class BarChart01 {</p> <p>聽private static DefaultCategoryDataset dataset = new DefaultCategoryDataset();</p> <p>聽private DefaultCategoryDataset getDataset() {// 鍙栨暟鎹?/p> <p>聽聽List expense = new ArrayList();<br />聽聽String sql = "select ftr.organ_id ,fs.dept_name,ftr.subject_id,fft.finance_type_name,ftr.rpt_date ,ftr.rpt_data "<br />聽聽聽聽+ "from fso_t_rpt_expense ftr,fso_sdept fs,fso_finance_type fft "<br />聽聽聽聽+ "where ftr.type_id='D' "<br />聽聽聽聽+ "and ftr.organ_id=fs.dept_id聽 "<br />聽聽聽聽+ "and ftr.rpt_date='2007-08' "<br />聽聽聽聽+ "and fft.finance_type_id=ftr.subject_id聽 "<br />聽聽聽聽+ "and ftr.organ_id='1140'";</p> <p>聽聽expense = DBDao.DbQueryExpense(sql);<br />聽聽for (int i = 0; i < expense.size(); i++) {<br />聽聽聽HashMap param = new HashMap();<br />聽聽聽param = (HashMap) expense.get(i);</p> <p>聽聽聽double dt = Double.parseDouble(String.valueOf(param.get("rpt_data")));<br />聽聽聽String a = (String) param.get("organ");<br />聽聽聽String b = (String) param.get("subject");</p> <p>聽聽聽dataset.addValue(dt, a, b);<br />聽聽}</p> <p>聽聽return dataset;</p> <p>聽}</p> <p>聽public String drawPic(HttpSession session, JspWriter out) {<br />聽聽String fileName = null;<br />聽聽JFreeChart chart = ChartFactory.createBarChart3D("2007-08鎴愭湰緇熻", "璐圭敤綾誨瀷",<br />聽聽聽聽"閲戦錛堝崟浣嶏細鍏冿級", getDataset(), PlotOrientation.VERTICAL, true, true,<br />聽聽聽聽true);<br />聽聽chart.setBackgroundPaint(Color.WHITE);</p> <p>聽聽CategoryPlot plot = chart.getCategoryPlot();// 鑾峰彇緇樺浘鍖?/p> <p>聽聽plot.setBackgroundPaint(new Color(255, 255, 255)); // 璁劇疆緇樺浘鍖鴻儗鏅壊</p> <p>聽聽plot.setRangeGridlinePaint(Color.gray); // 璁劇疆姘村鉤鏂瑰悜鑳屾櫙綰塊鑹?/p> <p>聽聽plot.setRangeGridlinesVisible(true); // 璁劇疆鏄惁鏄劇ず姘村鉤鏂瑰悜鑳屾櫙綰?榛樿鍊間負True</p> <p>聽聽plot.setDomainGridlinePaint(Color.black); // 璁劇疆鍨傜洿鏂瑰悜鑳屾櫙綰塊鑹?/p> <p>聽聽// plot.setDomainGridlinesVisible(true); // 璁劇疆鏄惁鏄劇ず鍨傜洿鏂瑰悜鑳屾櫙綰?榛樿鍊間負False</p> <p>聽聽CategoryAxis domainAxis = plot.getDomainAxis();// 鑾峰彇緇熻縐嶇被杞存爣棰橈紙X杞達級</p> <p>聽聽plot.setDomainAxis(domainAxis);// 娣誨姞X杞?/p> <p>聽聽BarRenderer3D renderer = new BarRenderer3D();// 鑾峰緱BarRenderer3D綾葷殑瀹炰緥錛岀洰鐨勬槸璁劇疆鏌卞艦鐨勭粯鍒跺睘鎬?/p> <p>聽聽renderer.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());//</p> <p>聽聽renderer.setBaseItemURLGenerator(new StandardCategoryURLGenerator("index2.jsp"));// 鐢熸垚鐑偣,鐢ㄤ簬閾炬帴</p> <p>聽聽renderer.setItemMargin(0.1);// 璁劇疆姣忎釜緇勬墍鍖呭惈鐨勫鉤琛屾煴鐨勪箣闂磋窛紱?/p> <p>聽聽renderer.setSeriesPaint(0, Color.GREEN);// 璁劇疆鏌卞瓙鐨勯鑹?br />聽聽renderer.setSeriesPaint(1, Color.blue);// 璁劇疆鏌卞瓙鐨勯鑹?/p> <p>聽聽renderer.setBaseOutlinePaint(Color.BLACK);</p> <p>聽聽renderer.setWallPaint(Color.gray);// 璁劇疆 Wall 鐨勯鑹?/p> <p>聽聽renderer.setItemLabelAnchorOffset(10D);// 璁劇疆鏌卞艦鍥句笂鐨勬枃瀛楀亸紱誨?/p> <p>聽聽renderer.setBaseItemLabelFont(new Font("arial", Font.PLAIN, 10), true);// 璁劇疆鏌卞艦鍥句笂鐨勬枃瀛?/p> <p>聽聽renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());// //鏄劇ず姣忎釜鏌辯殑鏁板鹼紝騫朵慨鏀硅鏁板肩殑瀛椾綋灞炴?/p> <p>聽聽renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));</p> <p>聽聽renderer.setBaseItemLabelsVisible(true);</p> <p>聽聽renderer.setMaximumBarWidth(0.050000000000000003D);</p> <p>聽聽plot.setRenderer(renderer);</p> <p>聽聽plot.setForegroundAlpha(0.80f);// 璁劇疆鏌辯殑閫忔槑搴?/p> <p>聽聽// plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);//璁劇疆鏄劇ず浣嶇疆</p> <p>聽聽plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);// 璁劇疆鏄劇ず浣嶇疆</p> <p>聽聽try {</p> <p>聽聽聽PrintWriter pw = new PrintWriter(out);</p> <p>聽聽聽StandardEntityCollection sec = new StandardEntityCollection();<br />聽聽聽ChartRenderingInfo info = new ChartRenderingInfo(sec);</p> <p>聽聽聽fileName = ServletUtilities.saveChartAsPNG(chart, 640, 400, info,<br />聽聽聽聽聽session);<br />聽聽聽// ChartUtilities.writeChartAsPNG(op,chart, 640, 400, info,true,0);<br />聽聽聽ChartUtilities.writeImageMap(pw, fileName, info, true);<br />聽聽} catch (IOException e) {<br />聽聽聽// TODO Auto-generated catch block<br />聽聽聽e.printStackTrace();<br />聽聽}</p> <p>聽聽return fileName;</p> <p>聽}</p> <p>}<br />=========================================================================<br /><br /><br /></p> <img src ="http://www.tkk7.com/balajinima/aggbug/165086.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/balajinima/" target="_blank">鏉庝簯娉?/a> 2007-12-04 09:57 <a href="http://www.tkk7.com/balajinima/articles/165086.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>JSP楠岃瘉鐮佺敓鎴?http://www.tkk7.com/balajinima/articles/146891.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Thu, 20 Sep 2007 11:32:00 GMThttp://www.tkk7.com/balajinima/articles/146891.htmlhttp://www.tkk7.com/balajinima/comments/146891.htmlhttp://www.tkk7.com/balajinima/articles/146891.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/146891.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/146891.htmljava 浠g爜
  1. <%@聽page 聽聽
  2. 聽聽聽聽聽聽聽聽 import = "java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> 聽聽
  3. <%@聽page聽 import = "java.io.OutputStream" %> 聽聽
  4. <%@聽page聽pageEncoding= "UTF-8" %> 聽聽
  5. <%!Color聽getRandColor( int 聽fc,聽 int 聽bc)聽{ 聽聽
  6. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Random聽random聽=聽 new 聽Random(); 聽聽
  7. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(fc聽>聽 255 ) 聽聽
  8. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽fc聽=聽 255 ; 聽聽
  9. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if 聽(bc聽>聽 255 ) 聽聽
  10. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽bc聽=聽 255 ; 聽聽
  11. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽r聽=聽fc聽+聽random.nextInt(bc聽-聽fc); 聽聽
  12. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽g聽=聽fc聽+聽random.nextInt(bc聽-聽fc); 聽聽
  13. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽b聽=聽fc聽+聽random.nextInt(bc聽-聽fc); 聽聽
  14. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return new 聽Color(r,聽g,聽b); 聽聽
  15. 聽聽聽聽聽聽聽聽}%> 聽聽
  16. <% 聽聽
  17. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 try 聽{ 聽聽
  18. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽response.setHeader( "Pragma" ,聽 "No-cache" ); 聽聽
  19. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽response.setHeader( "Cache-Control" ,聽 "no-cache" ); 聽聽
  20. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽response.setDateHeader( "Expires" ,聽 0 ); 聽聽
  21. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽width聽=聽 60 ,聽height聽=聽 20 ; 聽聽
  22. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽BufferedImage聽image聽=聽 new 聽BufferedImage(width,聽height, 聽聽
  23. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽BufferedImage.TYPE_INT_RGB); 聽聽
  24. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽OutputStream聽os聽=聽response.getOutputStream(); 聽聽
  25. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Graphics聽g聽=聽image.getGraphics(); 聽聽
  26. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽Random聽random聽=聽 new 聽Random(); 聽聽
  27. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.setColor(getRandColor( 200 ,聽 250 )); 聽聽
  28. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.fillRect( 0 ,聽 0 ,聽width,聽height); 聽聽
  29. 聽聽
  30. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.setFont( new 聽Font( "Times聽New聽Roman" ,聽Font.PLAIN,聽 18 )); 聽聽
  31. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.setColor(getRandColor( 160 ,聽 200 )); 聽聽
  32. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for 聽( int 聽i聽=聽 0 ;聽i聽<聽 155 ;聽i++)聽{ 聽聽
  33. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽x聽=聽random.nextInt(width); 聽聽
  34. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽y聽=聽random.nextInt(height); 聽聽
  35. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽xl聽=聽random.nextInt( 12 ); 聽聽
  36. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int 聽yl聽=聽random.nextInt( 12 ); 聽聽
  37. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.drawLine(x,聽y,聽x聽+聽xl,聽y聽+聽yl); 聽聽
  38. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽
  39. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽String聽sRand聽=聽 "" ; 聽聽
  40. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for 聽( int 聽i聽=聽 0 ;聽i聽<聽 4 ;聽i++)聽{ 聽聽
  41. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽String聽rand聽=聽String.valueOf(random.nextInt( 10 )); 聽聽
  42. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sRand聽+=聽rand; 聽聽
  43. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.setColor( new 聽Color( 20 聽+聽random.nextInt( 110 ),聽 20 聽+聽random 聽聽
  44. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽.nextInt( 110 ),聽 20 聽+聽random.nextInt( 110 ))); 聽聽
  45. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.drawString(rand,聽 13 聽*聽i聽+聽 6 ,聽 16 ); 聽聽
  46. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽} 聽聽
  47. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽session.setAttribute( "rand" ,聽sRand); 聽聽
  48. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽g.dispose(); 聽聽
  49. 聽聽
  50. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ImageIO.write(image,聽 "JPEG" ,聽os); 聽聽
  51. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽os.flush(); 聽聽
  52. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽os.close(); 聽聽
  53. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽os聽=聽 null ; 聽聽
  54. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽response.flushBuffer(); 聽聽
  55. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out.clear(); 聽聽
  56. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out聽=聽pageContext.pushBody(); 聽聽
  57. 聽聽聽聽聽聽聽聽}聽 catch 聽(IllegalStateException聽e)聽{ 聽聽
  58. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(e.getMessage()); 聽聽
  59. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace(); 聽聽
  60. 聽聽聽聽聽聽聽聽} 聽聽
  61. %> 聽聽


]]>
Escape/unescape鐨凧ava瀹炵幇 http://www.tkk7.com/balajinima/articles/146872.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Thu, 20 Sep 2007 10:21:00 GMThttp://www.tkk7.com/balajinima/articles/146872.htmlhttp://www.tkk7.com/balajinima/comments/146872.htmlhttp://www.tkk7.com/balajinima/articles/146872.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/146872.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/146872.html闃呰鍏ㄦ枃

]]>
Ajax瀹炵幇浜岀駭鑱斿姩涓嬫媺妗?http://www.tkk7.com/balajinima/articles/146689.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Thu, 20 Sep 2007 02:04:00 GMThttp://www.tkk7.com/balajinima/articles/146689.htmlhttp://www.tkk7.com/balajinima/comments/146689.htmlhttp://www.tkk7.com/balajinima/articles/146689.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/146689.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/146689.html
欏圭洰緇撴瀯鍥撅細
option1.jpg

index.jsp:
<%@聽page聽language="java"聽contentType="text/html;聽charset=utf-8"%>

<html>
聽聽
<head>
聽聽聽聽
<title>My聽JSP聽'index.jsp'聽starting聽page</title>
聽聽聽聽
<meta聽http-equiv="Content-Type"聽content="text/html;聽charset=utf-8">
聽聽聽聽
<SCRIPT聽type="text/javascript">
聽聽聽聽聽聽聽聽var聽req;
聽聽聽聽聽聽聽聽window.onload
=function(){
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽function聽Change_Select()
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽var聽zhi
=document.getElementById('hero').value;
聽聽聽聽聽聽聽聽聽聽聽聽var聽url
="select?id="+escape(zhi);
聽聽聽聽聽聽聽聽聽聽聽聽
if(window.XMLHttpRequest)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽req
=new聽XMLHttpRequest();
聽聽聽聽聽聽聽聽聽聽聽聽}
elseif(window.ActiveXObject)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽req
=new聽ActiveXObject("Microsoft.XMLHTTP");
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
if(req)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽req.open(
"GET",url,true);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽req.onreadystatechange
=callback;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽req.send(
null);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽function聽callback()
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽
if(req.readyState聽==4)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if(req.status聽==200)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽parseMessage();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽alert(
"Not聽able聽to聽retrieve聽description"+req.statusText);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽function聽parseMessage()
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽var聽xmlDoc
=req.responseXML.documentElement;
聽聽聽聽聽聽聽聽聽聽聽聽var聽xSel
=xmlDoc.getElementsByTagName('select');
聽聽聽聽聽聽聽聽聽聽聽聽var聽select_root
=document.getElementById('skill');
聽聽聽聽聽聽聽聽聽聽聽聽select_root.options.length
=0;
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
for(var聽i=0;i<xSel.length;i++)
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽xValue
=xSel[i].childNodes[0].firstChild.nodeValue;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽xText
=xSel[i].childNodes[1].firstChild.nodeValue;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽option
=new聽Option(xText,xValue);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
try{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽select_root.add(option);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
catch(e){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽}
聽聽聽聽
</SCRIPT>
聽聽
</head>
聽聽
聽聽
<body>
聽聽聽聽
<div聽align="center">
聽聽聽聽聽聽聽聽
<form聽name="form1"聽method="post"聽action="">
聽聽聽聽聽聽聽聽聽聽聽聽
<TABLE聽width="70%"聽boder="0"聽cellspacing="0">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<TR>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<TD聽align="center">Double聽Select聽Box</TD>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
</TR>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<TR>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<TD>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<SELECT聽name="hero"聽id="hero"聽onChange="Change_Select()">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<OPTION聽value="0">Unbounded</OPTION>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<OPTION聽value="1">D.K.</OPTION>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<OPTION聽value="2">NEC.</OPTION>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<OPTION聽value="3">BOSS</OPTION>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
</SELECT>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<SELECT聽name="skill"聽id="skill">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<OPTION聽value="0">Unbounded</OPTION>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
</SELECT>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
</TD>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
</TR>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
<TR><td>&nbsp;</td></TR>
聽聽聽聽聽聽聽聽聽聽聽聽
</TABLE>
聽聽聽聽聽聽聽聽
</form>
聽聽聽聽
</div>
聽聽
</body>
</html>

SelectServlet.java:
package聽com;

import聽java.io.IOException;
import聽java.io.PrintWriter;

import聽javax.servlet.ServletException;
import聽javax.servlet.http.HttpServlet;
import聽javax.servlet.http.HttpServletRequest;
import聽javax.servlet.http.HttpServletResponse;

publicclass聽SelectServlet聽extends聽HttpServlet聽{

聽聽聽聽
/**
聽聽聽聽聽*聽Constructor聽of聽the聽object.
聽聽聽聽聽
*/
聽聽聽聽
public聽SelectServlet()聽{
聽聽聽聽聽聽聽聽
super();
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Destruction聽of聽the聽servlet.聽<br>
聽聽聽聽聽
*/
聽聽聽聽
publicvoid聽destroy()聽{
聽聽聽聽聽聽聽聽
super.destroy();聽//聽Just聽puts聽"destroy"聽string聽in聽log
聽聽聽聽聽聽聽聽
//聽Put聽your聽code聽here
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽The聽doGet聽method聽of聽the聽servlet.聽<br>
聽聽聽聽聽*
聽聽聽聽聽*聽This聽method聽is聽called聽when聽a聽form聽has聽its聽tag聽value聽method聽equals聽to聽get.
聽聽聽聽聽*聽
聽聽聽聽聽*聽
@param聽request聽the聽request聽send聽by聽the聽client聽to聽the聽server
聽聽聽聽聽*聽
@param聽response聽the聽response聽send聽by聽the聽server聽to聽the聽client
聽聽聽聽聽*聽
@throws聽ServletException聽if聽an聽error聽occurred
聽聽聽聽聽*聽
@throws聽IOException聽if聽an聽error聽occurred
聽聽聽聽聽
*/
聽聽聽聽
publicvoid聽doGet(HttpServletRequest聽request,聽HttpServletResponse聽response)
聽聽聽聽聽聽聽聽聽聽聽聽
throws聽ServletException,聽IOException聽{
聽聽聽聽聽聽聽聽response.setContentType(
"text/xml");
聽聽聽聽聽聽聽聽response.setHeader(
"Cache-Control","no-cache");
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽String聽targetId
=request.getParameter("id").toString();
聽聽聽聽聽聽聽聽String聽xml_start
="<selects>";
聽聽聽聽聽聽聽聽String聽xml_end
="</selects>";
聽聽聽聽聽聽聽聽String聽xml
="";
聽聽聽聽聽聽聽聽
if(targetId.equalsIgnoreCase("0")){
聽聽聽聽聽聽聽聽聽聽聽聽xml
="<select><value>0</value><text>Unbounded</text></select>";
聽聽聽聽聽聽聽聽}
elseif(targetId.equalsIgnoreCase("1")){
聽聽聽聽聽聽聽聽聽聽聽聽xml
="<select><value>1</value><text>Mana聽Burn</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>2</value><text>Death聽Coil</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>3</value><text>Unholy聽Aura</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>4</value><text>Unholy聽Fire</text></select>";
聽聽聽聽聽聽聽聽}
elseif(targetId.equalsIgnoreCase("2")){
聽聽聽聽聽聽聽聽聽聽聽聽xml
="<select><value>1</value><text>Corprxplode</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>2</value><text>Raise聽Dead</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>3</value><text>Brilliance聽Aura</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>4</value><text>Aim聽Aura</text></select>";
聽聽聽聽聽聽聽聽}
else{
聽聽聽聽聽聽聽聽聽聽聽聽xml
="<select><value>1</value><text>Rain聽of聽Chaos</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>2</value><text>Finger聽of聽Death</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>3</value><text>Bash</text></select>";
聽聽聽聽聽聽聽聽聽聽聽聽xml聽
+="<select><value>4</value><text>Summon聽Doom</text></select>";
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽String聽last_xml
=xml_start+xml+xml_end;
聽聽聽聽聽聽聽聽response.getWriter().write(last_xml);
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽The聽doPost聽method聽of聽the聽servlet.聽<br>
聽聽聽聽聽*
聽聽聽聽聽*聽This聽method聽is聽called聽when聽a聽form聽has聽its聽tag聽value聽method聽equals聽to聽post.
聽聽聽聽聽*聽
聽聽聽聽聽*聽
@param聽request聽the聽request聽send聽by聽the聽client聽to聽the聽server
聽聽聽聽聽*聽
@param聽response聽the聽response聽send聽by聽the聽server聽to聽the聽client
聽聽聽聽聽*聽
@throws聽ServletException聽if聽an聽error聽occurred
聽聽聽聽聽*聽
@throws聽IOException聽if聽an聽error聽occurred
聽聽聽聽聽
*/
聽聽聽聽
publicvoid聽doPost(HttpServletRequest聽request,聽HttpServletResponse聽response)
聽聽聽聽聽聽聽聽聽聽聽聽
throws聽ServletException,聽IOException聽{

聽聽聽聽聽聽聽聽doGet(request,response);
聽聽聽聽}

聽聽聽聽
/**
聽聽聽聽聽*聽Initialization聽of聽the聽servlet.聽<br>
聽聽聽聽聽*
聽聽聽聽聽*聽
@throws聽ServletException聽if聽an聽error聽occure
聽聽聽聽聽
*/
聽聽聽聽
publicvoid聽init()聽throws聽ServletException聽{
聽聽聽聽聽聽聽聽
//聽Put聽your聽code聽here
聽聽聽聽}

}

web.xml:
<?xml聽version="1.0"聽encoding="UTF-8"?>
<web-app聽version="2.4"
聽聽聽聽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聽
聽聽聽聽http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
聽聽<servlet>
聽聽聽聽
<servlet-name>SelectServlet</servlet-name>
聽聽聽聽
<servlet-class>com.SelectServlet</servlet-class>
聽聽
</servlet>

聽聽
<servlet-mapping>
聽聽聽聽
<servlet-name>SelectServlet</servlet-name>
聽聽聽聽
<url-pattern>/select</url-pattern>
聽聽
</servlet-mapping>
聽聽聽聽
聽聽聽聽
<welcome-file-list>
聽聽聽聽聽聽聽聽
<welcome-file>index.jsp</welcome-file>
聽聽聽聽
</welcome-file-list>
</web-app>

榪愯緇撴灉鍥撅細
option2.jpg

]]>
java 璇誨啓txt鏂囨湰鏂囦歡(杞彂)http://www.tkk7.com/balajinima/articles/140810.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Wed, 29 Aug 2007 03:01:00 GMThttp://www.tkk7.com/balajinima/articles/140810.htmlhttp://www.tkk7.com/balajinima/comments/140810.htmlhttp://www.tkk7.com/balajinima/articles/140810.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/140810.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/140810.html
璇誨彇鎵鏈夌殑鏂囦歡鏁版嵁
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*,java.lang.*"%>
<html>
<head>
<title>璇誨彇鎵鏈夌殑鏂囦歡鏁版嵁</title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileReader fr=new FileReader(path + "file://ReadData.txt/");
//鍏抽敭鍦ㄤ簬璇誨彇榪囩▼涓紝瑕佸垽鏂墍璇誨彇鐨勫瓧絎︽槸鍚﹀凡緇忓埌浜嗘枃浠剁殑鏈熬錛屽茍涓旇繖涓瓧絎︽槸涓嶆槸鏂囦歡涓殑鏂絎︼紝鍗沖垽鏂瀛楃鍊兼槸鍚︿負13銆?br />int c=fr.read();//浠庢枃浠朵腑璇誨彇涓涓瓧絎?br />//鍒ゆ柇鏄惁宸茶鍒版枃浠剁粨灝?br />while(c!=-1){
聽out.print((char)c);//杈撳嚭璇誨埌鐨勬暟鎹?br />聽c=fr.read();//浠庢枃浠朵腑緇х畫璇誨彇鏁版嵁
聽if(c==13){//鍒ゆ柇鏄惁涓烘柇琛屽瓧絎?br />聽 out.print("<br>");//杈撳嚭鍒嗚鏍囩
聽 fr.skip(1);//鐣ヨ繃涓涓瓧絎?br />聽 //c=fr.read();//璇誨彇涓涓瓧絎?br />聽}
}
fr.close();
%>
</body>
</html>

涓琛屼竴琛岃鍙栨暟鎹?br /><%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>鏂囦歡璇誨彇</title>
</head>
<body>
<%
聽String path=request.getRealPath("");//鍙栧緱褰撳墠鐩綍鐨勮礬寰?br />聽FileReader fr=new FileReader(path + "file://file//inc//t.txt%22);//寤虹珛FileReader瀵硅薄錛屽茍瀹炰緥鍖栦負fr
聽BufferedReader br=new BufferedReader(fr);//寤虹珛BufferedReader瀵硅薄錛屽茍瀹炰緥鍖栦負br
聽String Line=br.readLine();//浠庢枃浠惰鍙栦竴琛屽瓧絎︿覆
聽//鍒ゆ柇璇誨彇鍒扮殑瀛楃涓叉槸鍚︿笉涓虹┖
聽while(Line!=null){
聽 out.println(Line + "<br>");//杈撳嚭浠庢枃浠朵腑璇誨彇鐨勬暟鎹?br />聽 Line=br.readLine();//浠庢枃浠朵腑緇х畫璇誨彇涓琛屾暟鎹?br />聽}
聽br.close();//鍏抽棴BufferedReader瀵硅薄
聽fr.close();//鍏抽棴鏂囦歡
%>
</body>
</html>

鐣ヨ繃鏂囦歡涓殑瀛楃涓嶈鍙?br /><%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>鐣ヨ繃瀛楄妭涓嶈鍙?lt;/title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileReader fr=new FileReader(path + "file://ReadData.txt/");
fr.skip(2);//璺寵繃2涓瓧鑺?br />int c=fr.read();//璇誨彇涓涓瓧鑺?br />while(c!=-1){
聽out.print((char)c);
聽c=fr.read();
}
fr.close();
%>
</body>
</html>

灝嗘暟鎹啓鍏ユ枃浠?br /><%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>灝嗘暟鎹啓鍏ユ枃浠?lt;/title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileWriter fw=new FileWriter(path + "file://WriteData.txt%22);//寤虹珛FileWriter瀵硅薄錛屽茍瀹炰緥鍖杅w
//灝嗗瓧絎︿覆鍐欏叆鏂囦歡
fw.write("澶у濂斤紒");
fw.write("鏈功鏄奐SP緙栫▼鎶宸с?);
fw.write("璇峰澶氭寚鏁欙紒");
fw.write("email:stride@sina.com");
fw.close();
FileReader fr=new FileReader(path + "file://WriteData.txt/");
BufferedReader br=new BufferedReader(fr);//寤虹珛BufferedReader瀵硅薄錛屽茍瀹炰緥鍖栦負br
String Line=br.readLine();
//璇誨彇涓琛屾暟鎹?br />out.println(Line + "<br>");
br.close();//鍏抽棴BufferedReader瀵硅薄
fr.close();
%>
</body>
</html>

灝嗗啓鍏ユ枃浠剁殑鏁版嵁鍒嗚
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>灝嗗啓鍏ユ枃浠剁殑鏁版嵁鍒嗚</title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileWriter fw=new FileWriter(path + "file://WriteData.txt/");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("澶у濂斤紒");
bw.write("鏈功鏄奐SP緙栫▼鎶宸с嬨?);
bw.newLine();//鏂
bw.write("璇峰澶氭寚鏁欙紒");
bw.newLine();//鏂
bw.write("email: stride@sina.com");
bw.flush();//灝嗘暟鎹洿鏂拌嚦鏂囦歡
fw.close();//鍏抽棴鏂囦歡嫻?br />out.println("鍐欏叆鏂囦歡鍐呭涓猴細<br>");
FileReader fr=new FileReader(path + "file://WriteData.txt/");
BufferedReader br=new BufferedReader(fr);
String Line=br.readLine();//璇誨彇涓琛屾暟鎹?br />while(Line!=null){
聽out.println(Line + "<br>");
聽Line=br.readLine();
}
fr.close();
%>
</body>
</html>

濡備綍灝嗘暟鎹拷鍔犲啓鍏ュ埌鏂囦歡
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>灝嗗啓鍏ユ枃浠剁殑鏁版嵁鍒嗚</title>
</head>
<body>
<%
String path=request.getRealPath(".");
RandomAccessFile rf=new RandomAccessFile(path + "file://WriteData.txt%22,%22rw%22);//瀹氫箟涓涓被RandomAccessFile鐨勫璞★紝騫跺疄渚嬪寲
rf.seek(rf.length());//灝嗘寚閽堢Щ鍔ㄥ埌鏂囦歡鏈熬
rf.writeBytes("\nAppend a line to the file!");
rf.close();//鍏抽棴鏂囦歡嫻?br />out.println("鍐欏叆鏂囦歡鍐呭涓猴細<br>");
FileReader fr=new FileReader(path + "file://WriteData.txt/");
BufferedReader br=new BufferedReader(fr);//璇誨彇鏂囦歡鐨凚ufferedRead瀵硅薄
String Line=br.readLine();
while(Line!=null){
聽out.println(Line + "<br>");
聽Line=br.readLine();
}
fr.close();//鍏抽棴鏂囦歡
%>
</body>
</html>

import java.util.*;
import java.io.*;
public class ReadIni
{
聽 public static void main(String[] args)
聽聽聽 throws Exception
聽 {
聽聽聽 Properties proDB = new Properties();
聽聽聽 FileInputStream in = new FileInputStream("DBConfig.ini");
聽聽聽 proDB.load(in);
聽聽聽 String jdbc = proDB.getProperty("jdbc");
聽聽聽 String dburl = proDB.getProperty("dburl");
聽聽聽 String userid = proDB.getProperty("userid");
聽聽聽 String password = proDB.getProperty("password");

聽聽聽 System.out.println(jdbc);
聽聽聽 System.out.println(dburl);
聽聽聽 System.out.println(userid);
聽聽聽 System.out.println(password);
聽 }
}

DBConfig.ini:

dburl=jdbcracle:thin:@202.16.147.104:1521ub
userid=user
password=password
jdbc=oracle.jdbc.driver.OracleDriver



]]>
綆鍗曠殑jsp鎺у埗鍒嗛〉http://www.tkk7.com/balajinima/articles/134185.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Fri, 03 Aug 2007 02:55:00 GMThttp://www.tkk7.com/balajinima/articles/134185.htmlhttp://www.tkk7.com/balajinima/comments/134185.htmlhttp://www.tkk7.com/balajinima/articles/134185.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/134185.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/134185.html
<%
聽//鍒嗛〉鏄劇ず
聽int num = 0;
聽int countall = infolist.size();//鎬繪暟
聽int pageSize = 28;//姣忛〉鏁伴噺
聽int pageCount;//鎬誨叡欏墊暟
聽int pageNo = 1;//褰撳墠欏靛彿
聽int mixNum;聽聽 //褰撳墠欏墊暟鎹紑濮嬪彿
聽int maxNum;

聽String pNO = request.getParameter("pageNo");

聽if((pNO != null) && (!pNO.equals(""))){

聽聽pageNo=Integer.parseInt(pNO);
聽}

聽if (countall > pageSize) {
聽聽if ((countall / pageSize) * pageSize < countall) {
聽聽聽pageCount = (countall / pageSize) + 1;
聽聽}
聽聽else{
聽聽聽pageCount = (countall / pageSize);
聽聽}
聽}

聽else if (countall / pageSize == 1) {
聽聽pageCount = 1;
聽}
聽else {
聽聽pageCount = 1;
聽}

聽if (pageNo >= pageCount) {
聽聽pageNo = pageCount;
聽}
聽else if (pageNo < 1) {
聽聽pageNo = 1;
聽}
聽聽聽聽
聽聽聽聽
聽mixNum = (pageNo-1) * pageSize;
聽maxNum = pageNo*pageSize;

聽if((mixNum + pageSize) > countall){
聽聽maxNum = countall;
聽}
聽else{
聽聽maxNum = mixNum+pageSize;
聽}
%>
---------------------------------------------------------------------------------------------
<html>
<head>
<script language="JavaScript" type="text/JavaScript">
function check(){
聽if(Jtrim(document.forms.meslistForm.textfield.value)==""){
聽聽alert("璇瘋緭鍏ラ〉鏁?);
聽}
聽else if(checkNum(document.forms.meslistForm.textfield.value)){
聽聽window.location.href="?pageNo="+document.forms.meslistForm.textfield.value;
聽}else{
聽聽alert("璇瘋緭鍏ユ暟瀛椼?);
聽}
聽document.forms.meslistForm.textfield.value = "";
聽document.forms.meslistForm.textfield.select();
}
function checkNum(str){
return str.match(/\D/)==null;
}

function Jtrim(str)
{

聽聽聽聽聽聽聽 var i = 0;
聽聽聽聽聽聽聽 var len = str.length;
聽聽聽聽聽聽聽 if ( str == "" ) return( str );
聽聽聽聽聽聽聽 j = len -1;
聽聽聽聽聽聽聽 flagbegin = true;
聽聽聽聽聽聽聽 flagend = true;
聽聽聽聽聽聽聽 while ( flagbegin == true && i< len)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 if ( str.charAt(i) == " " )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 i=i+1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 flagbegin=true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 flagbegin=false;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 while聽 (flagend== true && j>=0)
聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 if (str.charAt(j)==" ")
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 j=j-1;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 flagend=true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 flagend=false;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 if ( i > j ) return ("")

聽聽聽聽聽聽聽 trimstr = str.substring(i,j+1);
聽聽聽聽聽聽聽 return trimstr;
}</script>
</head>


<body>
<%
聽for(int i=mixNum;i<maxNum;i++){
聽//姝ゅ鐢╨ist寰幆涓嬫爣鐢╥
聽}聽聽聽聽聽 聽聽聽
%>


聽<table align="center" width="100%" border="0" cellspacing="0" cellpadding="0">
聽聽聽<tr>
聽聽聽聽<td width="4%" height="27" align="center" valign="middle"
聽聽聽聽聽class="word">&nbsp;</td>
聽聽聽聽<td width="56%" align="center" valign="middle" class="word"><img
聽聽聽聽聽src="<%=path%>/images/pagination/list_home.gif" width="13"
聽聽聽聽聽height="13">&nbsp; <%
聽聽聽聽聽聽if (pageNo > 1) {
聽聽聽聽聽%> <a href="?pageNo=1">&nbsp;棣栭〉</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
聽聽聽聽<%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> &nbsp;棣栭〉&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> <img src="<%=path%>/images/pagination/list_pre.gif"
聽聽聽聽聽width="13" height="13"> <%
聽聽聽聽聽聽if (pageNo > 1) {
聽聽聽聽聽%> <a href="?pageNo=<%=(pageNo-1)%>">&nbsp;鍓嶄竴欏?lt;/a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
聽聽聽聽<%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> &nbsp;鍓嶄竴欏?amp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> <img
聽聽聽聽聽src="<%=path%>/images/pagination/list_next.gif" width="13"
聽聽聽聽聽height="13"> <%
聽聽聽聽聽聽if (pageCount>pageNo) {
聽聽聽聽聽%> <a href="?pageNo=<%=(pageNo+1)%>">&nbsp;&nbsp;鍚庝竴欏?lt;/a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
聽聽聽聽<%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> &nbsp;&nbsp;鍚庝竴欏?amp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> <img src="<%=path%>/images/pagination/list_end.gif"
聽聽聽聽聽width="13" height="13"> <%
聽聽聽聽聽聽if (pageCount>pageNo) {
聽聽聽聽聽%> <a href="?pageNo=<%=(pageCount)%>">&nbsp;&nbsp;灝鵑〉</a> <%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %> &nbsp;&nbsp;灝鵑〉 <%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽}聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 %>
聽聽聽聽<td width="26%" align="center" valign="middle" class="word">鍏?lt;%=pageCount%>欏?amp;nbsp;絎?lt;%=pageNo%>欏?amp;nbsp;
聽聽聽聽璺寵漿</td>
聽聽聽聽<td width="4%" align="center" valign="middle" class="word"><input
聽聽聽聽聽name="textfield" type="text" class="input" size="1"></td>
聽聽聽聽<td width="6%" align="center" valign="middle" class="word"><a
聽聽聽聽聽href="javascript:check()"><img
聽聽聽聽聽src="<%=path%>/images/pagination/go.gif" border="0" width="18"
聽聽聽聽聽height="18"></a></td>

聽聽聽聽<td width="4%" align="left" valign="middle" class="word">&nbsp;</td>
聽聽聽</tr>
聽聽</table></body>聽聽
</html>



]]>
JSP鍒嗛〉鎶鏈疄鐜?[杞創]http://www.tkk7.com/balajinima/articles/132962.html鏉庝簯娉?/dc:creator>鏉庝簯娉?/author>Sat, 28 Jul 2007 04:26:00 GMThttp://www.tkk7.com/balajinima/articles/132962.htmlhttp://www.tkk7.com/balajinima/comments/132962.htmlhttp://www.tkk7.com/balajinima/articles/132962.html#Feedback0http://www.tkk7.com/balajinima/comments/commentRss/132962.htmlhttp://www.tkk7.com/balajinima/services/trackbacks/132962.html銆銆鍏跺畠甯歌鐨勬柟娉曡繕鏈夋瘡嬈$炕欏甸兘鏌ヨ涓嬈℃暟鎹簱錛屼粠ResultSet涓彧鍙栧嚭涓欏墊暟鎹紙浣跨敤rs.last();rs.getRow()鑾峰緱鎬昏褰曟潯鏁幫紝浣跨敤rs.absolute()瀹氫綅鍒版湰欏佃搗濮嬭褰曪級銆傝繖縐嶆柟寮忓湪鏌愪簺鏁版嵁搴?濡俹racle)鐨凧DBC瀹炵幇涓樊涓嶅涔熸槸闇瑕侀亶鍘嗘墍鏈夎褰曪紝瀹為獙璇佹槑鍦ㄨ褰曟暟寰堝ぇ鏃墮熷害闈炲父鎱€?br />銆銆鑷充簬緙撳瓨緇撴灉闆哛esultSet鐨勬柟娉曞垯瀹屽叏鏄竴縐嶉敊璇殑鍋氭硶銆傚洜涓篟esultSet鍦⊿tatement鎴朇onnection鍏抽棴鏃朵篃浼氳鍏抽棴錛屽鏋滆浣縍esultSet鏈夋晥鍔垮繀闀挎椂闂村崰鐢ㄦ暟鎹簱榪炴帴銆?

銆銆鍥犳姣旇緝濂界殑鍒嗛〉鍋氭硶搴旇鏄瘡嬈$炕欏電殑鏃跺欏彧浠庢暟鎹簱閲屾绱㈤〉闈㈠ぇ灝忕殑鍧楀尯鐨勬暟鎹傝繖鏍瘋櫧鐒舵瘡嬈$炕欏甸兘闇瑕佹煡璇㈡暟鎹簱錛屼絾鏌ヨ鍑虹殑璁板綍鏁板緢灝戯紝緗戠粶浼犺緭鏁版嵁閲忎笉澶э紝濡傛灉浣跨敤榪炴帴姹犳洿鍙互鐣ヨ繃鏈鑰楁椂鐨勫緩绔嬫暟鎹簱榪炴帴榪囩▼銆傝屽湪鏁版嵁搴撶鏈夊悇縐嶆垚鐔熺殑浼樺寲鎶鏈敤浜庢彁楂樻煡璇㈤熷害錛屾瘮鍦ㄥ簲鐢ㄦ湇鍔″櫒灞傚仛緙撳瓨鏈夋晥澶氫簡銆?/p>

銆銆鍦╫racle鏁版嵁搴撲腑鏌ヨ緇撴灉鐨勮鍙蜂嬌鐢ㄤ吉鍒桼OWNUM琛ㄧず錛堜粠1寮濮嬶級銆備緥濡俿elect * from employee where rownum<10 榪斿洖鍓?0鏉¤褰曘備絾鍥犱負rownum鏄湪鏌ヨ涔嬪悗鎺掑簭涔嬪墠璧嬪肩殑錛屾墍浠ユ煡璇mployee鎸塨irthday鎺掑簭鐨勭100鍒?20鏉¤褰曞簲璇ヨ繖涔堝啓錛?br />[pre]聽聽聽聽聽聽聽 select * from (
聽聽聽聽聽聽聽聽聽聽聽 select my_table.*, rownum as my_rownum from (
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 select name, birthday from employee order by birthday
聽聽聽聽聽聽聽聽聽聽聽 ) my_table where rownum <120
聽聽聽聽聽聽聽 ) where my_rownum>=100
[/pre]
銆銆mySQL鍙互浣跨敤LIMIT瀛愬彞錛?br />銆銆銆銆select name, birthday from employee order by birthday LIMIT 99,20
銆銆DB2鏈塺ownumber()鍑芥暟鐢ㄤ簬鑾峰彇褰撳墠琛屾暟銆?br />銆銆SQL Server娌$爺絀惰繃錛屽彲浠ュ弬鑰冭繖綃囨枃绔狅細http://www.csdn.net/develop/article/18/18627.shtm

銆銆鍦╓eb紼嬪簭涓垎欏典細琚綣佷嬌鐢紝浣嗗垎欏電殑瀹炵幇緇嗚妭鍗存槸緙栫▼榪囩▼涓瘮杈冮夯鐑︾殑浜嬫儏銆傚ぇ澶氬垎欏墊樉紺虹殑鏌ヨ鎿嶄綔閮藉悓鏃墮渶瑕佸鐞嗗鏉傜殑澶氶噸鏌ヨ鏉′歡錛宻ql璇彞闇瑕佸姩鎬佹嫾鎺ョ粍鎴愶紝鍐嶅姞涓婂垎欏甸渶瑕佺殑璁板綍瀹氫綅銆佹昏褰曟潯鏁版煡璇互鍙婃煡璇㈢粨鏋滅殑閬嶅巻銆佸皝瑁呭拰鏄劇ず錛岀▼搴忎細鍙樺緱寰堝鏉傚茍涓旈毦浠ョ悊瑙c傚洜姝ら渶瑕佷竴浜涘伐鍏風被綆鍖栧垎欏典唬鐮侊紝浣跨▼搴忓憳涓撴敞浜庝笟鍔¢昏緫閮ㄥ垎銆備笅闈㈡槸鎴戣璁$殑涓や釜宸ュ叿綾伙細
銆銆PagedStatement聽 灝佽浜嗘暟鎹簱榪炴帴銆佹昏褰曟暟鏌ヨ銆佸垎欏墊煡璇€佺粨鏋滄暟鎹皝瑁呭拰鍏抽棴鏁版嵁搴撹繛鎺ョ瓑鎿嶄綔錛屽茍浣跨敤浜哖reparedStatement鏀寔鍔ㄦ佽緗弬鏁般?br />銆銆RowSetPage聽 鍙傝働etStore鐨刾age by page iterator妯″紡錛?璁捐RowSetPage鐢ㄤ簬灝佽鏌ヨ緇撴灉錛堜嬌鐢∣racleCachedRowSet緙撳瓨鏌ヨ鍑虹殑涓欏墊暟鎹紝鍏充簬浣跨敤CachedRowSet灝佽鏁版嵁搴撴煡璇㈢粨鏋滆鍙傝僇SP欏甸潰鏌ヨ鏄劇ず甯哥敤妯″紡錛変互鍙婂綋鍓嶉〉鐮併佹昏褰曟潯鏁般佸綋鍓嶈褰曟暟絳変俊鎭紝 騫朵笖鍙互鐢熸垚綆鍗曠殑HTML鍒嗛〉浠g爜銆?br />銆銆PagedStatement 鏌ヨ鐨勭粨鏋滃皝瑁呮垚RowsetPage銆?/p>

銆銆涓嬮潰鏄畝鍗曠殑浣跨敤紺轟緥錛?/p>

聽聽聽 //DAO鏌ヨ鏁版嵁閮ㄥ垎浠g爜錛?
聽聽聽 鈥?
聽聽聽 public RowSetPage getEmployee(String gender, int pageNo) throws Exception{
聽聽聽聽聽聽聽 String sql="select emp_id, emp_code,聽 user_name, real_name from employee where gender =?";
聽聽聽聽聽聽 //浣跨敤Oracle鏁版嵁搴撶殑鍒嗛〉鏌ヨ瀹炵幇,姣忛〉鏄劇ず5鏉?
聽聽聽聽聽聽聽 PagedStatement pst =new PagedStatementOracleImpl(sql,聽 pageNo, 5);
聽聽聽聽聽聽聽 pst.setString(1, gender);
聽聽聽聽聽聽聽 return pst.executeQuery();
聽聽聽 }


聽聽聽 //Servlet澶勭悊鏌ヨ璇鋒眰閮ㄥ垎浠g爜錛?

聽聽聽 鈥?
聽聽聽 int pageNo;
聽聽聽 try{
聽聽聽聽聽聽聽 //鍙互閫氳繃鍙傛暟pageno鑾峰緱鐢ㄦ埛閫夋嫨鐨勯〉鐮?
聽聽聽聽聽聽聽 pageNo = Integer.parseInt(request.getParameter("pageno") );
聽聽聽 }catch(Exception ex){
聽聽聽聽聽聽聽 //榛樿涓虹涓欏?
聽聽聽聽聽聽聽 pageNo=1;
聽聽聽 }
聽聽聽 String gender = request.getParameter("gender" );
聽聽聽 request.setAttribute("empPage", myBean.getEmployee(gender, pageNo) );
聽聽聽 鈥?

聽聽聽 //JSP鏄劇ず閮ㄥ垎浠g爜
<%@ page import = "page.RowSetPage"%>
聽聽聽 鈥?
聽聽聽 <script language="javascript">
聽聽聽聽聽聽聽 function doQuery(){
聽聽聽聽聽聽聽聽聽聽聽 form1.actionType.value="doQuery";
聽聽聽聽聽聽聽聽聽聽聽 form1.submit();
聽聽聽 }
聽聽聽 </script>
聽聽聽 鈥?
聽聽聽 <form name=form1 method=get>
聽聽聽聽聽 <input type=hidden name=actionType>
聽聽聽聽聽 鎬у埆錛?
聽聽聽聽聽 <input type=text name=gender size=1 value="<%=request.getParameter("gender")%>">
聽聽聽聽聽 <input type=button value=" 鏌ヨ " onclick="doQuery()">
<%
聽聽聽 RowSetPage empPage = (RowSetPage)request.getAttribute("empPage");
聽聽聽 if (empPage == null ) empPage = RowSetPage.EMPTY_PAGE;
%>
聽聽聽 鈥?
聽聽聽 <table聽 cellspacing="0" width="90%">
聽聽聽聽聽聽聽 <tr> <td>ID</td> <td>浠g爜</td> <td>鐢ㄦ埛鍚?lt;/td> <td>濮撳悕</td>聽 </tr>
<%
聽聽聽 javax.sql.RowSet empRS = (javax.sql.RowSet) empPage.getRowSet();
聽聽聽 if (empRS!=null) while (empRS.next() ) {
%>
聽聽聽聽聽聽聽 <tr>聽聽
聽聽聽聽聽聽聽聽聽聽聽 <td><%= empRS.getString("EMP_ID")%></td>聽
聽聽聽聽聽聽聽聽聽聽聽 <td><%= empRS.getString("EMP_CODE")%></td>聽聽
聽聽聽聽聽聽聽聽聽聽聽 <td><%= empRS.getString("USER_NAME")%></td>聽
聽聽聽聽聽聽聽聽聽聽聽 <td><%= empRS.getString("REAL_NAME")%></td>聽聽
聽聽聽聽聽聽聽 </tr>
<%
聽聽聽 }// end while
%>
聽聽聽聽聽聽聽 <tr>
<%
聽聽聽 //鏄劇ず鎬婚〉鏁板拰褰撳墠欏墊暟(pageno)浠ュ強鍒嗛〉浠g爜銆?
聽聽聽 //姝ゅdoQuery涓洪〉闈笂鎻愪氦鏌ヨ鍔ㄤ綔鐨刯avascript鍑芥暟鍚嶏紝 pageno涓烘爣璇嗗綋鍓嶉〉鐮佺殑鍙傛暟鍚?
%>
聽聽聽聽聽聽聽聽聽聽聽 <td colspan=4><%= empPage .getHTML("doQuery", "pageno")%></td>
聽聽聽聽聽聽聽 </tr>
聽聽聽 </table>
聽聽聽 </form>

銆銆鏁堟灉濡傚浘錛?/p>


銆銆鍥犱負鍒嗛〉鏄劇ず涓鑸兘浼氫即鏈夋煡璇㈡潯浠跺拰鏌ヨ鍔ㄤ綔錛岄〉闈㈠簲宸茬粡鏈夋牎楠屾煡璇㈡潯浠跺拰鎻愪氦鏌ヨ鐨刯avascript鏂規硶錛堝涓婇潰鐨刣oQuery錛夛紝鎵浠owSetPage.getHTML()鐢熸垚鐨勫垎欏典唬鐮佸湪鐢ㄦ埛閫夋嫨鏂伴〉鐮佹椂鐩存帴鍥炶皟鍓嶉潰鐨勫鐞嗘彁浜ゆ煡璇㈢殑javascript鏂規硶銆傛敞鎰忓湪鏄劇ず鏌ヨ緇撴灉鐨勬椂鍊欎笂嬈$殑鏌ヨ鏉′歡涔熼渶瑕佷繚鎸侊紝濡?lt;input type=text name=gender size=1 value="<%=request.getParameter("gender")%>">銆傚悓鏃剁敱浜庨〉鐮佺殑鍙傛暟鍚嶅彲浠ユ寚瀹氾紝鍥犳涔熸敮鎸佸湪鍚屼竴欏甸潰涓湁澶氫釜鍒嗛〉鍖恒?br />銆銆鍙︿竴縐嶅垎欏典唬鐮佸疄鐜版槸鐢熸垚姣忎竴欏電殑URL錛屽皢鏌ヨ鍙傛暟鍜岄〉鐮佷綔涓篞ueryString闄勫湪URL鍚庨潰銆傝繖縐嶆柟娉曠殑緙洪櫡鏄湪鏌ヨ鏉′歡姣旇緝澶嶆潅鏃墮毦浠ュ鐞嗭紝騫朵笖闇瑕佹寚瀹氬鐞嗘煡璇㈠姩浣滅殑servlet錛屽彲鑳戒笉閫傚悎鏌愪簺瀹氬埗鐨勬煡璇㈡搷浣溿?br />銆銆濡傛灉瀵筊owSetPage.getHTML()鐢熸垚鐨勯粯璁ゅ垎欏典唬鐮佷笉婊℃剰鍙互緙栧啓鑷繁鐨勫垎欏靛鐞嗕唬鐮侊紝RowSetPage鎻愪緵浜嗗緢澶歡etter鏂規硶鐢ㄤ簬鑾峰彇鐩稿叧淇℃伅錛堝褰撳墠欏電爜銆佹婚〉鏁般?鎬昏褰曟暟鍜屽綋鍓嶈褰曟暟絳夛級銆?br />銆銆鍦ㄥ疄闄呭簲鐢ㄤ腑鍙互灝嗗垎欏墊煡璇㈠拰鏄劇ず鍋氭垚jsp taglib錛?榪涗竴姝ョ畝鍖朖SP浠g爜錛屽睆钄絁ava Code銆?/p>

闄勶細鍒嗛〉宸ュ叿綾葷殑婧愪唬鐮侊紝 鏈夋敞閲婏紝搴旇寰堝鏄撶悊瑙c?/p>

1.Page.java
2.RowSetPage.java(RowSetPage緇ф壙Page)
3.PagedStatement.java
4.PagedStatementOracleImpl.java(PagedStatementOracleImpl緇ф壙PagedStatement)

鎮ㄥ彲浠ヤ換鎰忎嬌鐢ㄨ繖浜涙簮浠g爜錛屼絾蹇呴』淇濈暀author evan_zhao@hotmail.com瀛楁牱


///////////////////////////////////
//
//聽 Page.java
//聽 author: evan_zhao@hotmail.com
//
///////////////////////////////////

package page;

import java.util.List;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;


/**
聽* Title: 鍒嗛〉瀵硅薄<br>
聽* Description:聽 鐢ㄤ簬鍖呭惈鏁版嵁鍙婂垎欏典俊鎭殑瀵硅薄<br>
聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Page綾誨疄鐜頒簡鐢ㄤ簬鏄劇ず鍒嗛〉淇℃伅鐨勫熀鏈柟娉曪紝浣嗘湭鎸囧畾鎵鍚暟鎹殑綾誨瀷錛?
聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽 鍙牴鎹渶瑕佸疄鐜頒互鐗瑰畾鏂瑰紡緇勭粐鏁版嵁鐨勫瓙綾伙紝<br>
聽*聽聽聽聽聽聽聽聽聽聽聽聽聽聽 濡俁owSetPage浠owSet灝佽鏁版嵁錛孡istPage浠ist灝佽鏁版嵁<br>
聽* Copyright:聽聽聽 Copyright (c) 2002 <br>
聽* @author evan_zhao@hotmail.com <br>
聽* @version 1.0
聽*/
public聽 class Page implements java.io.Serializable {
聽聽聽 public static final Page EMPTY_PAGE = new Page();
聽聽聽 public static final int聽 DEFAULT_PAGE_SIZE = 20;
聽聽聽 public static final聽 int MAX_PAGE_SIZE = 9999;

聽聽聽 private int myPageSize = DEFAULT_PAGE_SIZE;

聽聽聽 private int start;
聽聽聽 private int avaCount,totalSize;
聽聽聽 private Object data;

聽聽聽 private int currentPageno;
聽聽聽 private int totalPageCount;

聽聽聽 /**
聽聽聽聽 * 榛樿鏋勯犳柟娉曪紝鍙瀯閫犵┖欏?
聽聽聽聽 */
聽聽聽 protected Page(){
聽聽聽聽聽聽聽 this.init(0,0,0,DEFAULT_PAGE_SIZE,new Object());
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鍒嗛〉鏁版嵁鍒濆鏂規硶錛岀敱瀛愮被璋冪敤
聽聽聽聽 * @param start 鏈〉鏁版嵁鍦ㄦ暟鎹簱涓殑璧峰浣嶇疆
聽聽聽聽 * @param avaCount 鏈〉鍖呭惈鐨勬暟鎹潯鏁?
聽聽聽聽 * @param totalSize 鏁版嵁搴撲腑鎬昏褰曟潯鏁?
聽聽聽聽 * @param pageSize 鏈〉瀹歸噺
聽聽聽聽 * @param data 鏈〉鍖呭惈鐨勬暟鎹?
聽聽聽聽 */
聽聽聽 protected void init(int start, int avaCount, int totalSize, int pageSize, Object data){

聽聽聽聽聽聽聽 this.avaCount =avaCount;
聽聽聽聽聽聽聽 this.myPageSize = pageSize;

聽聽聽聽聽聽聽 this.start = start;
聽聽聽聽聽聽聽 this.totalSize = totalSize;

聽聽聽聽聽聽聽 this.data=data;

聽聽聽聽聽聽聽 //System.out.println("avaCount:"+avaCount);
聽聽聽聽聽聽聽 //System.out.println("totalSize:"+totalSize);
聽聽聽聽聽聽聽 if (avaCount>totalSize) {
聽聽聽聽聽聽聽聽聽聽聽 //throw new RuntimeException("璁板綍鏉℃暟澶т簬鎬繪潯鏁幫紵錛?);
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 this.currentPageno = (start -1)/pageSize +1;
聽聽聽聽聽聽聽 this.totalPageCount = (totalSize + pageSize -1) / pageSize;

聽聽聽聽聽聽聽 if (totalSize==0 && avaCount==0){
聽聽聽聽聽聽聽聽聽聽聽 this.currentPageno = 1;
聽聽聽聽聽聽聽聽聽聽聽 this.totalPageCount = 1;
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 //System.out.println("Start Index to Page No: " + start + "-" + currentPageno);
聽聽聽 }

聽聽聽 public聽 Object getData(){
聽聽聽聽聽聽聽 return this.data;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鍙栨湰欏墊暟鎹閲忥紙鏈〉鑳藉寘鍚殑璁板綍鏁幫級
聽聽聽聽 * @return 鏈〉鑳藉寘鍚殑璁板綍鏁?
聽聽聽聽 */
聽聽聽 public int getPageSize(){
聽聽聽聽聽聽聽 return this.myPageSize;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鏄惁鏈変笅涓欏?
聽聽聽聽 * @return 鏄惁鏈変笅涓欏?
聽聽聽聽 */
聽聽聽 public boolean hasNextPage() {
聽聽聽聽聽 /*
聽聽聽聽聽聽聽 if (avaCount==0 && totalSize==0){
聽聽聽聽聽聽聽聽聽聽聽 return false;
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 return (start + avaCount -1) < totalSize;
聽聽聽聽聽聽 */
聽聽聽聽聽 return (this.getCurrentPageNo()<this.getTotalPageCount());
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鏄惁鏈変笂涓欏?
聽聽聽聽 * @return聽 鏄惁鏈変笂涓欏?
聽聽聽聽 */
聽聽聽 public boolean hasPreviousPage() {
聽聽聽聽聽 /*
聽聽聽聽聽聽聽 return start > 1;
聽聽聽聽聽聽 */
聽聽聽聽聽 return (this.getCurrentPageNo()>1);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鑾峰彇褰撳墠欏電涓鏉℃暟鎹湪鏁版嵁搴撲腑鐨勪綅緗?
聽聽聽聽 * @return
聽聽聽聽 */
聽聽聽 public int getStart(){
聽聽聽聽聽聽聽 return start;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鑾峰彇褰撳墠欏墊渶鍚庝竴鏉℃暟鎹湪鏁版嵁搴撲腑鐨勪綅緗?
聽聽聽聽 * @return
聽聽聽聽 */
聽聽聽 public int getEnd(){
聽聽聽聽聽聽聽 int end = this.getStart() + this.getSize() -1;
聽聽聽聽聽聽聽 if (end<0) {
聽聽聽聽聽聽聽聽聽聽聽 end = 0;
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 return end;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鑾峰彇涓婁竴欏電涓鏉℃暟鎹湪鏁版嵁搴撲腑鐨勪綅緗?
聽聽聽聽 * @return 璁板綍瀵瑰簲鐨剅ownum
聽聽聽聽 */
聽聽聽 public int getStartOfPreviousPage() {
聽聽聽聽聽聽聽 return Math.max(start-myPageSize, 1);
聽聽聽 }


聽聽聽 /**
聽聽聽聽 * 鑾峰彇涓嬩竴欏電涓鏉℃暟鎹湪鏁版嵁搴撲腑鐨勪綅緗?
聽聽聽聽 * @return 璁板綍瀵瑰簲鐨剅ownum
聽聽聽聽 */
聽聽聽 public int getStartOfNextPage() {
聽聽聽聽聽聽聽 return start + avaCount;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鑾峰彇浠諱竴欏電涓鏉℃暟鎹湪鏁版嵁搴撲腑鐨勪綅緗紝姣忛〉鏉℃暟浣跨敤榛樿鍊?
聽聽聽聽 * @param pageNo 欏靛彿
聽聽聽聽 * @return 璁板綍瀵瑰簲鐨剅ownum
聽聽聽聽 */
聽聽聽 public static int getStartOfAnyPage(int pageNo){
聽聽聽聽聽聽聽 return getStartOfAnyPage(pageNo, DEFAULT_PAGE_SIZE);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鑾峰彇浠諱竴欏電涓鏉℃暟鎹湪鏁版嵁搴撲腑鐨勪綅緗?
聽聽聽聽 * @param pageNo 欏靛彿
聽聽聽聽 * @param pageSize 姣忛〉鍖呭惈鐨勮褰曟暟
聽聽聽聽 * @return 璁板綍瀵瑰簲鐨剅ownum
聽聽聽聽 */
聽聽聽 public static int getStartOfAnyPage(int pageNo, int pageSize){
聽聽聽聽聽聽聽 int startIndex = (pageNo-1) * pageSize + 1;
聽聽聽聽聽聽聽 if ( startIndex < 1) startIndex = 1;
聽聽聽聽聽聽聽 //System.out.println("Page No to Start Index: " + pageNo + "-" + startIndex);
聽聽聽聽聽聽聽 return startIndex;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鍙栨湰欏靛寘鍚殑璁板綍鏁?
聽聽聽聽 * @return 鏈〉鍖呭惈鐨勮褰曟暟
聽聽聽聽 */
聽聽聽 public int getSize() {
聽聽聽聽聽聽聽 return avaCount;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鍙栨暟鎹簱涓寘鍚殑鎬昏褰曟暟
聽聽聽聽 * @return 鏁版嵁搴撲腑鍖呭惈鐨勬昏褰曟暟
聽聽聽聽 */
聽聽聽 public int getTotalSize() {
聽聽聽聽聽聽聽 return this.totalSize;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鍙栧綋鍓嶉〉鐮?
聽聽聽聽 * @return 褰撳墠欏電爜
聽聽聽聽 */
聽聽聽 public int getCurrentPageNo(){
聽聽聽聽聽聽聽 return聽 this.currentPageno;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鍙栨婚〉鐮?
聽聽聽聽 * @return 鎬婚〉鐮?
聽聽聽聽 */
聽聽聽 public int getTotalPageCount(){
聽聽聽聽聽聽聽 return this.totalPageCount;
聽聽聽 }


聽聽聽 /**
聽聽聽聽 *
聽聽聽聽 * @param queryJSFunctionName 瀹炵幇鍒嗛〉鐨凧S鑴氭湰鍚嶅瓧錛岄〉鐮佸彉鍔ㄦ椂浼氳嚜鍔ㄥ洖璋冭鏂規硶
聽聽聽聽 * @param pageNoParamName 欏電爜鍙傛暟鍚嶇О
聽聽聽聽 * @return
聽聽聽聽 */
聽聽聽 public String getHTML(String queryJSFunctionName, String pageNoParamName){
聽聽聽聽聽聽聽 if (getTotalPageCount()<1){
聽聽聽聽聽聽聽聽聽聽聽 return "<input type='hidden' name='"+pageNoParamName+"' value='1' >";
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 if (queryJSFunctionName == null || queryJSFunctionName.trim().length()<1) {
聽聽聽聽聽聽聽聽聽聽聽 queryJSFunctionName = "gotoPage";
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 if (pageNoParamName == null || pageNoParamName.trim().length()<1){
聽聽聽聽聽聽聽聽聽聽聽 pageNoParamName = "pageno";
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 String gotoPage = "_"+queryJSFunctionName;

聽聽聽聽聽聽聽 StringBuffer html = new StringBuffer("\n");
聽聽聽聽聽聽聽 html.append("<script language=\"Javascript1.2\">\n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append("function ").append(gotoPage).append("(pageNo){聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽 var curPage=1;聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽 try{ curPage = document.all[\"")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(pageNoParamName).append("\"].value;聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽 document.all[\"").append(pageNoParamName)
聽聽聽聽聽聽聽聽聽聽聽聽 .append("\"].value = pageNo;聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽 ").append(queryJSFunctionName).append("(pageNo); \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽 return true;聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽 }catch(e){ \n")
//聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽 try{ \n")
//聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽聽聽聽 document.forms[0].submit();聽 \n")
//聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽 }catch(e){聽聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽聽聽 alert('灝氭湭瀹氫箟鏌ヨ鏂規硶錛歠unction ")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(queryJSFunctionName).append("()'); \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽聽聽 document.all[\"").append(pageNoParamName)
聽聽聽聽聽聽聽聽聽聽聽聽 .append("\"].value = curPage;聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽聽聽聽 return false;聽 \n")
//聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽 }聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽 }聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "}")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "</script>聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "");
聽聽聽聽聽聽聽 html.append( "<table聽 border=0 cellspacing=0 cellpadding=0 align=center width=80%>聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append( "聽 <tr>聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append( "聽聽聽 <td align=left><br>聽 \n");
聽聽聽聽聽聽聽 html.append(聽 "聽聽聽聽聽聽 鍏? ).append( getTotalPageCount() ).append( "欏?)
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 "聽聽聽聽聽聽 [") .append(getStart()).append("..").append(getEnd())
聽聽聽聽聽聽聽聽聽聽聽聽 .append("/").append(this.getTotalSize()).append("]聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append( "聽聽聽 </td>聽 \n")
聽聽聽聽聽聽聽聽聽聽聽聽 .append( "聽聽聽 <td align=right>聽 \n");
聽聽聽聽聽聽聽 if (hasPreviousPage()){
聽聽聽聽聽聽聽聽聽聽聽聽 html.append( "[<a href='javascript:").append(gotoPage)
聽聽聽聽聽聽聽聽聽聽聽聽 .append("(") .append(getCurrentPageNo()-1)聽
聽聽聽聽聽聽聽聽聽聽聽聽 .append( ")'>涓婁竴欏?lt;/a>]聽聽 \n");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 html.append(聽 "聽聽聽聽聽聽 絎?)
聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽聽 "聽聽聽聽聽聽聽 <select name='")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(pageNoParamName).append("' onChange='javascript:")
聽聽聽聽聽聽聽聽聽聽聽聽 .append(gotoPage).append("(this.value)'>\n");
聽聽聽聽聽聽聽 String selected = "selected";
聽聽聽聽聽聽聽 for(int i=1;i<=getTotalPageCount();i++){
聽聽聽聽聽聽聽聽聽聽聽 if( i == getCurrentPageNo() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 selected = "selected";
聽聽聽聽聽聽聽聽聽聽聽 else selected = "";
聽聽聽聽聽聽聽聽聽聽聽 html.append( "聽聽聽聽聽 <option value='").append(i).append("' ")
聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(selected).append(">").append(i).append("</option>聽 \n");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 if (getCurrentPageNo()>getTotalPageCount()){
聽聽聽聽聽聽聽聽聽聽聽 html.append( "聽聽聽聽聽 <option value='").append(getCurrentPageNo())
聽聽聽聽聽聽聽聽聽聽聽 .append("' selected>").append(getCurrentPageNo())
聽聽聽聽聽聽聽聽聽聽聽 .append("</option>聽 \n");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 html.append( "聽聽聽 </select>欏德?\n");
聽聽聽聽聽聽聽 if (hasNextPage()){
聽聽聽聽聽聽聽聽聽聽聽聽 html.append( "聽聽聽 [<a href='javascript:").append(gotoPage)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append("(").append((getCurrentPageNo()+1))聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append( ")'>涓嬩竴欏?lt;/a>]聽聽 \n");
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 html.append( "</td></tr></table>聽 \n");

聽聽聽聽聽聽聽 return html.toString();

聽聽聽 }
}


///////////////////////////////////
//
//聽 RowSetPage.java
//聽 author: evan_zhao@hotmail.com
//
///////////////////////////////////
package page;

import javax.sql.RowSet;


/**
聽* <p>Title: RowSetPage</p>
聽* <p>Description: 浣跨敤RowSet灝佽鏁版嵁鐨勫垎欏靛璞?lt;/p>
聽* <p>Copyright: Copyright (c) 2003</p>
聽* @author evan_zhao@hotmail.com
聽* @version 1.0
聽*/

public class RowSetPage extends Page {
聽聽聽 private javax.sql.RowSet rs;

聽聽聽 /**
聽聽聽聽 *絀洪〉
聽聽聽聽 */
聽聽聽 public static final RowSetPage EMPTY_PAGE = new RowSetPage();

聽聽聽 /**
聽聽聽聽 *榛樿鏋勯犳柟娉曪紝鍒涘緩絀洪〉
聽聽聽聽 */
聽聽聽 public RowSetPage(){
聽聽聽聽聽 this(null, 0,0);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *鏋勯犲垎欏靛璞?
聽聽聽聽 *@param crs 鍖呭惈涓欏墊暟鎹殑OracleCachedRowSet
聽聽聽聽 *@param start 璇ラ〉鏁版嵁鍦ㄦ暟鎹簱涓殑璧峰浣嶇疆
聽聽聽聽 *@param totalSize 鏁版嵁搴撲腑鍖呭惈鐨勮褰曟繪暟
聽聽聽聽 */
聽聽聽 public RowSetPage(RowSet crs, int start, int totalSize) {
聽聽聽聽聽聽聽 this(crs,start,totalSize,Page.DEFAULT_PAGE_SIZE);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *鏋勯犲垎欏靛璞?
聽聽聽聽 *@param crs 鍖呭惈涓欏墊暟鎹殑OracleCachedRowSet
聽聽聽聽 *@param start 璇ラ〉鏁版嵁鍦ㄦ暟鎹簱涓殑璧峰浣嶇疆
聽聽聽聽 *@param totalSize 鏁版嵁搴撲腑鍖呭惈鐨勮褰曟繪暟
聽聽聽聽 *@pageSize 鏈〉鑳藉綰崇殑璁板綍鏁?
聽聽聽聽 */
聽聽聽 public RowSetPage(RowSet crs, int start, int totalSize, int pageSize) {
聽聽聽聽聽聽聽 try{
聽聽聽聽聽聽聽聽聽聽聽 int avaCount=0;
聽聽聽聽聽聽聽聽聽聽聽 if (crs!=null) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 crs.beforeFirst();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (crs.next()){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 crs.last();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 avaCount = crs.getRow();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 crs.beforeFirst();
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 rs = crs;
聽聽聽聽聽聽聽聽聽聽聽 super.init(start,avaCount,totalSize,pageSize,rs);
聽聽聽聽聽聽聽 }catch(java.sql.SQLException sqle){
聽聽聽聽聽聽聽聽聽聽聽 throw new RuntimeException(sqle.toString());
聽聽聽聽聽聽聽 }
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *鍙栧垎欏靛璞′腑鐨勮褰曟暟鎹?
聽聽聽聽 */
聽聽聽 public javax.sql.RowSet getRowSet(){
聽聽聽聽聽聽聽 return rs;
聽聽聽 }


}


///////////////////////////////////
//
//聽 PagedStatement.java
//聽 author: evan_zhao@hotmail.com
//
///////////////////////////////////

package page;

import foo.DBUtil;

import java.math.BigDecimal;
import java.util.List;
import java.util.Iterator;
import java.util.Collections;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.PreparedStatement;
import java.sql.Timestamp;
import javax.sql.RowSet;

/**
聽* <p>Title: 鍒嗛〉鏌ヨ</p>
聽* <p>Description: 鏍規嵁鏌ヨ璇彞鍜岄〉鐮佹煡璇㈠嚭褰撻〉鏁版嵁</p>
聽* <p>Copyright: Copyright (c) 2002</p>
聽* @author evan_zhao@hotmail.com
聽* @version 1.0
聽*/
public abstract class PagedStatement {
聽聽聽 public final static int MAX_PAGE_SIZE = Page.MAX_PAGE_SIZE;

聽聽聽 protected String countSQL, querySQL;
聽聽聽 protected int pageNo,pageSize,startIndex,totalCount;
聽聽聽 protected javax.sql.RowSet rowSet;
聽聽聽 protected RowSetPage rowSetPage;

聽聽聽 private List boundParams;

聽聽聽 /**
聽聽聽聽 * 鏋勯犱竴鏌ヨ鍑烘墍鏈夋暟鎹殑PageStatement
聽聽聽聽 * @param sql聽 query sql
聽聽聽聽 */
聽聽聽 public PagedStatement(String sql){
聽聽聽聽聽聽聽 this(sql,1,MAX_PAGE_SIZE);
聽聽聽 }


聽聽聽 /**
聽聽聽聽 * 鏋勯犱竴鏌ヨ鍑哄綋欏墊暟鎹殑PageStatement
聽聽聽聽 * @param sql聽 query sql
聽聽聽聽 * @param pageNo聽 欏電爜
聽聽聽聽 */
聽聽聽 public PagedStatement(String sql, int pageNo){
聽聽聽聽聽聽聽 this(sql, pageNo, Page.DEFAULT_PAGE_SIZE);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鏋勯犱竴鏌ヨ鍑哄綋欏墊暟鎹殑PageStatement錛屽茍鎸囧畾姣忛〉鏄劇ず璁板綍鏉℃暟
聽聽聽聽 * @param sql query sql
聽聽聽聽 * @param pageNo 欏電爜
聽聽聽聽 * @param pageSize 姣忛〉瀹歸噺
聽聽聽聽 */
聽聽聽 public PagedStatement(String sql, int pageNo, int pageSize){
聽聽聽聽聽聽聽 this.pageNo = pageNo;
聽聽聽聽聽聽聽 this.pageSize = pageSize;
聽聽聽聽聽聽聽 this.startIndex = Page.getStartOfAnyPage(pageNo, pageSize);
聽聽聽聽聽聽聽 this.boundParams = Collections.synchronizedList(new java.util.LinkedList());

聽聽聽聽聽聽聽 this.countSQL = "select count(*) from ( " + sql +") ";
聽聽聽聽聽聽聽 this.querySQL = intiQuerySQL(sql, this.startIndex, pageSize);
聽聽聽 }


聽聽聽 /**
聽聽聽聽 *鐢熸垚鏌ヨ涓欏墊暟鎹殑sql璇彞
聽聽聽聽 *@param sql 鍘熸煡璇㈣鍙?
聽聽聽聽 *@startIndex 寮濮嬭褰曚綅緗?
聽聽聽聽 *@size 闇瑕佽幏鍙栫殑璁板綍鏁?
聽聽聽聽 */
聽聽聽 protected abstract聽 String intiQuerySQL(String sql, int startIndex, int size);


聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勫璞¤緗寚瀹氬弬鏁扮殑鍊?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param obj 鍖呭惈鍙傛暟鍊肩殑瀵硅薄
聽聽聽聽 */
聽聽聽 public void setObject(int index, Object obj) throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp = new BoundParam(index, obj);
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add( bp);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勫璞¤緗寚瀹氬弬鏁扮殑鍊?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param obj 鍖呭惈鍙傛暟鍊肩殑瀵硅薄
聽聽聽聽 *@param targetSqlType 鍙傛暟鐨勬暟鎹簱綾誨瀷
聽聽聽聽 */
聽聽聽 public void setObject(int index, Object obj, int targetSqlType) throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp = new BoundParam(index, obj, targetSqlType);
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add(bp );
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勫璞¤緗寚瀹氬弬鏁扮殑鍊?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param obj 鍖呭惈鍙傛暟鍊肩殑瀵硅薄
聽聽聽聽 *@param targetSqlType 鍙傛暟鐨勬暟鎹簱綾誨瀷(甯擱噺瀹氫箟鍦╦ava.sql.Types涓?
聽聽聽聽 *@param scale 綺懼害錛屽皬鏁扮偣鍚庣殑浣嶆暟
聽聽聽聽 * 錛堝彧瀵箃argetSqlType鏄疶ypes.NUMBER鎴朤ypes.DECIMAL鏈夋晥錛屽叾瀹冪被鍨嬪垯蹇界暐錛?
聽聽聽聽 */
聽聽聽 public void setObject(int index, Object obj, int targetSqlType, int scale) throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp = new BoundParam(index, obj, targetSqlType, scale) ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add(bp);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勫瓧絎︿覆璁劇疆鎸囧畾鍙傛暟鐨勫?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param str 鍖呭惈鍙傛暟鍊肩殑瀛楃涓?
聽聽聽聽 */
聽聽聽 public void setString(int index, String str)throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp = new BoundParam(index, str)聽 ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add(bp);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勫瓧絎︿覆璁劇疆鎸囧畾鍙傛暟鐨勫?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param timestamp 鍖呭惈鍙傛暟鍊肩殑鏃墮棿鎴?
聽聽聽聽 */
聽聽聽 public void setTimestamp(int index, Timestamp timestamp)throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp = new BoundParam(index, timestamp)聽 ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add( bp );
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勬暣鏁拌緗寚瀹氬弬鏁扮殑鍊?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param value 鍖呭惈鍙傛暟鍊肩殑鏁存暟
聽聽聽聽 */
聽聽聽 public void setInt(int index, int value)throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp =聽 new BoundParam(index, new Integer(value))聽 ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add( bp );
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勯暱鏁存暟璁劇疆鎸囧畾鍙傛暟鐨勫?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param value 鍖呭惈鍙傛暟鍊肩殑闀挎暣鏁?
聽聽聽聽 */
聽聽聽 public void setLong(int index, long value)throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp =聽 new BoundParam(index, new Long(value))聽 ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add( bp );
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨勫弻綺懼害嫻偣鏁拌緗寚瀹氬弬鏁扮殑鍊?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param value 鍖呭惈鍙傛暟鍊肩殑鍙岀簿搴︽誕鐐規暟
聽聽聽聽 */
聽聽聽 public void setDouble(int index, double value)throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp =聽 new BoundParam(index, new Double(value))聽聽 ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add( bp);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *浣跨敤緇欏嚭鐨凚igDecimal璁劇疆鎸囧畾鍙傛暟鐨勫?
聽聽聽聽 *@param index 絎竴涓弬鏁頒負1錛岀浜屼釜涓?錛屻傘傘?
聽聽聽聽 *@param bd 鍖呭惈鍙傛暟鍊肩殑BigDecimal
聽聽聽聽 */
聽聽聽 public void setBigDecimal(int index, BigDecimal bd)throws SQLException{
聽聽聽聽聽聽聽 BoundParam bp =聽聽 new BoundParam(index, bd )聽聽 ;
聽聽聽聽聽聽聽 boundParams.remove(bp);
聽聽聽聽聽聽聽 boundParams.add( bp);
聽聽聽 }

聽聽聽 private聽 void setParams(PreparedStatement pst) throws SQLException{
聽聽聽聽聽聽聽 if (pst==null || this.boundParams==null || this.boundParams.size()==0 ) return ;
聽聽聽聽聽聽聽 BoundParam param;
聽聽聽聽聽聽聽 for (Iterator itr = this.boundParams.iterator();itr.hasNext();){
聽聽聽聽聽聽聽聽聽聽聽 param = (BoundParam) itr.next();
聽聽聽聽聽聽聽聽聽聽聽 if聽 (param==null) continue;
聽聽聽聽聽聽聽聽聽聽聽 if (param.sqlType == java.sql.Types.OTHER){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 pst.setObject(param.index, param.value);
聽聽聽聽聽聽聽聽聽聽聽 }else{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 pst.setObject(param.index, param.value, param.sqlType, param.scale);
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 }
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鎵ц鏌ヨ鍙栧緱涓欏墊暟鎹紝鎵ц緇撴潫鍚庡叧闂暟鎹簱榪炴帴
聽聽聽聽 * @return RowSetPage
聽聽聽聽 * @throws SQLException
聽聽聽聽 */
聽聽聽 public聽 RowSetPage executeQuery() throws SQLException{
聽聽聽聽聽聽聽 System.out.println("executeQueryUsingPreparedStatement");
聽聽聽聽聽聽聽 Connection conn = DBUtil.getConnection();
聽聽聽聽聽聽聽 PreparedStatement pst = null;
聽聽聽聽聽聽聽 ResultSet rs = null;
聽聽聽聽聽聽聽 try{
聽聽聽聽聽聽聽聽聽聽聽 pst = conn.prepareStatement(this.countSQL);
聽聽聽聽聽聽聽聽聽聽聽 setParams(pst);
聽聽聽聽聽聽聽聽聽聽聽 rs =pst.executeQuery();
聽聽聽聽聽聽聽聽聽聽聽 if (rs.next()){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 totalCount = rs.getInt(1);
聽聽聽聽聽聽聽聽聽聽聽 } else {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 totalCount = 0;
聽聽聽聽聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽聽聽聽聽 rs.close();
聽聽聽聽聽聽聽聽聽聽聽 pst.close();

聽聽聽聽聽聽聽聽聽聽聽 if (totalCount < 1 ) return RowSetPage.EMPTY_PAGE;

聽聽聽聽聽聽聽聽聽聽聽 pst = conn.prepareStatement(this.querySQL);
聽聽聽聽聽聽聽聽聽聽聽 System.out.println(querySQL);
聽聽聽聽聽聽聽聽聽聽聽 pst.setFetchSize(this.pageSize);
聽聽聽聽聽聽聽聽聽聽聽 setParams(pst);
聽聽聽聽聽聽聽聽聽聽聽 rs =pst.executeQuery();
聽聽聽聽聽聽聽聽聽聽聽 //rs.setFetchSize(pageSize);

聽聽聽聽聽聽聽聽聽聽聽 this.rowSet = populate(rs);

聽聽聽聽聽聽聽聽聽聽聽 rs.close();
聽聽聽聽聽聽聽聽聽聽聽 rs = null;
聽聽聽聽聽聽聽聽聽聽聽 pst.close();
聽聽聽聽聽聽聽聽聽聽聽 pst = null;

聽聽聽聽聽聽聽聽聽聽聽 this.rowSetPage = new RowSetPage(this.rowSet,startIndex,totalCount,pageSize);
聽聽聽聽聽聽聽聽聽聽聽 return this.rowSetPage;
聽聽聽聽聽聽聽 }catch(SQLException sqle){
聽聽聽聽聽聽聽聽聽聽聽 //System.out.println("executeQuery SQLException");
聽聽聽聽聽聽聽聽聽聽聽 sqle.printStackTrace();
聽聽聽聽聽聽聽聽聽聽聽 throw sqle;
聽聽聽聽聽聽聽 }catch(Exception e){
聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽聽聽聽聽 throw new RuntimeException(e.toString());
聽聽聽聽聽聽聽 }finally{
聽聽聽聽聽聽聽聽聽聽聽 //System.out.println("executeQuery finally");
聽聽聽聽聽聽聽聽聽聽聽 DBUtil.close(rs, pst, conn);
聽聽聽聽聽聽聽 }
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *灝哛esultSet鏁版嵁濉厖榪汣achedRowSet
聽聽聽聽 */
聽聽聽 protected abstract RowSet populate(ResultSet rs) throws SQLException;

聽聽聽 /**
聽聽聽聽 *鍙栧皝瑁呮垚RowSet鏌ヨ緇撴灉
聽聽聽聽 *@return RowSet
聽聽聽聽 */
聽聽聽 public javax.sql.RowSet getRowSet(){
聽聽聽聽聽聽聽 return this.rowSet;
聽聽聽 }


聽聽聽 /**
聽聽聽聽 *鍙栧皝瑁呮垚RowSetPage鐨勬煡璇㈢粨鏋?
聽聽聽聽 *@return RowSetPage
聽聽聽聽 */
聽聽聽 public RowSetPage getRowSetPage() {
聽聽聽聽聽聽聽 return this.rowSetPage;
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *鍏抽棴鏁版嵁搴撹繛鎺?
聽聽聽聽 */
聽聽聽 public void close(){
聽聽聽聽聽聽聽 //鍥犱負鏁版嵁搴撹繛鎺ュ湪鏌ヨ緇撴潫鎴栧彂鐢熷紓甯告椂鍗沖叧闂紝姝ゅ涓嶅仛浠諱綍浜嬫儏
聽聽聽聽聽聽聽 //鐣欏緟鎵╁厖銆?
聽聽聽 }

聽聽聽 private class BoundParam {
聽聽聽聽聽聽聽 int index;
聽聽聽聽聽聽聽 Object value;
聽聽聽聽聽聽聽 int sqlType;
聽聽聽聽聽聽聽 int scale;

聽聽聽聽聽聽聽 public BoundParam(int index, Object value) {
聽聽聽聽聽聽聽聽聽聽聽 this(index, value, java.sql.Types.OTHER);
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public BoundParam(int index, Object value, int sqlType) {
聽聽聽聽聽聽聽聽聽聽聽 this(index, value, sqlType, 0);
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public BoundParam(int index, Object value, int sqlType, int scale) {
聽聽聽聽聽聽聽聽聽聽聽 this.index = index;
聽聽聽聽聽聽聽聽聽聽聽 this.value = value;
聽聽聽聽聽聽聽聽聽聽聽 this.sqlType = sqlType;
聽聽聽聽聽聽聽聽聽聽聽 this.scale = scale;
聽聽聽聽聽聽聽 }

聽聽聽聽聽聽聽 public boolean equals(Object obj){
聽聽聽聽聽聽聽聽聽聽聽 if (obj!=null && this.getClass().isInstance(obj)){
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 BoundParam bp = (BoundParam)obj;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if (this.index==bp.index) return true;
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 return false;
聽聽聽聽聽聽聽 }
聽聽聽 }

}


///////////////////////////////////
//
//聽 PagedStatementOracleImpl.java
//聽 author: evan_zhao@hotmail.com
//
///////////////////////////////////
package page;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.RowSet;
import oracle.jdbc.rowset.OracleCachedRowSet;

/**
聽* <p>Title: 鍒嗛〉鏌ヨOracle鏁版嵁搴撳疄鐜?lt;/p>
聽* <p>Copyright: Copyright (c) 2002</p>
聽* @author evan_zhao@hotmail.com
聽* @version 1.0
聽*/
public class PagedStatementOracleImpl extends PagedStatement {

聽聽聽 /**
聽聽聽聽 * 鏋勯犱竴鏌ヨ鍑烘墍鏈夋暟鎹殑PageStatement
聽聽聽聽 * @param sql聽 query sql
聽聽聽聽 */
聽聽聽 public PagedStatementOracleImpl(String sql){
聽聽聽聽聽聽聽 super(sql);
聽聽聽 }


聽聽聽 /**
聽聽聽聽 * 鏋勯犱竴鏌ヨ鍑哄綋欏墊暟鎹殑PageStatement
聽聽聽聽 * @param sql聽 query sql
聽聽聽聽 * @param pageNo聽 欏電爜
聽聽聽聽 */
聽聽聽 public PagedStatementOracleImpl(String sql, int pageNo){
聽聽聽聽聽聽聽 super(sql, pageNo);
聽聽聽 }

聽聽聽 /**
聽聽聽聽 * 鏋勯犱竴鏌ヨ鍑哄綋欏墊暟鎹殑PageStatement錛屽茍鎸囧畾姣忛〉鏄劇ず璁板綍鏉℃暟
聽聽聽聽 * @param sql query sql
聽聽聽聽 * @param pageNo 欏電爜
聽聽聽聽 * @param pageSize 姣忛〉瀹歸噺
聽聽聽聽 */
聽聽聽 public PagedStatementOracleImpl(String sql, int pageNo, int pageSize){
聽聽聽聽聽聽聽 super(sql, pageNo, pageSize);
聽聽聽 }


聽聽聽 /**
聽聽聽聽 *鐢熸垚鏌ヨ涓欏墊暟鎹殑sql璇彞
聽聽聽聽 *@param sql 鍘熸煡璇㈣鍙?
聽聽聽聽 *@startIndex 寮濮嬭褰曚綅緗?
聽聽聽聽 *@size 闇瑕佽幏鍙栫殑璁板綍鏁?
聽聽聽聽 */
聽聽聽 protected String intiQuerySQL(String sql, int startIndex, int size){
聽聽聽聽聽聽聽 StringBuffer querySQL = new StringBuffer();
聽聽聽聽聽聽聽 if (size != super.MAX_PAGE_SIZE) {
聽聽聽聽聽聽聽聽聽聽聽 querySQL.append("select * from (select my_table.*,rownum as my_rownum from(")
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(聽 sql)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(") my_table where rownum<").append(startIndex + size)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(") where my_rownum>=").append(startIndex);
聽聽聽聽聽聽聽 } else {
聽聽聽聽聽聽聽聽聽聽聽 querySQL.append("select * from (select my_table.*,rownum as my_rownum from(")
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(sql)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(") my_table ")
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 .append(") where my_rownum>=").append(startIndex);
聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 return querySQL.toString();
聽聽聽 }

聽聽聽 /**
聽聽聽聽 *灝哛esultSet鏁版嵁濉厖榪汣achedRowSet
聽聽聽聽 */
聽聽聽 protected聽 RowSet populate(ResultSet rs) throws SQLException{
聽聽聽聽聽聽聽 OracleCachedRowSet ocrs = new OracleCachedRowSet();
聽聽聽聽聽聽聽 ocrs.populate(rs);
聽聽聽聽聽聽聽 return ocrs;
聽聽聽 }

}



]]>
主站蜘蛛池模板: 午夜理伦剧场免费| 免费高清在线影片一区| 亚洲图片激情小说| 国产男女猛烈无遮挡免费网站| 中文字幕在线免费看| 亚洲国产精品成人精品软件| 日日操夜夜操免费视频| 暖暖在线视频免费视频| 亚洲日产乱码一二三区别| 亚洲欧洲日产国码无码久久99| 国产成人精品免费视频大全麻豆| 无遮挡呻吟娇喘视频免费播放| 亚洲国产国产综合一区首页| 日本一道综合久久aⅴ免费| 成人爽a毛片免费| 豆国产96在线|亚洲| 亚洲视频在线免费看| 四虎永久免费网站免费观看| 91精品视频在线免费观看| 免费看黄福利app导航看一下黄色录像| 亚洲av福利无码无一区二区| 亚洲AV无码乱码在线观看牲色| 24小时免费看片| 国内永久免费crm系统z在线 | 亚洲免费在线观看视频| 亚洲情侣偷拍精品| aa级一级天堂片免费观看| 国内精品一级毛片免费看| 羞羞视频网站免费入口| 亚洲自国产拍揄拍| 久久亚洲AV成人无码国产| 一本色道久久综合亚洲精品| 国产精品色午夜视频免费看 | 免费一级毛片在级播放| 99精品全国免费观看视频| 久久午夜伦鲁片免费无码| 久久精品免费网站网| 无遮挡a级毛片免费看| 亚洲av无码成人影院一区| 国产成人亚洲合集青青草原精品| 亚洲AV成人片色在线观看高潮|