??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲视频在线观看,91亚洲国产成人久久精品,亚洲人成电影亚洲人成9999网http://www.tkk7.com/pear/zh-cnFri, 09 May 2025 21:59:29 GMTFri, 09 May 2025 21:59:29 GMT60伤心太^z,左连接和内联的区?/title><link>http://www.tkk7.com/pear/archive/2006/12/14/87812.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Thu, 14 Dec 2006 12:47:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/12/14/87812.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/87812.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/12/14/87812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/87812.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/87812.html</trackback:ping><description><![CDATA[ <dl> <dt class="indent">INNER </dt> <dd class="level2">指定q回所有相匚w的行寏V废弃两个表中不匚w的行。如果未指定联接cdQ则q是默认讄?br /></dd> <dt class="indent">LEFT [OUTER] </dt> <dd class="level2">指定除所有由内联接返回的行外Q所有来自左表的不符合指定条件的行也包含在结果集内。来自左表的输出列设|ؓ NULL?br /></dd> <dt class="indent">RIGHT [OUTER] </dt> <dd class="level2">指定除所有由内联接返回的行外Q所有来自右表的不符合指定条件的行也包含在结果集内。来自右表的输出列设|ؓ NULL?br /></dd> <dt class="indent">FULL [OUTER] </dt> <dd class="level2">如果来自左表或右表的某行与选择准则不匹配,则指定在l果集内包含该行Qƈ且将与另一个表对应的输出列讄?NULL。除此之外,l果集中q包含通常由内联接q回的所有行?br /></dd> <dt class="indent"><join_hint> </dt> <dd class="level2">指定联接提示或执行算法。如果指定了 <join_hint>Q也必须明确指定 INNER、LEFT、RIGHT ?FULL。有兌接提C的更多信息Q请参见 <a href="mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_fa-fz_4ox9.htm">FROM</a>?br /></dd> <dt class="indent">JOIN </dt> <dd class="level2">表示联接所指定的表或视图?</dd> </dl> <img src ="http://www.tkk7.com/pear/aggbug/87812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-12-14 20:47 <a href="http://www.tkk7.com/pear/archive/2006/12/14/87812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>伤心太^z,相识恨晚的SQLhttp://www.tkk7.com/pear/archive/2006/12/14/87809.htmlpearpearThu, 14 Dec 2006 12:43:00 GMThttp://www.tkk7.com/pear/archive/2006/12/14/87809.htmlhttp://www.tkk7.com/pear/comments/87809.htmlhttp://www.tkk7.com/pear/archive/2006/12/14/87809.html#Feedback0http://www.tkk7.com/pear/comments/commentRss/87809.htmlhttp://www.tkk7.com/pear/services/trackbacks/87809.htmltoday
2006-1-1
2006-1-2
2006-10-1
2006-10-2
2006-5-1
ҎA表中的数据写一条sql语句查询出如下结?
today              nextday
2006-1-1       2006-1-2
2006-10-1     2006-10-2
单的题目都把我难倒,痛苦。。?br />下面是QQ朋友帮我想的办法Q?br />解决办法Q?。select  a.today as today ,b.today as nextdate from A a join A b on b.today -a.today =1
                    2。select a.today,b.today as nextdate from A a,A b where a.today=b.today-1


pear 2006-12-14 20:43 发表评论
]]>
伤心太^z,W试栽跟头?/title><link>http://www.tkk7.com/pear/archive/2006/12/14/87795.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Thu, 14 Dec 2006 11:25:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/12/14/87795.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/87795.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/12/14/87795.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/87795.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/87795.html</trackback:ping><description><![CDATA[ <p>test?br /> id      salary  <br />1       100   <br />2       200    <br /></p> <p>main?br />id    test_id    salary        <br />1     1         Null      <br />2     1         Null       <br />3     2          Null            <br /><br />Ltest表中的salary更新main表中的salary<br />看到q题目让我傻了,q么单的题目Q可我就是不会?/p> <p>下面是我回来后重新查帮助后才解决的。测试数据如下,<br />create table test(<br />  id int primary key identity(1,1),<br />  salary int<br />)<br />go<br />insert into test(salary) values(100)<br />insert into test(salary) values(200)<br />go<br />create table main(<br />  id int primary key identity(1,1),<br />  test_id int references test(id),<br />  salary int<br />)<br />go<br />insert into main(test_id) values(1)<br />insert into main(test_id) values(2)<br />go</p> <p>{案Q?br />UPDATE main<br />SET main.salary = test.salary<br />FROM main INNER JOIN test ON (test.id =main.test_id)</p> <p>ȝQupdate q可以和 from 一LQ自q的是孤陋寡闻?/p> <img src ="http://www.tkk7.com/pear/aggbug/87795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-12-14 19:25 <a href="http://www.tkk7.com/pear/archive/2006/12/14/87795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我做的相册系l(女生Q?/title><link>http://www.tkk7.com/pear/archive/2006/11/11/80561.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Sat, 11 Nov 2006 04:19:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/11/11/80561.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/80561.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/11/11/80561.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/80561.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/80561.html</trackback:ping><description><![CDATA[最q没什么事情好玩的Q所以就弄了个相册系l?br />Q下载:<a href="mailto:share_supergirl@126.com">share_supergirl@126.com</a>  密码QgoodluckQ现在还在l开?br /><br />架构是jstl+struts+spring+hibernate. 但经验不I设计q有很多问题?br /><br />希望跟大家交学习?br /><br />希望哪位朋友?“批斗”一?我的pȝ?img src ="http://www.tkk7.com/pear/aggbug/80561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-11-11 12:19 <a href="http://www.tkk7.com/pear/archive/2006/11/11/80561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重新学习 Hibernate fetch lazy cascade inverse 关键?http://www.tkk7.com/pear/archive/2006/11/05/79251.htmlpearpearSun, 05 Nov 2006 12:04:00 GMThttp://www.tkk7.com/pear/archive/2006/11/05/79251.htmlhttp://www.tkk7.com/pear/comments/79251.htmlhttp://www.tkk7.com/pear/archive/2006/11/05/79251.html#Feedback2http://www.tkk7.com/pear/comments/commentRss/79251.htmlhttp://www.tkk7.com/pear/services/trackbacks/79251.htmlHibernate最让h头大的就是对集合的加载Ş式?br />书看了Nơ了Q还是没有真正理解Hibernate。所以下午专门做了下试Q对配置文g的意思加׃认识?br />
假设有两个表QPhotos(一Q?---  picture(多)Photo包含picture集合

l论1Q?HQL代码 > fetchQ配|) > lazy Q配|)
l论2Q?默认 lazy="true"
l论3Q?fetch ?lazy 主要是用来联查询的Q ??cascade ?inverse 主要是用来联插入和修改?br />l论4Q?如果你是用spring来帮你管理你的session, q且是自动提交,延迟加蝲q于没加蝲~_~(当然
                除非你手动重新打开session然后手动Hibernate.initialize(set);然后关闭session.
l论5:     cascade主要是简化了在代码中的联更新和删除?br />jl论6Q老爸可以有多个孩子,一个孩子不能有多个老爸Q而且老爸说的? 孩子围着老爸转?br />               所以Photos老爸要有权力所?cascade q个关键子都是送给老爸的, 也就是联更斎ͼ
               老爸改姓了,儿子也得跟着改,呵呵。“不Ӟ没有零花钱咯”?br />                而Picture儿子整体挨骂Q但是还是要l护父子之间良好的关p,对老爸百依NQ所
               以老爸pQ儿子,“关p,׃来维护(inverse="true") Q不然就不给零花钱。呵。”?br />               <set name="pictures" inverse="true" cascade="all">
                    <key>
                       <column name="photosid" not-null="true" />
                    </key>
                 <one-to-many class="girl.domain.Picture" />
             </set>
               
试代码Q?br />
   Photos p = ps.getById(1);
  Set<Picture> set = p.getPictures();
  for(Picture pic : set){
     System.out.println(pic.getId());
  }

  配置文g的一部分Q?br />       <set name="pictures" inverse="true" cascade="all" >
            <key>
                <column name="photosid" not-null="true" />
            </key>
            <one-to-many class="girl.domain.Picture" />
        </set>

试q程会对配置文g不断修改Qƈ且从来不曾手动重新打开session

试l构Q?br />
当配|条件ؓ lazy=true 一句查?试代码中没有调用getPicture()  正常
Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?

lazy=true 一句查?有getPicture()
Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?


lazy=true 一句查询?有getPicture() q且讉K了里面的元数Picture 且有异常抛出
Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?


lazy="false" 两句查询  肯定没问题,因ؓ全部数据都个查了出来 所以怎么调用都正?br />Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?
Hibernate: select pictures0_.photosid as photosid1_, pictures0_.id as id1_, pictures0_.id as id2_0_, pictures0_.photosid as photosid2_0_, pictures0_.name as name2_0_, pictures0_.clicked as clicked2_0_, pictures0_.uploaddate as uploaddate2_0_, pictures0_.size as size2_0_, pictures0_.description as descript7_2_0_, pictures0_.uri as uri2_0_ from super.picture pictures0_ where pictures0_.photosid=?


fetch="join"  一句查询?效果 Q= lazy="false" 呵呵Q哪个效率高Q我׃知道了。。。。。。。。。。?br />Hibernate: select photos0_.id as id0_1_, photos0_.userid as userid0_1_, photos0_.typeid as typeid0_1_, photos0_.name as name0_1_, photos0_.createtime as createtime0_1_, photos0_.description as descript6_0_1_, photos0_.faceid as faceid0_1_, photos0_.uri as uri0_1_, pictures1_.photosid as photosid3_, pictures1_.id as id3_, pictures1_.id as id2_0_, pictures1_.photosid as photosid2_0_, pictures1_.name as name2_0_, pictures1_.clicked as clicked2_0_, pictures1_.uploaddate as uploaddate2_0_, pictures1_.size as size2_0_, pictures1_.description as descript7_2_0_, pictures1_.uri as uri2_0_ from super.photos photos0_ left outer join super.picture pictures1_ on photos0_.id=pictures1_.photosid where photos0_.id=?

不加fetchQ?join" 一句查询?没有getPicture() 正常
Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?

不加fetchQ?join" 一句查询?有getPicture() 正常
Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?

不加fetchQ?join" 一句查?有getPicture() q且讉K里面的元素Picture的ID 有异常抛?br />Hibernate: select photos0_.id as id0_0_, photos0_.userid as userid0_0_, photos0_.typeid as typeid0_0_, photos0_.name as name0_0_, photos0_.createtime as createtime0_0_, photos0_.description as descript6_0_0_, photos0_.faceid as faceid0_0_, photos0_.uri as uri0_0_ from super.photos photos0_ where photos0_.id=?

来个两兵交战 fetch="join" lazy="true"  呵呵 l果Q一句查询, l构正常 所以就当lazy不存在好了?看来fetch 是老大。、、、、、、、、、、、、?br />Hibernate: select photos0_.id as id0_1_, photos0_.userid as userid0_1_, photos0_.typeid as typeid0_1_, photos0_.name as name0_1_, photos0_.createtime as createtime0_1_, photos0_.description as descript6_0_1_, photos0_.faceid as faceid0_1_, photos0_.uri as uri0_1_, pictures1_.photosid as photosid3_, pictures1_.id as id3_, pictures1_.id as id2_0_, pictures1_.photosid as photosid2_0_, pictures1_.name as name2_0_, pictures1_.clicked as clicked2_0_, pictures1_.uploaddate as uploaddate2_0_, pictures1_.size as size2_0_, pictures1_.description as descript7_2_0_, pictures1_.uri as uri2_0_ from super.photos photos0_ left outer join super.picture pictures1_ on photos0_.id=pictures1_.photosid where photos0_.id=?



pear 2006-11-05 20:04 发表评论
]]>
js 天气预报Q蒙了我好久?/title><link>http://www.tkk7.com/pear/archive/2006/11/03/78939.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Fri, 03 Nov 2006 08:07:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/11/03/78939.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/78939.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/11/03/78939.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/78939.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/78939.html</trackback:ping><description><![CDATA[ <p>1。代?br /><IFRAME ID='ifm2' WIDTH='189' HEIGHT='190' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' SRC='http://weather.qq.com/inc/ss258.htm'></IFRAME><br /><br><br><br><br></p> <p><iframe width="145" height="130" border="0" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="<a allowTransparency="true"></iframe><br /><br><br><br><br></p> <p><iframe ALIGN='center' src="<a width="168" height="54" frameborder="no" border="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br /><br><br><br><br></p> <p><IFRAME ID='ifm1' WIDTH='405' HEIGHT='332' ALIGN='center' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' SRC="<a ></IFRAME</a>> <br /><br><br><br></p> <p><iframe width=160 height=230 frameborder=0 ALIGN='center' scrolling=NO src=http://appnews.qq.com/cgi-bin/news_qq_search?city=q州></iframe> <br /><br><br><br></p> <p><iframe width="469" height="218" border="0" align="center" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no" src="<a allowTransparency="true"></iframe><br /><br><br><br /><IFRAME ID='ifm1' WIDTH='260' HEIGHT='70' ALIGN='CENTER' MARGINWIDTH='0' MARGINHEIGHT='0' HSPACE='0' VSPACE='0' FRAMEBORDER='0' SCROLLING='NO' src="<a ></iframe</a>></p> <p>效果如下Q?br /><br /><br /><iframe id="ifm20" align="center" marginwidth="0" marginheight="0" src="http://weather.qq.com/inc/ss258.htm" frameborder="0" width="189" scrolling="no" height="190"></iframe><br /><br /><br /><br /><iframe border="0" align="center" marginwidth="0" marginheight="0" src="http://minisite.qq.com/Weather/news_new.html" frameborder="0" width="145" scrolling="no" height="130" allowtransparency=""></iframe><br /><br /><br /><br /><iframe border="0" align="center" marginwidth="0" marginheight="0" src="http://weather.265.com/weather.htm" frameborder="no" width="168" scrolling="no" height="54"></iframe><br /><br /><br /><br /><iframe id="ifm1" align="center" marginwidth="0" marginheight="0" src="http://weather.qq.com/24.htm" frameborder="0" width="405" scrolling="no" height="332"></iframe><br /><br /><br /><iframe align="center" src="http://appnews.qq.com/cgi-bin/news_qq_search?city=q州" frameborder="0" width="160" scrolling="no" height="230"></iframe><br /><br /><br /><iframe border="0" align="center" marginwidth="0" marginheight="0" src="http://appnews.qq.com/cgi-bin/news_weather_search?city=q州" frameborder="0" width="469" scrolling="no" height="218" allowtransparency=""></iframe><br /><br /><iframe id="ifm10" align="center" marginwidth="0" marginheight="0" src="http://news.sina.com.cn/iframe/weather/440101.html" frameborder="0" width="260" scrolling="no" height="70"></iframe></p> <img src ="http://www.tkk7.com/pear/aggbug/78939.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-11-03 16:07 <a href="http://www.tkk7.com/pear/archive/2006/11/03/78939.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Reports made easy with JasperReportsQ{Q?/title><link>http://www.tkk7.com/pear/archive/2006/11/01/78398.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Wed, 01 Nov 2006 00:49:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/11/01/78398.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/78398.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/11/01/78398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/78398.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/78398.html</trackback:ping><description><![CDATA[ <h1 align="center">Reports made easy with JasperReports</h1> <h3 align="center">The open source JasperReports uses XML templates for your reporting needs</h3> <p> </p> <!--<blockquote><strong>Summary</strong><br>--> <blockquote> <strong>Summary</strong> <br />JasperReports, a popular, full-featured open source report-generating library, uses XML report templates to generate reports you can display on the screen, send to a printer, or save as a PDF document. In this inaugural <strong>Open Source Profile</strong> column, Erik Swenson introduces the JasperReports library and explains how to integrate JasperReports into your applications. (<em>900 words;</em><strong>September 20, 2002</strong>) </blockquote> <p align="center"> <!--</blockquote>--> <a target="Feedback"> <strong>By Erik Swenson</strong> </a> <!-- START BIG AD (336x280) jw-articles-336x280.txt --> <!-- END BIG AD (336x280) --> </p> <p> <span id="intelliTXT"> <img height="29" alt="G" src="http://www.javaworld.com/javaworld/abcs/G.gif" width="21" onload="var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" align="left" />enerating reports is a common, if not always glamorous, task for programmers. In the past, report generation has largely been the domain of large commercial products such as Crystal Reports. Today, the <a class="iAs" style="COLOR: darkgreen; BORDER-BOTTOM: darkgreen 1px solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" target="_blank">open source</a> JasperReports report generating library gives <a class="iAs" style="COLOR: darkgreen; BORDER-BOTTOM: darkgreen 1px solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" target="_blank">Java</a> developers a viable alternative to commercial software. <p>JasperReports provides the necessary features to generate dynamic reports, including data retrieval using JDBC (Java Database <a class="iAs" style="COLOR: darkgreen; BORDER-BOTTOM: darkgreen 1px solid; BACKGROUND-COLOR: transparent; TEXT-DECORATION: underline" target="_blank">Connectivity</a>), as well as support for parameters, expressions, variables, and groups. JasperReports also includes advanced features, such as custom data sources, scriptlets, and subreports. All in all, JasperReports combines good features, maturity, community participation, and, best of all, it's free. </p><p>This article kicks off <em>JavaWorld'</em>s new <strong>Open Source Profile</strong> column dedicated to Java-based open source tools and components. Look for upcoming articles spotlighting the Echo Web application framework and ObJectRelationalBridge, an object/relational mapping tool. Feel free to send me your suggestions for future articles. </p><p><strong>Note:</strong> The documentation and code featured in this article are based on JasperReports version 0.3.3. </p><p><font size="+1"><strong>Report design</strong></font><br />In JasperReports, you design reports using XML report templates. For example, the following XML file is a template for a report with a title, two columns of data, and page numbers: </p><p><code><p><?xml version="1.0" encoding="UTF-8"?><br /><!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" <br />"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"><br /><jasperReport name="BasicReport" ><br />  <parameter name="Title" class="java.lang.String"/><br />  <queryString><![CDATA[select name, cost from product]]></queryString><br />  <field name="NAME" class="java.lang.String"/><br />  <field name="COST" class="java.lang.Double"/><br />  <title><br />    <band height="50"><br />      <textField><br />        <reportElement x="0" y="0" width="200" height="50" />       <br />        <textFieldExpression class="java.lang.String">$P{Title}</textFieldExpression><br />      </textField><br />    </band><br />  </title><br />  <pageHeader><br />    <band><br />    </band><br />  </pageHeader><br />  <columnHeader><br />    <band height="20"><br />      <staticText><br />        <reportElement x="180" y="0" width="180" height="20"/><br />        <textElement><br />          <font isUnderline="true"/><br />        </textElement><br />        <text><![CDATA[NAME]]></text><br />      </staticText><br />      <staticText><br />        <reportElement x="360" y="0" width="180" height="20"/><br />        <textElement><br />          <font isUnderline="true"/><br />        </textElement><br />        <text><![CDATA[COST]]></text><br />      </staticText><br />    </band><br />  </columnHeader><br />  <detail><br />    <band height="20"><br />      <textField><br />        <reportElement x="180" y="0" width="180" height="20"/> </p><p>  <br />        <textFieldExpression class="java.lang.String"><![CDATA[$F{NAME}]]></textFieldExpression><br />      </textField><br />      <textField pattern="0.00"><br />        <reportElement x="360" y="0" width="180" height="20"/> </p><p>  <br />        <textFieldExpression class="java.lang.Double"><![CDATA[$F{COST}]]></textFieldExpression><br />      </textField><br />    </band><br />  </detail><br />  <columnFooter><br />    <band><br />    </band><br />  </columnFooter><br />  <pageFooter><br />    <band height="15"><br />      <staticText><br />        <reportElement x="0" y="0" width="40" height="15"/><br />        <textElement/><br />        <text><![CDATA[Page:]]></text><br />      </staticText><br />      <textField><br />        <reportElement x="40" y="0" width="100" height="15"/><br />        <textElement/><br />        <textFieldExpression class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression><br />      </textField><br />    </band><br />  </pageFooter><br />  <summary><br />    <band><br />    </band><br />  </summary><br /></jasperReport><br /></p></code></p><p>The template's beginning includes any parameters passed into the report, the query that retrieves the data for the report, and the fields displayed in the report. The template's remainder divides into six report sections: </p><p></p><ul><p></p><li><code><font face="新宋?>title</font></code></li><li><code><font face="新宋?>pageHeader</font></code></li><li><code><font face="新宋?>columnHeader</font></code></li><li><code><font face="新宋?>detail</font></code></li><li><code><font face="新宋?>columnFooter</font></code></li><li><code><font face="新宋?>pageFooter</font></code></li><li><code><font face="新宋?>summary</font></code><p> </p></li></ul><p>Each report section, called a <em>band</em>, is given a <code><font face="新宋?>height</font></code>. Each band can include multiple <code><font face="新宋?>staticText</font></code> and <code><font face="新宋?>textField</font></code> elements, which are given a position, size, and value. Report parameters, fields, and variables are referenced using <code><font face="新宋?>P${name}</font></code>, <code><font face="新宋?>F${name}</font></code>, and <code><font face="新宋?>V${name}</font></code>, respectively. </p><p>For example, the following lines in the page footer section create a <code><font face="新宋?>textField</font></code> containing the current page number. The page number's value is set to the variable <code><font face="新宋?>PAGE_NUMBER</font></code>, defined internally by JasperReports and available to all reports: </p><p><code><p><textField><br />  <reportElement x="40" y="0" width="100" height="15"/><br />  <textElement/><br />  <textFieldExpression class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression><br /></textField><br /></p></code></p><p>The above template represents a basic, yet functional, report. A thorough JasperReports XML-template description is beyond the scope of this article, but I've included numerous links in <a >Resources</a> to tools that will help you edit and create your own report templates. Next, let's see how to use JasperReports in your Java applications. </p><p><font size="+1"><strong>Use JasperReports</strong></font><br />To begin using JasperReports, you first must understand what objects JasperReports uses to represent the reporting process as it progresses from report design to report generation: </p><p></p><ul><p></p><li><code><strong><font face="新宋?>JasperDesign</font></strong></code>: Represents a report's definition. In most cases, you create a <code><font face="新宋?>JasperDesign</font></code> from an XML report template, though you can also create it programmatically. <p> </p></li><li><code><strong><font face="新宋?>JasperReport</font></strong></code>: Represents a compiled <code><font face="新宋?>JasperDesign</font></code>. The compilation process verifies the report design and compiles the design into a <code><font face="新宋?>JasperReport</font></code> object. <p> </p></li><li><code><strong><font face="新宋?>JasperPrint</font></strong></code>: Represents a generated report. You create a <code><font face="新宋?>JasperPrint</font></code> from a <code><font face="新宋?>JasperReport</font></code> through the fill process in which a report is populated with data from a data source. <p> </p></li></ul><p>The JasperReports API's flexibility lets you load <code><font face="新宋?>JasperDesign</font></code>, <code><font face="新宋?>JasperReport</font></code>, and <code><font face="新宋?>JasperPrint</font></code> objects from a file or a stream, and also lets you create these objects programmatically. You can print reports to a printer, an image, or a PDF file. The JasperReports library includes a facade class, <code><font face="新宋?>dori.jasper.engine.JasperManager</font></code>, with methods that facilitate loading, compiling, filling, and printing reports. The following code illustrates a <code><font face="新宋?>JasperManager</font></code>: </p><p><code><p>// First, load JasperDesign from XML and compile it into JasperReport<br />JasperDesign jasperDesign = JasperManager.loadXmlDesign("BasicReport.xml");<br />JasperReport jasperReport = JasperManager.compileReport(jasperDesign);<br /><br />// Second, create a map of parameters to pass to the report.<br />Map parameters = new HashMap();<br />parameters.put("ReportTitle", "Basic JasperReport");<br />parameters.put("MaxSalary", new Double(25000.00));<br /><br />// Third, get a database connection<br />Connection conn = Database.getConnection(); <br /><br />// Fourth, create JasperPrint using fillReport() method<br />JasperPrint jasperPrint = JasperManager.fillReport(jasperReport, <br />   parameters, conn);<br /><br />// You can use JasperPrint to create PDF<br />JasperManager.printReportToPdfFile(jasperPrint, "BasicReport.pdf");<br /><br />// Or to view report in the JasperViewer<br />JasperViewer.viewReport(jasperPrint);<br /></p></code></p><p>The code example above shows how to perform some common tasks using JasperReports. In a real-world application, you'd find it impractical to load and compile the <code><font face="新宋?>JasperDesign</font></code> every time you wanted to generate a report. Since report designs are largely static, in most cases, you'd precompile your <code><font face="新宋?>JasperDesign</font></code> files to increase speed. You can also increase a large report's speed by generating and saving <code><font face="新宋?>JasperPrint</font></code> objects as part of a nightly batch process. </p><p>That's all you need to get started; download JasperReports and you'll be up and running in no time. </p><p><font size="+1"><strong>Reports the easy way</strong></font><br />In this article, you learned how the open source JasperReports can aid your Java reporting needs. If you are building a reporting application or looking to add reporting capability to an existing application, look at JasperReports. Visit the JasperReports <a >homepage</a> for more information and download the latest version. <img height="12" src="http://www.devworld.com/microsites/javaworld/javaworld/icons/jw-dingbat.gif" width="22" onload="var image=new Image();image.src=this.src;if(image.width>0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" /></p></span> </p> <img src ="http://www.tkk7.com/pear/aggbug/78398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-11-01 08:49 <a href="http://www.tkk7.com/pear/archive/2006/11/01/78398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>org.xml.sax.SAXNotRecognizedException:(转蝲Q?/title><link>http://www.tkk7.com/pear/archive/2006/10/23/76800.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Mon, 23 Oct 2006 09:40:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/10/23/76800.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/76800.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/10/23/76800.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/76800.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/76800.html</trackback:ping><description><![CDATA[发布我的webapp的时候遇C下面的错误信息?br />org.xml.sax.SAXNotRecognizedException: http://xml.org/sax/features/validation<br />查找资料http://www.google.com/search?hl=zh-CN&inlang=zh-CN&newwindow=1&q=resin+org.xml.sax.SAXNotRecognizedException&lr=Q(参考:http://www.slamb.org/svn/repos/projects/axamol/sax-pipeline/READMEQ?br />需要新Z?jaxp.propertiesQ?内容如下Q?br />javax.xml.parsers.SAXParserFactory: org.apache.xerces.jaxp.SAXParserFactoryImpl<br />保存文g?JAVA_HOME/jre/lib/下面<br />接下来可能会出现下面的错误信息:<br />javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.SAX<br />ParserFactoryImpl could not be instantiated: java.lang.NullPointerException<br />因此q需要把xercesImpl.jar复制到D:\jdk1.5.0_01\jre\lib\endorsed下面Q没有这个目录就创徏q个目录Q?br />重新启动resin,我的webapp启动成功了?br />讉K http://lizongbo.myresintest.com/mywebapp/Q页面正常出现?br />b.另外一U更单的解决ҎQ不需要修改jdk的配|?br />((此方法没有测试过Q请参考http://www-900.ibm.com/developerWorks/cn/webservices/ws-axisfaq/index.shtml和http://www.caucho.com/quercus/faq/question.xtp?question_id=295))Q?br />    <host id="lizongbo.myresintest.com" root-directory="."><br />      <web-app id='/' document-directory="webapps/ROOT"/><br />      <web-app id='/lizongbo' document-directory="E:/jb/oscachedemo/test"><br />      <system-property javax.xml.transform.TransformerFactory="org.apache.xalan.processor.TransformerFactoryImpl"/><br /><system-property javax.xml.parsers.DocumentBuilderFactory="org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"/><br /><system-property javax.xml.parsers.SAXParserFactory="org.apache.xerces.jaxp.SAXParserFactoryImpl"/><br /><system-property org.xml.sax.driver="org.apache.xerces.parsers.SAXParser"/><br /></web-app><br />    </host><br /><br /><br />希望对你有所启发<br />详细地址:<br />http://dev.csdn.net/article/62/62171.shtm <img src ="http://www.tkk7.com/pear/aggbug/76800.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-10-23 17:40 <a href="http://www.tkk7.com/pear/archive/2006/10/23/76800.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>今天开始真正的?Linux呵呵 Q虚拟机?时代 已经成ؓ 历史Q哈?/title><link>http://www.tkk7.com/pear/archive/2006/10/16/75428.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Mon, 16 Oct 2006 07:49:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/10/16/75428.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/75428.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/10/16/75428.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/75428.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/75428.html</trackback:ping><description><![CDATA[没有q的学命oQ哈哈,反正先图个感性认? 让自qLinux满日常生活所需。?br />1. 安装iso文g Qmount -t iso9660 /home/xxxx.iso /mnt/cdrom -o loop<br />2. 文gQ目录)改名Q?mv 旧名 新名<br />3. rpm安装命oQ ?rpm -ivh *.rpm<br />4.  让下载的jdk可以安装Q ?chmod u+x *.bin  <br />5. 让自己可以上|?Q?<br />   安装 rp-pppoe Q?br />   tar xvfz rp-pppoe-3.8.8.tar.gz<br />   cd rp-pppoe-3.8.8<br />   ./go<br />   帐号Q?br />   DNSQ?209.128.252.238    202.96.128.86  (winxp:  ipconfig /all 命o可以查看Q?br />    pppoe-start <br />    route add default gw ip ( ip 通过ifconfig -a查看?pppoe附近那个ip是Q?br />    pppoe-stop<br />6. tar解压命oQ?tar -xvfz *tar.gz   /   tar jxvf *.bz2<br /><br />.//单机时代和网l时代是q样划分的: Q/下面是抄袭的Q非原创Q?br />FC5 ?RP-PPPOE上网Q?br />步骤Q?br />1、在WINDOWS里用IPCONFIGQALLQ查看DNSQƈ记录在纸上(有些q一步不用做Q我Z求稳Q还是做了)<br />2、在WINDOWS里上|,q入http://www.roaringpenguin.com/pppoe/Q下载名为rp-pppoe的Y件rp-pppoe-3.2.tar.gz<br />3、重启,q入linux fc5,rp-pppoe复制到LINUX分区下(关于如果从WINDOWS分区下将文g复制到LINUX分区下,请参见mount命oQ?br />4、解压羃  <br />    #tar xvfz rp-pppoe-3.2.tar.gz  <br />    #cd rp-pppoe-3.2  <br />5、进行编译和安装  <br />    q行脚本  <br />    #./go <br />      此时会进入配|?br />6、配|?br />  >>> Enter your PPPoE user name :  <br />  输入ADSL帐号的用户名(不是你给他取? Q我的是888888Qglcrc <br />当出玊W?<br />  >>> Enter the Ethernet interface connected to the ADSL modem  <br />  For Solaris, this is likely to be something like /dev/hme0.  <br />  For Linux, it will be ethn, where 'n' is a number.  <br />  (default eth0):  <br />  输入 eth0 ,q是ADSL相连的网卡的名字。?<br />当出玊W?<br />  >>> Enter the demand value (default no):  <br />  输入 no  <br />当出玊W?<br />  >>> Enter the DNS information here:  <br />        输入之前抄在U怸的那两个DNS?br />  或输?server ,q表CZ用ADSL拨号自动获得的DNS服务器IP地址  Q我q没试过Q?br /><br />  >>> Please enter your PPPoE password:  <br />  输入ADSL帐号的密码?<br />当出玊W?<br />  >>> Choose a type of firewall (0-2):  <br />  输入 0 Q不使用防火墙?<br />当出玊W?<br />  >>> Accept these settings and adjust configuration files (y/n)?  <br />  如果输入的信息正,输入 y ,完成配置Q否则,输入 n 重新输入。?<br /><br />7、# pppoe-start<br /><br />原来到这一步,出现CONNECTEDQ的提示Q我׃为可以上|了Q切换到GNOMEQ就打开FIREFOXQ之后发现还不能上网Q后来发玎ͼq是了下面q几步?br /><br />8、先q行pppoe-stopQ停掉连接?br />9、当q接成功后,使用命oQ?<br />    #ifconfig -a  <br />  在输Z应该含有关于 ppp0 的一堆信息,其中q绑定了 IP 地址,说明已经从拨号中获得了IP地址。?<br />  使用命o  <br />    #netstat -nr  <br />  查看路由表信息,q时的默认\由应该是上面获得的IP地址。如果没有默认\由,我们可以手动增加Q?<br />    #route add default gw xxx.xxx.xxx.xxx(xxx.xxx.xxx.xxx是上面ifconfig -a命o获得的IP地址) <br />  使用命o  <br />    #nslookup www.sina.com.cn  <br /> <br />  如果解析出新的IPQ说明已l从拨号中正获得了DNS服务器。?<br />  最后,使用命oping某个域名或IPQ如果有响应Q表CZ已经大功告成了?<br /><br />以后每次q行完pppoe-start命o之后Q都q要q行W?步的操作?br /><br /><img src ="http://www.tkk7.com/pear/aggbug/75428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-10-16 15:49 <a href="http://www.tkk7.com/pear/archive/2006/10/16/75428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>h的代?http://www.tkk7.com/pear/archive/2006/10/05/73465.htmlpearpearThu, 05 Oct 2006 06:39:00 GMThttp://www.tkk7.com/pear/archive/2006/10/05/73465.htmlhttp://www.tkk7.com/pear/comments/73465.htmlhttp://www.tkk7.com/pear/archive/2006/10/05/73465.html#Feedback1http://www.tkk7.com/pear/comments/commentRss/73465.htmlhttp://www.tkk7.com/pear/services/trackbacks/73465.htmlJava调用windowsE序 
      Runtime ru = Runtime.getRuntime();
        try {
            //调用播放器文件播放指定MP3
            Process p1 = ru.exec("C:\\Program Files\\Windows Media Player\\wmplayer d:\\DADA\\mp3\\0197.mp3");
           //调用批处理文件?br />            Process p2 = ru.exec("d:\\a.bat");

            //昄执行l果
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
            String line;
            while((line=br.readLine())!=null){
                System.out.println(line);
            }
        } catch (IOException ex) {ex.printStackTrace();}

pear 2006-10-05 14:39 发表评论
]]>
|页中打印表格数据备?/title><link>http://www.tkk7.com/pear/archive/2006/10/02/73226.html</link><dc:creator>pear</dc:creator><author>pear</author><pubDate>Mon, 02 Oct 2006 13:33:00 GMT</pubDate><guid>http://www.tkk7.com/pear/archive/2006/10/02/73226.html</guid><wfw:comment>http://www.tkk7.com/pear/comments/73226.html</wfw:comment><comments>http://www.tkk7.com/pear/archive/2006/10/02/73226.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/pear/comments/commentRss/73226.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/pear/services/trackbacks/73226.html</trackback:ping><description><![CDATA[ <font size="2">|页中打印表格数据备?br /><style   media="print"><br />.noprint   {   display:   none   }<br /></style><br />上面的代码写?lt;head>中··?br /><INPUT   onclick="document.execCommand('print','true','true')"   class="noprint"   type="button"   value="打印"><br /><br />然后在你不要打印的地方加一?  class="noprint"属性··?/font> <img src ="http://www.tkk7.com/pear/aggbug/73226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/pear/" target="_blank">pear</a> 2006-10-02 21:33 <a href="http://www.tkk7.com/pear/archive/2006/10/02/73226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Sun creator创徏?jsf 目部v到其他服务器的问题: http://www.tkk7.com/pear/archive/2006/10/02/73182.htmlpearpearMon, 02 Oct 2006 02:59:00 GMThttp://www.tkk7.com/pear/archive/2006/10/02/73182.htmlhttp://www.tkk7.com/pear/comments/73182.htmlhttp://www.tkk7.com/pear/archive/2006/10/02/73182.html#Feedback1http://www.tkk7.com/pear/comments/commentRss/73182.htmlhttp://www.tkk7.com/pear/services/trackbacks/73182.html用Sun creator创徏?jsf 目部v到其他服务器的问题:

对jsf目的支持,sun creator 无疑lh一U?耳目一新的感觉Q?br />他对可视化开发的支持真的开始可以和.Net较劲了?/p>

但是 creator 有个问题是可以把项目部|到 sun app server的项目部|到其他服务器老是出同L问题Q?br /> 
下面ȝ一下:

步骤一:  把项目导出成 *.war文g
步骤?  ?.war拯到其他服务器的部|目?br />         比如 tomcat/resin ?webapp?br />步骤?  q行服务?tomcat/resin) 问题来了,出现异常
[10:41:34.828] java.lang.NullPointerException
[10:41:34.828]  at javax.faces.webapp.FacesServlet.init(FacesServlet.java:144)
[10:41:34.828]  at com.caucho.server.dispatch.ServletConfigImpl.createServletImpl(ServletConfigImpl.java:646)
[10:41:34.828]  at com.caucho.server.dispatch.ServletConfigImpl.createServlet(ServletConfigImpl.java:587)

看到q个"FacesServlet.java:144" 开始我怀疑是sun 的包的问? |上google和baidu了一?没搜到相关问题的解决办法.
    最后在一个朋友的帮助下在web.xml文g里加了个Listener:
      <listener>
        <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
     </listener>
?q真?

心得如下:
     在用workshop或者myeclipse用myfaces包徏jsf目?我们不会到cM的问?
因ؓ工具已经在web.xml里面加了listener:
 <listener>
  <!-- Listener, that does all the startup work (configuration, init). -->
  <listener-class>org.apache.myfaces.webapp.StartupServletContextListener    </listener-class>
 </listener>
但是如果用这些工L sun jsf 包时p手动listerner.(?步骤?

l大家个q接: sun creator的教E?从这里开始学jsf感觉比较全面:
http://gceclub.sun.com.cn/prodtech/javatools/jscreator/learning/tutorials/index.html



pear 2006-10-02 10:59 发表评论
]]>
BBS中的一个查询问题(原创Q?http://www.tkk7.com/pear/archive/2006/09/28/72654.htmlpearpearThu, 28 Sep 2006 10:49:00 GMThttp://www.tkk7.com/pear/archive/2006/09/28/72654.htmlhttp://www.tkk7.com/pear/comments/72654.htmlhttp://www.tkk7.com/pear/archive/2006/09/28/72654.html#Feedback0http://www.tkk7.com/pear/comments/commentRss/72654.htmlhttp://www.tkk7.com/pear/services/trackbacks/72654.html问题Q?br />在BBS中,content 和?review 两张表,其中content 记录的是 帖子信息Qtopic_id,topic_title,topic_content{字D)Qreview 表中记录的是回帖的信息,(review_id,topic_id{字D??求一SQL语句Q其中topic_id和review_id都是自动增加Q现在要求查询出有最新回复的帖子的信息,同时要求有多个回复的一个帖子的主题只能昄一ơ,能用一个SQL语句搞定吗?数据库是MYSQL 求高手指点下

回答Q?br />select t.id,t.title,t.content,r.newposttime from topic as t inner join (select max(posttime) as newposttime, topicid from review group by topicid) as r on t.id=r.topicid
 
//试
create table topic(
  id int primary key identity(1,1),
  title varchar(128),
  content text
)

insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')
insert into topic(title,content) values('title1','content1')


create table review(
  id int primary key identity(1,1),
  topicid int references topic(id),
  content text,
  posttime datetime default getdate()
)

insert into review(topicid,content) values(1,'reice1')
insert into review(topicid,content) values(1,'reice1')
insert into review(topicid,content) values(2,'reice1')
insert into review(topicid,content) values(2,'reice1')
insert into review(topicid,content) values(2,'reice1')
insert into review(topicid,content) values(3,'reice1')
insert into review(topicid,content) values(3,'reice1')
insert into review(topicid,content) values(3,'reice1')
insert into review(topicid,content) values(3,'reice1')
insert into review(topicid,content) values(4,'reice1')

select t.id,t.title,t.content,r.newposttime from topic as t inner join (select max(posttime) as newposttime, topicid from review group by topicid) as r on t.id=r.topicid

q些是测试数?sqlserver2000试通过



pear 2006-09-28 18:49 发表评论
]]>
实用的java问题http://www.tkk7.com/pear/archive/2006/09/14/69738.htmlpearpearThu, 14 Sep 2006 11:25:00 GMThttp://www.tkk7.com/pear/archive/2006/09/14/69738.htmlhttp://www.tkk7.com/pear/comments/69738.htmlhttp://www.tkk7.com/pear/archive/2006/09/14/69738.html#Feedback0http://www.tkk7.com/pear/comments/commentRss/69738.htmlhttp://www.tkk7.com/pear/services/trackbacks/69738.htmlhttp://www.matrix.org.cn/thread.shtml?topicId=46027&forumId=14

1. 问:在JAVA与JSP中要调用一个LINUX上的脚本E序,或WINDOWS上的脚本E序,该怎么写?
{:System.getRuntime().exec("bash < aaa.sh");

2. 问:java中用什么表C双引号
{:"""

3. 问:如何在JSPE序里另起一个线E?
{:
JSP本n是独立U程q行而不象CGI都是独立q程.
一?
Thread t = new Thread("你的对象");
t.start();可以了.
要求你这个对象要实现runnable接口或承thread.

4. 问:jsp如何获得客户端的IP地址Q?br />{:
request.getRemoteAddr()
看看各个webserver的API文档说明Q一般都有自带的Qresin和tomcat都有

5. 问:E序l止与输出终?br />{:
E序中止:return;
输出中止out.close();q一句相当于ASP的response.end

6. 问:jsp中如何得C늚URLQ?br />{:request.getHeader("referer");

7. 问:提交|页的网过期功能是怎么做的Q?br />{:response.setHader("Expires","0");

8. 问:在JSP|页中如何知道自已打开的页面的名称
{:
request.getRequestURI() ;//文g?br />request.getRequestURL() ;//全部QRQ?br />
9. 问:提交表单后验证没有通过Q返回提交页面,如何使原提交面中的数据保留Q?br />{:javascript的go(-1)可以把上늚表单内容重新昄出来,但password域没?br />
10. 问:如何取得http的头信息Q?br />{:request.getHader(headerName);

11. 问:&&?amp;的区别?
{:
&&是短路的与操作,也就是当C个条件是false的时候,W二个条件不用执?br />&相反Q两个条件L执行?br />
12. 问:?以正弦曲U的一个周期显C出?br />{:
public void paint(Graphics g)
{
for(int i=0;i<200;i++)
g.drawString("*",i,(int)(Math.sin(i)*20)+50);
}
}

13. 问:点数相乘后l果不精如100.0 * 0.6 l果{于 60.0004
{:
q不叫错?float和double是这样实现的.如果要精计,java提供了一个strictfp,它的计算遵@IEEE 754标准.而普通的float和double?br />
由地q_点格式或硬件提供的额外_ֺ或表C围?br />
14. 问:如何获得当前用的cursors的位|?
{:
int row = rs.getRow()是当前指针行数,q有isFrist();isBeforeFist();isLast();isAfterLast();可以试是不是在Ҏ名所说的位置

15. 问:表单成功提交了,点后退昄|页q期
{:
?lt;head></head>里面加以下代?br /><META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
或者在表单中加上
<%
response.setHeader("Pragma","no-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
%>

16. 问:接口的简单理?br />{:接口Z规范,比如我在接口中定义了一个方?
getData()
q是用来从不同的数据库中取数据的,是JDBC的实现对于用?我不要知道每U数据库是如何做?但我知道如何它们要实现这个接口就一定有

q个Ҏ可以供我调用.q样SUN把q个接口l各个数据库开发商,让他们自己实? 但ؓ什么不用承而用接口?因ؓl承只能从一个你c?br />
l承,而接口可以实现多?是说我实现的子cL多个规定好的接口中的功能. q只是简单的理解,{你深入理解抽象的时候就知道抽象到抽?br />
cLZ么还要再抽象到接?

17. 问:怎样~写一个取消按钮(怎样q回上一个页面,象工h的后退按钮Q?
{:
javascript把每ơ浏览过的location都压C一个栈?q个栈就是history,然后你如果要回到W几个页面它做几次POP操作,把最后POP出来

的那个LOCATIONl你. q就是JAVASCRIPT在实现history.go(-x)的原?

18. 问:什么是回调Q?br />{:
单说,回调用不是让你去监听谁做完了什么事,而是谁做完了什么事报告给? q就是回调用的思想.例子太多?AWT的事?SWING事g模型

都是q样? q有多线E中,如果要控制线E数,不能L查询每个U程是否l束,要在每个U程l束时让U程自己告诉ȝE我l束?你可?br />
开新的U程?

19. 问:要介l一下compareToҎ
{:
compareToҎ是Comparable 接口必需实现的方?只要实现Comparable

可以用Arrays.srot()排序p实现Runnable接口的runpThread()一?

20. 问:如何可以从别的Web服务器检索页, 然后把检索到的网늚HTML代码储存在一个变量中q回q来
{:q是一个简单的WEB ROBOT实现,用URLcdC|页中抓内容,然后自己写一个分析程序从中找出新的URL,不断递归下去p?

21. 问:applet中如何获得键盘的输入
{:application的System.in是当前系l的标准输入,applet因ؓ安全的原因不可能d当前pȝ(客户?的标准输?只能从它的ROOTlg?br />
事g?比如键盘事g中取得键?

22. 问:怎样计算代码执行所p的时_
{:
代码开始取旉Q结束后取时_相减
long t1 = System.currentTimeMillis();
///////////////// your code
long t2 = System.currentTimeMillis() ;
long time = t2-t1;

23. 问:如何获在E序中获得一个文件的ContentTypeQ?br />{:
URL u = new URL("file:///aaa.txt");
URLConnection uc = u.openConnection();
String s = uc.getContentType();

24. 问:q接池的使用是徏立很多连接池Q还是一个连接池里用多个q接Q?br />{:
只有在对象源不同的情况下才会发生多个池化,如果你只q一l一个数据源,永远不要用多个连l池. 所以连l池的初始化一定要做成静态的,?br />
且应该在构造对象之?也就是只有在cLOAD的时?别的时候不应该有Q何生成新的连l池的时候?br />
25. 问:JavaMail要怎么安装Q?br />{:下蝲两个包,一个是javamail包,另一个是jaf包。下载完直接把这两个包不解压加到CLASSPATH?br />
26. 问:怎样把地址栏里的地址锁定Q?br />{:把你的服务器的可讉K目录索引选项关闭p?M服务器都有一个conf文g,里面都有q个选项?br />
27. 问:在JAVA中怎么取得环境变量啊。比如: TEMP = CQTEMP Q?br />{:String sss = System.getProperty(key)

28. 问:怎样实现四舍五入Q保留小数点后两位小敎ͼ
{:
import java.text.*;
...
NumberFormat nf=NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
nf.format(numb);

29. 问:Applet和form如何通信Q?br />{:
取得的参C到param里面
<%
String xxx = request.getParameter("xxx");
%>
<applet>
<param value="<%=xxx%>">
</applet>


30. 问:java-plug-in是什么?
{:Java Runtime Environment的插件。用来运行javaE序。不需要什么特别的讄。等于你的机器里面有了jvm?br />
31. 问:WEB上面怎么栯接上一个EXCEL表格Q?br />{:
定义面得contentType="application/vnd.ms-excel"Q让面以excel得Ş式打开。同样也可以以word得Ş式打开Qapplication/msword?br />
32. 问:怎样才能避免textarea字数限制Q?br />{:是用了FORM的默认方法的~故,如果什么也不写默认是GET改用Post卛_Q在Form中定义mothod="post"?br />
33. 问:Z么加?lt;%@page contentType="text/html;charset=gb2312" %>插入数据库的中文Q依然是qQ?br />{:
q要从环境看,能显C明你的JSP引擎没有问题,但写入数据库时你的JDBC能不能处理中?同一公司不同版本的JDBC都有支持中文和不支持?br />
文的情况,RESIN自带的MYSQL JDBC׃支持,MM的就支持,q有你的数据库类型是否支持中?CHAR的一般支?但是否用binary存储双字节码

34. 问:对于JFrameQhide()Qshow()与setVisibel()有什么区别吗Q?br />{:
setVisible()从Componentl承q来Q而hide(),show()从Window里面l承q来?br />Makes the Window visible. If the Window and/or its owner are not yet displa yable, both are made displayable. The Window will

be validated prior to being made visible. If t he Window is already visible, this will bring the Window to the front. 区别?br />
q?br />36. 问:sendRedirectZ么不可以转到mms协议的地址的?response.sendRedirect("mms://missiah.adsldns.org:9394");
{:javaq_目前实现的protocol中ƈ没有mms,你可以取pȝ属性java.protocol.handler.pkgs看看它的g有没有mms,所以如果要想重定向

到mms://hostq样和URL,只有生成客户端的JAVASCRIPT让它来重定向

37. 问:JTable中怎样定义各个Columns和Width和怎样讄表格的内定w做靠x居中Q?br />{:
TableColumn tc = table.getColumn("Name");//取得列名?Name"的列Handle
int currentWidth = tc.getPreferredWidth(); //取得该列当前的宽?br />tc.setPreferredWidth(200); //讄当前列宽
tc.setMaxWidth(200); //讄该列最大宽?br />tc.setMinWidth(50); //讄该列最宽?br />
38. 问:Ҏ作是否可用于select语句Q?br />{:Ҏ作其实是指成批理更新的操?l对不可能用于select操作?br />
39. 问:Z么jsp路径太深文g名太长就无法d文gQ?br />{:path不能过255长度,不然找不到?q是作业pȝ的事?br />
40. 问:如何让页面不保留~存Q?br />{:
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>

41. 问:我的applet code 中用到jbutton 时就出错是否׃ie不支持swing package 请问应怎么办?
{:JBUTTON是SWING基本包啊,只要把jdk/jre/lib/rt.jar攑֜classpathp?不要加蝲M别的库?br />
42. 问:不知道java是否支持midi格式Q如果支持,应该怎么把wave格式转换成midi格式Q?br />{:目前q不?可以看一下JMF三个版中对MIDI的格式支持是read only,而WAVE是read/write,MIDI只能播放,不能生成?br />
43. 问:在jsp里面防止用户直接输入urlq去面Q应该怎么做呢Q?br />{:
一是从web服务器控?Ҏ一目录的所有访问要通过验证.
二是在要讉K的页面中加入控制.q个一般用session,也可以用h状态码实现

44. 问:
例如后台有一计算应用E序Q此E序q算h很慢Q可持箋几分钟到几小Ӟq不,主要是能ȀzdQ,客户d提交后,服务器对?br />
务进行检无误后向服务器后台程序发送信息,q将其激zR要求如下:
1Q首先将后台E序Ȁz,让它执行此Q务(比如Q前台将计算的C代码提交上后Q后台程序程序能马上调用Qƈ其q行Q?br />2Q要在前台JSP面中显C行过E信息(׃q行旉长,希望让客L到运行过E中产生的信息)如何完成Q?br />
{:
zL可以?q行一个shell让它去运行后台就?但不可能取出q行信息,因ؓHTTP的超旉制不可能永远{你后台q行?而且信息如果要动?br />
实时推出来就得用SERVER PUSH技术?br />
45. 问:数据库是datetime ?Q插入当前时间到数据库?
{:
java.sql.Date sqlDate = new java.sql.Date();
PreparedStatement pstmt = conn.prepareStatement("insert into foo(time) values(?)");
pstmt.setDate(1,sqlDate);
pstmt.executeUpdate();

46. 问:怎样L字符串前后的I格?br />{:String.trim()

47. 问:session怎样存取intcd的变量?
{:
session.setAttribute("int", i+"");
int i = Integer.parseInt(session.getAttribute("int"));

48. 问:在javascript中如何输出的floatcd的数据保留两位小数?br />{:Math.round(aaaaa*100)/100?br />
49. 问:在beanU如何调用session
{:
你可把session对象作ؓ一个参Clbean
在BEAN中定义HttpServletRequest request;HttpSession session;
然后
session = request.getSession(false);
false为如果session为空,不徏立新的session
session作ؓ参数传入.其实只要request传入可?br />
50. 问:如何把txt或word文g按原格式昄在jsp面或servlet上?
{:
其实一个非常简单的解决Ҏ是在服务器的MIME中指点定TEXT和WORD的解释方?然后用JSP或SERVLET生成它就行了,客户端就会自动调用相

应程序打开你的文档?br />如果是希望按原格式的昄在页面上Q而不是调用其他程序打开那么你可以试试用WEBDEV协议,可以说这是MS的一个亮?它是在WEB方式下打开

文档,和共享一?完全W合的要求?br />
51. 问:object的cloneҎZ么不能直接调用?
{:
q个Ҏ在object中是protected
Z么要把这个方法定义ؓprotected,q是一个折?它的目的是想知道你这个方法在Object里只是一个标?而不是一个实?比如

public class Object
{
.............
protected Object clone()
{}
}

所以直接承的clone()Ҏq不能做M?你要使用q个Ҏp重蝲q个Ҏq放宽访问权限ؓpublic,或实现cloneable接口. 但它没法

q样告诉你它没有真的实现,只好用protected Ҏ加以警示

52. 问:一个页面中如何h另外一个页面?
{:
要求是这些面必L兌,一是它们都有一个共同的层?也就是说是一个内的分面,当然可以是Q意,帧内再分帧也可以,另一个可

能是当前H口弹出的窗?如果没有联系,那就不可能用一个页面刷新另一个页? 帧内只要一U一U引用就行了.

比如在左帧中一个页面中写top.right.location.reload();那么名ؓright的右帧中的页面就会刷? 弹出的一?用open时的名称h子窗?

子窗口用openerhȝ?br />
53. 问:如何在jsp中怎么样向客户端写cookiesQ?br />{:
Cookie coo = new Cookie(name, value);
HttpServletResponse.addCookie(name);

54. 问:Z么jTextField1.setText("aaabbb");jTextField2.setText("AAABBB"); 得到的字体宽度不一P
{:是说如果不是指定ؓ{宽字体,每个字体的宽度都是不一L.因此JAVA中用FontMetrics cL取字W宽度?br />
55. 问:String kk=application/octet-stream; name="G:/SMBCrack.exe";如何得到SMBCrack.exeQ?br />{:
q应该是解析上传时候的二进制流得到的这一行里面格式是固定的,取到name="后面的字W串Q然后把";L。然后取最后一?后面的所有字

W组成一个新字符串就行了?br />
56. 问:如何传值ƈ不刷新页面?
{:
弹出一个页面进行值的选择或者输入,ok后用将gl原H口Q用javascript关闭打开的窗口即可:
window.close();opener.focus();

57. 问:有一个字W串Q?EF0C114EA4"Q如何变为a[0] = 0xEF a[1] = 0x0C a[2] = 0x11 a[3] = 0x4E a[4] = 0xA4Q?br />{:
String str="EF0C114EA4F";
out.print(str+"<br>");
int l=str.length()/2+str.length()%2,j=0,k=0;
String[] a=new String[l];
for(int i=0;i<l;i++){
if(str.length()-j==1)
k=str.length();
else
k=j+2;
a="0x"+str.substring(j,k);
out.print("a["+Integer.toString(i)+"]="+a+"<br>");
j+=2;
}

58. 问:怎样一个int转换成一个四字节的byte数组Q?br />{:
int x = 1234567;
byte[] b = new byte[4];
for(int i=0;i<b.length;i++)
{
b = (x >>( i*8)) & 0xFF;
}

59. 问:indexOf()的用需要注意什么?
{:参数是指从第几位Q?Q?Q?Q?..Q开始搜索,而返回值是指搜索到的位|(0Q?Q?Q?.......Q注意是从零v的?br />
60. 问:在Java应用E序中如何动态的d一个按钮?
{:
q里涉及一个组仉l的问题,lg要先于panel被显CZ处存?如果一panel已经昄?那么加在上面你能看到?但如果在同一个panel?

先有button A,假如按下它加了butt on B,q时你如果整个panel重给,那么A本n要重l?它的事g监听没有了,当然也就加不成B?所以如

果要先有另一个panel,当按A时把B加在q个panel上ƈ重绘q个paenl,其实更好的方法是先把B加在panel?同一个也?把它setVisiable(flas

e),按A时设?true?br />
61. 问:book mybook=new book(bookid);book是servlet,出错?br />{:
book是servlet,能book mybook=new book(bookid);
说明自己实现了servlet容器?不然,servlet能让你自己去调用? servlet如果调用其实和EJBq?%的区别都没有,它们都是自己l承或实C些接

?在这些父cL接口中实C如果和容?打交?的方?然后容器调用q些Ҏ来管理它,让它生成实例,池化,钝化,销?再生{?所以这?br />
写是错误的?br />
62. 问:l定一个字W串5*(5+9)/7怎样计算出结果?
{:
可有两种Ҏ
1。用堆栈完成
2。最单的ҎQ不用编E,如果有Q何一个数据库的化Q用select (5*(5+9)/7) from oneTable

63. 问:如何实现递交表单内容的加密解密?
{:
如果你用IE目前只能用SSL协议,q一层不要你考虑,否则只你用你自己的工具加密传?接收后再解密?至于如何加解,如果要和公认的系l结

?q通用的MD5,RAS{公开法,如果你只是自׃自己?你随便按你的x把数据加上一些东?取回来按规则减掉q些东西,我敢保证?br />
你自己没有Q何h能知道解密方?

64. 问:Z么Integer.parseInt("+1");会抛出NumberFormatException的异常?
{:因ؓ"+"q行在JAVA中被重蝲.pȝ无法定你用的是术加还是字W??br />q一点可以在JAVASCRIPT中更好地理解:
<form name="t"><input name=s value=1234></form>
var a = document.t.s.value+1;
q时a = 12345,因ؓdocument.t.s.value作ؓ字符?但var a = document.t.s.value-1;
a 是1233,因ؓpȝ知道-q算肯定是算术运?所以把document.t.s.value转换成数?


65. 问:hashCode() 有什么用Z么有时候需要覆盖Object里的hashcode()ҎQ?br />{:q就是这个对象的w䆾证啊,要不如何区分哪个对象?br />
66. 问:怎样在tomcat中实C个定时执行的东东Q?br />{:
在应用程序启动时自动q行。servlet2.3中定义了ServletListener,监听Servlet Con text的启动或则关闭(可在配置文g中配|)Q启动时

触发一个守护程序的q行(可以实现java.util.Timer或则 javax.swing.Timer).

67. 问:E序可以输出自己吗?
{:孔d悖论q个非常有名的法?是说Q何程序都不可能输?

68. 问:能够把字W{化成ASCII码?比如?A 转化?65Q?br />{:
int a='A';
out.println(a);

69. 问:如何区分输入的文字中的全角与半角Q?br />{:׃不能分L出全角和半角字符的值有什么规?只好把全角符L丑և来了.

70. 问:用户注册后的自动发信E序该怎么做?
{:
q种发信E序不考虑性能,因ؓ不可?U就有一个h注册,我们说的考虑性能的发信程序是指上百万信在队列里要不停发送的那种,象你q个

随便怎么写一个程序都?没有必要用JAVAMAIL.只要指定一个发信的服务器然后用cocketq它?5口就行了.自己用SOCKETqSMTP?5口发一?br />
信就好象两个d之间送一样东?直接递过d?用JAVAMAIL,消息机制是你把q个东西从邮局寄给?img src ="http://www.tkk7.com/pear/aggbug/69738.html" width = "1" height = "1" />

pear 2006-09-14 19:25 发表评论
]]>
Server Push详解(转蝲)http://www.tkk7.com/pear/archive/2006/09/14/69737.htmlpearpearThu, 14 Sep 2006 11:16:00 GMThttp://www.tkk7.com/pear/archive/2006/09/14/69737.htmlhttp://www.tkk7.com/pear/comments/69737.htmlhttp://www.tkk7.com/pear/archive/2006/09/14/69737.html#Feedback0http://www.tkk7.com/pear/comments/commentRss/69737.htmlhttp://www.tkk7.com/pear/services/trackbacks/69737.html 服务器推?Server Push)

推送技术的基础思想是将览器主动查询信息改为服务器d发送信息。服务器发送一Ҏ据,览器显C些数据,同时保证与服务器的连接。当服务器需要再ơ发送一Ҏ据时Q浏览器昄数据q保持连接。以后,服务器仍然可以发送批量数据,览器l显C数据,依次cL?

客户端拉?Client Pull)

在客L拖曳技术中Q服务器发送一Ҏ据,在HTTP响应或文档头标记中插入指令,让浏览器“在5U内再次装入q些数据”或?0U内前往某URL装入数据”。当指定的时间达到时Q客L按照服务器的指C去做,或者刷新当前数据,或者调入新的数据?

其实push ?pull q两U技术手D非怸同,但目的几乎一_都是Zl最l用h便的提供最C息?

在服务器推送技术中QHTTP q接一直保持着Q直到服务器知道自己已结束发送数据ƈ发送一个结束信P或者客L中断q接。而在客户端拖x术中Qƈ不保持HTTPq接Q相反,客户端被告知合时建立新连接,以及建立q接是获取什么数据?

在服务器推送中Q奇妙之处在于“multipart/mixed”格式的MIMEQ它能够使一个报文(或HTTP响应Q包含许多数据项、在客户端拖曳中Q奇妙之处在于HTTP响应头标Q或{效的HTML元素Q,它能告知客户端在指定的g时时间后执行何种动作?

服务器推送通常效率要比客户端拖x率高Q因为它不必为后l数据徏立新的连接。由于始l保持连接,即没有数据传输时也是这P因此服务器必L意分配这些TCP/IP端口Q对于TCP/IP端口数有限的服务器这是一个严重的问题?

客户端拖x率低Q因必须每次Z送数据徏立新的连接。但是它不必始终保持q接?

在实际情况中Q徏立HTTPq接通常需要花费相当多的时_多达一U甚x多。因此从性能上考虑Q服务器推送对于最l用h有吸引力Q特别是对于需要经常更C息的情况下?

服务器推送相对客L拖曳的另一点优势是Q服务器推送相Ҏ较容易控制。例如,服务器每一ơ推送时都保持一个连接,但它又随时可以关闭其中的Mq接Q而不需要在服务器上讄Ҏ的算法。而客L拖曳在同L情况下要ȝ许多Q它每次要与服务器徏立连接,服务器ؓ了处理将客户端拖曌求与特定的最l用户匹配等情况Q需要用相当麻烦的法?

如果实现服务器推送的CGIE序是用Shell脚本语言~写的,有时会存在一些问题。例如,客户端最l用户中断连接,ShellE序通常不能注意刎ͼq将使资源毫无用处的费掉,解决q一问题的办法是用Perl或者C来编写这cCGIE序Q以使用户中断连接时能够l束q行?


如上所qͼ在服务器推送中Q多个响应中q接始终保持Q服务器可在Q何时间发送更多的数据。一个明昄好处是服务器完全能够控制更新数据的时间和频率。另外,q种Ҏ效率高,因ؓ始终保持q接。缺Ҏ保持q接状态会费服务器端的资源。服务器推送还比较Ҏ中断?

接下来就大概说说服务器推送技?
服务器在响应hӞHTTP使用MIME报文格式来封装数据。通常一个HTTP响应只能包含一个数据块。但MIME有一U机制可用一个报文(或HTTP响应Q表C将多个数据块,q种机制是成ؓ“multipart/mixed”的标准MIMEcd。multipart/mixed报文大体格式如下Q?
Content-type:multipart/mixed;boundary=ThisRandomString
--ThisRandomString
Content-type:text/plain
W一个对象的数据?
--ThisRandomString
Content-type:text/plain
W二个对象的数据?
--ThisRandomString--

上述报文包括两上数据块,二者的cd都是“text/plain”。最后一个“ThisRandomString”后的两条短U(--Q表C报文结束,后面没有数据?

对于服务器推送,使用一个“multipart/mixed”类型的变种--multipart/x-mixed-replace。这里,“x-”表C属于实验类型。“replace”表C每一个新数据块都会代替前一个数据块。也是_新数据不是附加到旧数据之后,而是替代它?

下面是实际用的“multipart/x-mixed-replace”类型:
Content-type:multipart/x-mixed-replace;boundary=ThisRandomString
--ThisRandomString
Content-type:text/plain
W一个对象的数据
--ThisRandomString
Content-type:text/plain
W二个(最后一个)对象的数据?
--ThisRandomString--
使用q一技术的关键是,服务器ƈ不是推送整个“multipart/x-mixed-replace”报文,而是每次发送后数据块?
HTTPq接始终保持Q因而服务器可以按自己需要的速度和频率推送新数据Q两个数据块之间览器仅需在当前窗口等候,用户甚至可以到其他窗口做别的事情Q当服务器需要发送新数据Ӟ它只是源QABC输入法没那个?&^$#Q传输管道发送数据块Q客L相应的窗口进行自我更新?

在服务器推送技术中Q“multipart/x-mixed-replace”类型的报文由唯一的边界线l成Q这些边界线分割每个数据块。每个数据块都有自己的头标,因而能够指定对象相关的内容cd和其他信息。由于“multipart/x-mixed-replace”的Ҏ是每一新数据块取代前一数据对象Q因而浏览器中L昄最新的数据对象?
“multipart/x-mixed-replace”报文没有结。也是_服务器可以永q保持连接,q发送所需的数据。如果用户不再在览器窗口中昄数据,或者浏览器到服务器间的q接中间Q例如用h“STOP”按钮)Q服务器的推送才会中断。这是h们用服务器推送的典型方式?

当浏览器发现“Content-type”头标或到达头标l束处时Q浏览器H口中的前一个文档被清除Qƈ开始显CZ一个文档。发C一个报文边界时Q就认ؓ当前数据块(文档Q已l结束?
MQ服务器推送的数据׃l头标(通常包括“Content-type”)、数据本w和分割W(报文边界Q三部分l成。浏览器看到分割W时Q它保持状态不变,直到下一个数据块到达?

以上概念进行用~程Ҏ实现Q就可以得到实际的服务器推送程序。例如,下面的Unix shellE序ɋ览器每5U显CZơ服务器上的q程列表Q?
#!/bin/sh
echo "HTTP/1.1 200"
echo "Content-type: multipart/x-mixed-replace;boundary=--ThisRandomString--"
echo ""
echo "--ThisRandomString--"
while true
do
echo "Content-type: text/html"
echo ""
echo "h2Processes on this machine updated every 5 seconds/h2"
echo "time:"
date
echo "p"
echo "plaintext"
ps -el
echo "--ThisRandomString--"
sleep 5
done
注意刎ͼ边界讄在sleep语句之前发送,q能够确保浏览器清除其缓冲区Qƈ昄所接收到的最新数据?
NCSA HTTPD用户在内容类型中不能使用I格Q包括边界参数。NCSA HTTPD只能不带空格字W的字符串作为内容类型。如果在内容cd行中存在I格Q冒号后面的I格除外Q,I格后的M文本都会被删除?
下面的示例是正确的:
Content-type: multipart/x-mixed-replace;boundary=ThisRandomString
而下例则不能正常工作Q因为它在中间有I格Q?
Content-type: multipart/x-mixed-replace; boundary=ThisRandomString
服务器推送的另一个优Ҏ它可以针对单个内联图象进行。包括图象的文档可以由服务器定时或定周期q行更新。而实现这一炚w常简单:只需使IMG元素的SRC属性指向推送一pd图象的URL卛_?

如果服务器推送用于单个内联图象,文档中的图象׃一ơ次被新推送来的图象所代替Q而文档本w不需变化Q假设文档没有进行服务器推送)。这PWEB面中有限的动画可以ؓ静态画面所代替?

客户端拖?

客户端拖曳的一个简单用法是使文档按固定周期自动重蝲。例如,考虑下面的HTML文档Q?
<META HTTP-EQUIV="Refresh" CONTENT=1>
<TITLE>Document ONE</TITLE>
<H1>This is Document ONE!</H1>
Here's some text.<P>
如果它载入支持动态文档的览器(Netscape 1.1以上QInternet Explorer和Mosaic也支持客L拖曳Q,它将每隔一U将自己重蝲一ơ?
׃META元素实际是在HTML文档中模拟HTTP响应头标Q所以它能够告知览器将自n信息当作HTTP响应使用。上例中的META标记相当于:
Refresh:1
q样Q实际上是HTTP头标告知览器每一U更Cơ文档。如果需要g时是12U,那么是q样的指令:
<META HTTP-RQUIV="Refresh" CONTENT=12>
那么它等效于Q?
Refresh:12

关于客户端的拖曳我也懒的l箋写下去,关于怎么使客L自动甌其他URL的数据话Q请使用如下Q?
<META HTTP-EQUIV="Refresh" CONTENT="12;URL=http://icools.yeah.net/">
注意的是Q此处的URL不能使用相对路径Q必d部指定?

其中旉间隔可以讄?Q这h览器在当前文档显C完毕后Q以最快的速度载入新的数据Q?/font>
 

q回
  

    IT315发表的文档,均来自于相关|站公开发表的内容,如果您认为本站发表的文章늊了您的著作权Q请及时与本站取得联p,本站在W一旉内删除。如果您有好的文章也可以通过Email提供l我们,如果有问题可以在留言板提出?/font>


pear 2006-09-14 19:16 发表评论
]]>
վ֩ģ壺 ޾Ʒһ| AVһ| ޸߾Ʒ| ҹ޾Ʒҹ³˿Ƭ| 99re߾ƷƵ| AVۺ뾫Ʒ | ۺ˾þôý| 91˳վɫwww| avרߵӰ| ɫWWWվ| ѵӰ߹ۿվ| ĻѲƵ| anպר| ɫ޾ƷĻ| aëƬȫƵ| Ļ| ޾ƷaĻ| պվ | ŮƵվa| 99ȲƷ99| ɫžžþWWWۺ| һƷ| ҹƵ| 99ƷƵѹۿ| ҹƬ| ˳ۺ߲| ˳Ƶۿ| պaëƬѹۿ| 69paoǿѸ| Ļ| AV˾ƷӰԺ| ĻۺϾƷһ| þŷ޹ۺ| ѸƵվ| ˾ƷƵ| ˳ëƬ߲| ˬˬƬav| AVƬһ| jizz| ޾Ʒ| avպۺһ߹ۿ|