﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Enjoy yourself,and don't care about others' thinking!</title><link>http://www.blogjava.net/TiGERTiAN/</link><description>----TiGERTiAN</description><language>zh-cn</language><lastBuildDate>Thu, 16 Oct 2008 04:56:49 GMT</lastBuildDate><pubDate>Thu, 16 Oct 2008 04:56:49 GMT</pubDate><ttl>60</ttl><item><title>Myeclipse部署的时候提示文件被锁了的解决办法</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234219.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Tue, 14 Oct 2008 05:57:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234219.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/234219.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234219.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/234219.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/234219.html</trackback:ping><description><![CDATA[今天碰到了这个情况，经过测试发现，原来是一个包含在build path中的jar包给我删除了。想起来以前应该很多都是这种情况，而这种情况会导致build没有任何反应。<br />
如果大家不是这个原因，可以新建一个项目，把所有文件都拷过去，看看是否会有错，一般都会发现错误的
 <img src ="http://www.blogjava.net/TiGERTiAN/aggbug/234219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-14 13:57 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Server Faces Events And Listeners (JSF中的事件与监听器)</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234179.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Tue, 14 Oct 2008 02:49:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234179.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/234179.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/234179.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/234179.html</trackback:ping><description><![CDATA[JSF的一个核心就是事件与监听。JSF事件分为以下几种：<br />
1、Value-change events（值改变事件）<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:inputText&nbsp;</span><span style="color: #ff0000">valueChangeListener</span><span style="color: #0000ff">="#{myForm.processValueChanged}"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:panelGrid&nbsp;</span><span style="color: #ff0000">binding</span><span style="color: #0000ff">="#{myForm.changePanel}"</span><span style="color: #ff0000">&nbsp;rendered</span><span style="color: #0000ff">="false"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h:panelGrid</span><span style="color: #0000ff">&gt;</span></div>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;processValueChanged(ValueChangeEvent&nbsp;event)<br />
<img id="Codehighlighter1_56_175_Open_Image" onclick="this.style.display='none'; Codehighlighter1_56_175_Open_Text.style.display='none'; Codehighlighter1_56_175_Closed_Image.style.display='inline'; Codehighlighter1_56_175_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_56_175_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_56_175_Closed_Text.style.display='none'; Codehighlighter1_56_175_Open_Image.style.display='inline'; Codehighlighter1_56_175_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_56_175_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_56_175_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />HtmlInputText&nbsp;sender&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HtmlInputText)event.getComponent();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />sender.setReadonly(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />changePanel.setRendered(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
当inputText的值改变的时候会触发processValueChanged事件，此事情内部通过参数，获取HtmlInputText的控件，然后设定readonly，同时设定panelGrid的模型changePanel的属性，因为panelGrid绑定了changePanel这个模型。<br />
<br />
2、Action events(动作事件)<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:commandButton&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="submit"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="Login"</span><span style="color: #ff0000">&nbsp;action</span><span style="color: #0000ff">="success"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />immediate</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">/&gt;</span></div>
上面这个是静态outcome事件，在faces-config.xml中配置相应的属性后，点击该按钮会转向相应的方法。<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:commandButton&nbsp;</span><span style="color: #ff0000">value&nbsp;</span><span style="color: #0000ff">=&nbsp;"Test&nbsp;Action&nbsp;Listener"</span><span style="color: #ff0000">&nbsp;actionListener&nbsp;</span><span style="color: #0000ff">=&nbsp;"#{testActionListener.doSomeAction}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
如果添加了actionListener属性的话，点击之后，在转向其他页面之前，会触发指定的事件，处理之后再转向。<br />
这里的doSomeAction方法的声明是void doSomeAction(ActionEvent actionEvent)。<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">h:commandButton&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="submit"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="Login"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />action</span><span style="color: #0000ff">="#{loginForm.login}"</span><span style="color: #0000ff">/&gt;</span></div>
上面这个是动态outcome事件，当点击该按钮之后会直接触发loginForm中的login事件，login事件返回的是一个字符串，在login处理完相应操作之后需要返回一个属性中已经配置过的字符串，例如success，然后JSF根据faces-config.xml中的配置，跳转到相应的页面。login的声明一般是String login();<br />
<br />
当然也可以通过程序来添加监听器，不过监听器类需要实现ActionListener接口：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">UIComponent&nbsp;myComponent&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;UIComponent();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />myComponent.addActionListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TestActionListener());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />myComponent.addActionListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;CustomActionListener());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
3、Data model events（数据模型事件）<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">FacesContext&nbsp;facesContext&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;FacesContext.getCurrentInstance();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataTable&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HtmlDataTable)facesContext.getApplication().createComponent(<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />HtmlDataTable.COMPONENT_TYPE);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />DataModel&nbsp;myDataModel&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ResultSetDataModel(myResultSet);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />myDataModel.addDataModelListener(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataModelListener()<br />
<img id="Codehighlighter1_286_430_Open_Image" onclick="this.style.display='none'; Codehighlighter1_286_430_Open_Text.style.display='none'; Codehighlighter1_286_430_Closed_Image.style.display='inline'; Codehighlighter1_286_430_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_286_430_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_286_430_Closed_Text.style.display='none'; Codehighlighter1_286_430_Open_Image.style.display='inline'; Codehighlighter1_286_430_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_286_430_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_286_430_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;rowSelected(DataModelEvent&nbsp;e)<br />
<img id="Codehighlighter1_330_428_Open_Image" onclick="this.style.display='none'; Codehighlighter1_330_428_Open_Text.style.display='none'; Codehighlighter1_330_428_Closed_Image.style.display='inline'; Codehighlighter1_330_428_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_330_428_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_330_428_Closed_Text.style.display='none'; Codehighlighter1_330_428_Open_Image.style.display='inline'; Codehighlighter1_330_428_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span id="Codehighlighter1_330_428_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_330_428_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />FacesContext.getCurrentInstance().getExternalContext().<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />log(</span><span style="color: #000000">"</span><span style="color: #000000">row&nbsp;selected:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;e.getRowIndex());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataTable.setValue(myDataModel);</span></div>
将上面的代码放入初始化程序中，当行的选择改变的时候就会触发相应的日志打印。<br />
这是因为这段代码给dataTable控件定义了一个数据模型，数据和相应的事件全部存在这个数据模型里面，然后将dataTable与这个模型进行绑定即可使用它所有的数据和事件。点击dataTable上面的一行自然也就会出发相应的行选择事件。 <br />
<br />
4.Phase events（阶段事件）<br />
<p>这个事件是为了捕捉一些阶段和过程而设定的，有以下几个阶段可以捕捉：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">ANY_PHASE&nbsp;任一阶段<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />APPLY_REQUEST_VALUES&nbsp;&nbsp;请求处理阶段的应用请求值阶段<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />INVOKE_APPLICATION&nbsp;请求处理阶段的调用程序阶段<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />PROCESS_VALIDATIONS&nbsp;请求处理阶段的处理验证阶段<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />RENDER_RESPONSE&nbsp;&nbsp;请求处理阶段的描述响应阶段<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />RESTORE_VIEW&nbsp;请求处理阶段的恢复视图阶段<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />UPDATE_MODEL_VALUES&nbsp;请求处理阶段的更新模型值阶段</span></div>
<p>具体可以参考<a href="http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/event/PhaseId.html">http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/event/PhaseId.html</a></p>
<p>通过设定在实现类中设定相应的PhaseId以及添加到faces-config.xml中就可以捕捉相应阶段事件并添加响应的代码</p>
<p>实现类</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.faces.event.PhaseEvent;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.faces.event.PhaseId;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.faces.event.PhaseListener;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CustomPhaseListener&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;PhaseListener<br />
<img id="Codehighlighter1_170_576_Open_Image" onclick="this.style.display='none'; Codehighlighter1_170_576_Open_Text.style.display='none'; Codehighlighter1_170_576_Closed_Image.style.display='inline'; Codehighlighter1_170_576_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_170_576_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_170_576_Closed_Text.style.display='none'; Codehighlighter1_170_576_Open_Image.style.display='inline'; Codehighlighter1_170_576_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_170_576_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_170_576_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;CustomPhaseListener()<br />
<img id="Codehighlighter1_213_219_Open_Image" onclick="this.style.display='none'; Codehighlighter1_213_219_Open_Text.style.display='none'; Codehighlighter1_213_219_Closed_Image.style.display='inline'; Codehighlighter1_213_219_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_213_219_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_213_219_Closed_Text.style.display='none'; Codehighlighter1_213_219_Open_Image.style.display='inline'; Codehighlighter1_213_219_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_213_219_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_213_219_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;afterPhase(PhaseEvent&nbsp;event)<br />
<img id="Codehighlighter1_271_347_Open_Image" onclick="this.style.display='none'; Codehighlighter1_271_347_Open_Text.style.display='none'; Codehighlighter1_271_347_Closed_Image.style.display='inline'; Codehighlighter1_271_347_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_271_347_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_271_347_Closed_Text.style.display='none'; Codehighlighter1_271_347_Open_Image.style.display='inline'; Codehighlighter1_271_347_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_271_347_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_271_347_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">After&nbsp;Phase-&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;event.getPhaseId());&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;beforePhase(PhaseEvent&nbsp;event)<br />
<img id="Codehighlighter1_400_473_Open_Image" onclick="this.style.display='none'; Codehighlighter1_400_473_Open_Text.style.display='none'; Codehighlighter1_400_473_Closed_Image.style.display='inline'; Codehighlighter1_400_473_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_400_473_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_400_473_Closed_Text.style.display='none'; Codehighlighter1_400_473_Open_Image.style.display='inline'; Codehighlighter1_400_473_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_400_473_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_400_473_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">Before&nbsp;Phase-&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;event.getPhaseId());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;PhaseId&nbsp;getPhaseId()<br />
<img id="Codehighlighter1_512_570_Open_Image" onclick="this.style.display='none'; Codehighlighter1_512_570_Open_Text.style.display='none'; Codehighlighter1_512_570_Closed_Image.style.display='inline'; Codehighlighter1_512_570_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_512_570_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_512_570_Closed_Text.style.display='none'; Codehighlighter1_512_570_Open_Image.style.display='inline'; Codehighlighter1_512_570_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_512_570_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_512_570_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;PhaseId.ANY_PHASE;</span><span style="color: #008000">//</span><span style="color: #008000">选择事件标识的常量，此为任一阶段</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<br />
在faces-config.xml中添加<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">lifecycle</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">phase-listener</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;net.javabeat.articles.jsf.events.actions.TestActionListener<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">phase-listener</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">lifecycle</span><span style="color: #0000ff">&gt;</span></div>
<br />
当然可以添加无限个的监听器<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">lifecycle</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">phase-listener</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">PhaseListener1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">phase-listener</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">phase-listener</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">PhaseListener2</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">phase-listener</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">lifecycle</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
下面是请求处理的生命周期，大家可以直观的看一下各个阶段执行顺序：<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/tigertian/jsfrequestlifecycle.png" border="0" />&nbsp;<br />
各个阶段的说明以及所能触发的事件<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/tigertian/jsfeventtable.jpg" border="0" /> 
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/234179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-14 10:49 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/14/234179.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>roller 4.0 中文标题乱码的解决</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234032.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Mon, 13 Oct 2008 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234032.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/234032.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234032.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/234032.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/234032.html</trackback:ping><description><![CDATA[在themes/basic/weblog.vm中，修改$utils.escapeHTML($model.weblog.name)为$utils.removeHTML($model.weblog.name)即可
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/234032.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-13 16:17 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234032.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Roller 4.0中使用SQL Server 2000产生的异常[Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream returned zero bytes 的解决办法</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234013.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Mon, 13 Oct 2008 07:02:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234013.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/234013.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234013.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/234013.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/234013.html</trackback:ping><description><![CDATA[问题说明在这里：<br />
http://support.microsoft.com/kb/894559<br />
<br />
1.最好能有最新的hotfix驱动，上面已经列出来了。<br />
2.给所有的text列一个默认值''<br />
3.将所有的text类型改为ntext即可<br />
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/234013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-13 15:02 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Roller 4.0 二次开发项目工程配置</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234011.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Mon, 13 Oct 2008 06:59:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234011.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/234011.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/234011.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/234011.html</trackback:ping><description><![CDATA[1.新建一个Ant Build项目，通过webbloger下的build.xml导入进eclipse工程里面，选择build-business就可以了<br />
2.添加相应的包，mail.jar.activation.jar,以及roller bin中所有的包。<br />
3.将weblogger/custom下的所有文件以及build.properties和properties.xmlf拷贝到工程文件根目录<br />
4.对build.xml点击右键--run--open external tool dialog，配置Ant参数。<br />
5.Ant参数中，Main中Base Directory设定为webbloger目录，Classpath里面添加jboss-j2ee.jar,mail.jar,activation.jar三个包。Targets选择usage和rebuild。<br />
6.再新建一个web project，把上一个工程的所有包都加进去，同时还要加入数据库连接的包(比如mysql的)以及上一个工程生成的jar包（roller-business.jar和roller-web.jar）。同时还需要把所有资源文件加入进去（存放于weblogger\web\WEB-INF\classes\下的所有文件，主要都是一些资源配置文件没有类文件），这样就可以了。<br />
7.每次修改生成的jar包会跟着一起部署到容器里面 
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/234011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-13 14:59 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/234011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]常用数据库连接</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/233963.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Mon, 13 Oct 2008 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/233963.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/233963.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/233963.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/233963.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/233963.html</trackback:ping><description><![CDATA[<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>常用 JDBC 驱动名字和 URL 列表</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>ODBC driver</strong></span></span></p>
<p class="newtext"><a href="http://topic.ccw.com.cn/corpCenter/379.html" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>sun</strong></span></span></a><span style="color: #000000"><span style="color: #000000"><strong>.jdbc.odbc.JdbcOdbcDriver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:odbc:name</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>用 COM.</strong></span></span><a href="http://topic.ccw.com.cn/corpCenter/462.html" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>ibm</strong></span></span></a><span style="color: #000000"><span style="color: #000000"><strong>.db2.jdbc.net.DB2Driver 连接到 DB2 </strong></span></span><a href="http://wiki.ccw.com.cn/%E6%95%B0%E6%8D%AE%E5%BA%93" target="_blank"><font color="#0000cc"><a href="http://wiki.ccw.com.cn/%E6%95%B0%E6%8D%AE%E5%BA%93" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>数据库</strong></span></span></a></font></a></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>一个 DB2 URL 的示例:</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:db2://aServer.myCompany.com:50002/name</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>用 com.</strong></span></span><a href="http://topic.ccw.com.cn/corpCenter/47.html" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>sybase</strong></span></span></a><span style="color: #000000"><span style="color: #000000"><strong>.jdbc.SybDriver连接到 Sybase 数据库</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>一个 Sybase URL 的示例:</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:sybase:Tds:aServer.myCompany.com:2025</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>MySQL driver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>com.mysql.jdbc.Driver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:mysql://hostname:3306/dbname?useUnicode=true&amp;characterEncoding=GBK</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>Microsoft SQL Server Driver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>com.microsoft.jdbc.sqlserver.SQLServerDriver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=W</strong></span></span><a href="http://wiki.ccw.com.cn/AP" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>ap</strong></span></span></a><span style="color: #000000"><span style="color: #000000"><strong>Svc;User=sa;Password=pwd</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>Informix</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>com.informix.jdbc.IfxDriver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:informix-sqli://hostname:1526/dbname:INFORMIXSERVER=informixservername;user=username;password=password</strong></span></span></p>
<p class="newtext"><a href="http://topic.ccw.com.cn/corpCenter/407.html" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>Oracle</strong></span></span></a></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>oracle.jdbc.driver.OracleDriver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:oracle:thin:@hostname:1521:</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>Postgresql</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>org.postgresql.Driver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:postgresql://lo</strong></span></span><a href="http://topic.ccw.com.cn/corpCenter/249.html" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>ca</strong></span></span></a><span style="color: #000000"><span style="color: #000000"><strong>lhost/soft</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>Apache Derby/Java DB</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>org.apache.derby.jdbc.Cl</strong></span></span><a href="http://wiki.ccw.com.cn/IE" target="_blank"><span style="color: #000000"><span style="color: #000000"><strong>ie</strong></span></span></a><span style="color: #000000"><span style="color: #000000"><strong>ntDriver</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:derby://localhost:1527/databaseName;create=true</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>Access 是通过 ODBC 连接的. Excel 也可以. 甚至可以动态构造连接字符串:</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>这样可以直接连接到 Access 数据库文件.</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\mydata.mdb</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>类似的 Excel 文件也可以用类似方法:</strong></span></span></p>
<p class="newtext"><span style="color: #000000"><span style="color: #000000"><strong>jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};DBQ=.\mydata.xls</strong></span></span></p>
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/233963.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-13 11:35 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/13/233963.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows Mobile开发的一些小技巧（持续更新）</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/07/232898.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Tue, 07 Oct 2008 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/07/232898.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/232898.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/07/232898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/232898.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/232898.html</trackback:ping><description><![CDATA[<p>1.如何真正的退出程序，而不是隐藏窗体？<br />
Windows Mobile中当你点击X的时候，并不是真正的关闭窗体，而是隐藏窗体，需要在应用程序的每个Form中调用一个函数才可以。<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;InfoMain_Closed(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />
<img id="Codehighlighter1_73_115_Open_Image" onclick="this.style.display='none'; Codehighlighter1_73_115_Open_Text.style.display='none'; Codehighlighter1_73_115_Closed_Image.style.display='inline'; Codehighlighter1_73_115_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_73_115_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_73_115_Closed_Text.style.display='none'; Codehighlighter1_73_115_Open_Image.style.display='inline'; Codehighlighter1_73_115_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_73_115_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_73_115_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.Exit();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p><br />
每个窗体的Closed事件中加入Application.Exit();才能真正的退出程序。<br />
<br />
2.如何让窗体跟着输入法窗口上移？<br />
当输入文字时需要打开输入法，而当打开输入法的时候输入法会直接盖掉下层的程序界面，导致有时候窗体下方的控件无法进行操作（输入文字，点击按钮等），那么这个时候就需要我们在输入法状态变更的时候出发一些事件，让输入法窗口不要盖住程序。<br />
首先每次创建Form，最好都先添加一个panel做控件的上层容器，设定好相对panel的位置，这样控件才会根据panel的变化而变化。之后给InputPanel的EnabledChanged事件加入下面的代码：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;inputPanel1_EnabledChanged(</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />
<img id="Codehighlighter1_84_378_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_378_Open_Text.style.display='none'; Codehighlighter1_84_378_Closed_Image.style.display='inline'; Codehighlighter1_84_378_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_84_378_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_378_Closed_Text.style.display='none'; Codehighlighter1_84_378_Open_Image.style.display='inline'; Codehighlighter1_84_378_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_84_378_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_84_378_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(inputPanel1.Enabled)<br />
<img id="Codehighlighter1_135_272_Open_Image" onclick="this.style.display='none'; Codehighlighter1_135_272_Open_Text.style.display='none'; Codehighlighter1_135_272_Closed_Image.style.display='inline'; Codehighlighter1_135_272_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_135_272_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_135_272_Closed_Text.style.display='none'; Codehighlighter1_135_272_Open_Image.style.display='inline'; Codehighlighter1_135_272_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_135_272_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_135_272_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.panel1.Dock&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DockStyle.None;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.panel1.Height&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;inputPanel1.VisibleDesktop.Height;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_303_368_Open_Image" onclick="this.style.display='none'; Codehighlighter1_303_368_Open_Text.style.display='none'; Codehighlighter1_303_368_Closed_Image.style.display='inline'; Codehighlighter1_303_368_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_303_368_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_303_368_Closed_Text.style.display='none'; Codehighlighter1_303_368_Open_Image.style.display='inline'; Codehighlighter1_303_368_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_303_368_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_303_368_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.panel1.Dock&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;DockStyle.Fill;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
当输入法打开的时候panel不再占据全屏，而是跟除了输入法外的可视化范围一样高。输入法关闭时，panel恢复占据全屏。当然panel的AutoScroll要设定为true。 <br />
<br />
3.如何创建非全屏Form?<br />
首先需要你创建一个全屏的Form，然后将以下参数设定为指定值<br />
ControlBox = false;<br />
FormBorderStyle = none;<br />
MinimizeBox = false;<br />
WindowState = normal;<br />
Size = 设置为你想要的大小即可。<br />
<br />
这样的非全屏窗体不带边框不带标题，只有一个光秃秃的Form。如果你需要那些边框和标题使得界面更加美观，则可以参考以下文章：<br />
http://www.christec.co.nz/blog/archives/134<br />
牵扯到了一些对底层的操作。
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/232898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-07 13:02 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/07/232898.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#获得和发送网站Session</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/10/04/232290.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Sat, 04 Oct 2008 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/10/04/232290.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/232290.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/10/04/232290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/232290.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/232290.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpWebRequest)WebRequest.Create(url);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(Const.session&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_125_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_125_209_Open_Text.style.display='none'; Codehighlighter1_125_209_Closed_Image.style.display='inline'; Codehighlighter1_125_209_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_125_209_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_125_209_Closed_Text.style.display='none'; Codehighlighter1_125_209_Open_Image.style.display='inline'; Codehighlighter1_125_209_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_125_209_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_125_209_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.Headers.Add(</span><span style="color: #000000">"</span><span style="color: #000000">Cookie</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Const.session);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.Timeout&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">30000</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设定超时值</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.ContentType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">application/octet-stream</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.Method&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">POST</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.ContentLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;outData.Length;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.GetRequestStream();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream.Write(outData,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;outData.Length);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream.Flush();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stream.Close();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Const.uiWaitMessage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">请求发送完毕，开始接收数据</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(</span><span style="color: #000000">500</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">发送完毕<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">接收数据</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpWebResponse)request.GetResponse();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(Const.session&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_861_1194_Open_Image" onclick="this.style.display='none'; Codehighlighter1_861_1194_Open_Text.style.display='none'; Codehighlighter1_861_1194_Closed_Image.style.display='inline'; Codehighlighter1_861_1194_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_861_1194_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_861_1194_Closed_Text.style.display='none'; Codehighlighter1_861_1194_Open_Image.style.display='inline'; Codehighlighter1_861_1194_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_861_1194_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_861_1194_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;注销后要清除Common.session</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cookie&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;response.GetResponseHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Set-Cookie</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(cookie&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1024_1176_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1024_1176_Open_Text.style.display='none'; Codehighlighter1_1024_1176_Closed_Image.style.display='inline'; Codehighlighter1_1024_1176_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1024_1176_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1024_1176_Closed_Text.style.display='none'; Codehighlighter1_1024_1176_Open_Image.style.display='inline'; Codehighlighter1_1024_1176_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1024_1176_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1024_1176_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cookie.IndexOf(</span><span style="color: #000000">'</span><span style="color: #000000">;</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(n&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;Const.session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cookie.Substring(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;n);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br />
使用<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(Const.session&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_59_392_Open_Image" onclick="this.style.display='none'; Codehighlighter1_59_392_Open_Text.style.display='none'; Codehighlighter1_59_392_Closed_Image.style.display='inline'; Codehighlighter1_59_392_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_59_392_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_59_392_Closed_Text.style.display='none'; Codehighlighter1_59_392_Open_Image.style.display='inline'; Codehighlighter1_59_392_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_59_392_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_59_392_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;注销后要清除Common.session</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cookie&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;response.GetResponseHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Set-Cookie</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(cookie&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_222_374_Open_Image" onclick="this.style.display='none'; Codehighlighter1_222_374_Open_Text.style.display='none'; Codehighlighter1_222_374_Closed_Image.style.display='inline'; Codehighlighter1_222_374_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_222_374_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_222_374_Closed_Text.style.display='none'; Codehighlighter1_222_374_Open_Image.style.display='inline'; Codehighlighter1_222_374_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_222_374_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_222_374_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cookie.IndexOf(</span><span style="color: #000000">'</span><span style="color: #000000">;</span><span style="color: #000000">'</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(n&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;&nbsp;Const.session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;cookie.Substring(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;n);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
可以获得并保存网站分配的Session信息<br />
<br />
这样每次访问指定url的时候就可以先用<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(Const.session&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_59_143_Open_Image" onclick="this.style.display='none'; Codehighlighter1_59_143_Open_Text.style.display='none'; Codehighlighter1_59_143_Closed_Image.style.display='inline'; Codehighlighter1_59_143_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_59_143_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_59_143_Closed_Text.style.display='none'; Codehighlighter1_59_143_Open_Image.style.display='inline'; Codehighlighter1_59_143_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_59_143_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_59_143_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;request.Headers.Add(</span><span style="color: #000000">"</span><span style="color: #000000">Cookie</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Const.session);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
来添加Cookie，将已获得Session信息发送到网站。
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/232290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-10-04 10:41 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/10/04/232290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF与后台程序的交互</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/09/28/231687.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Sun, 28 Sep 2008 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/09/28/231687.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/231687.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/09/28/231687.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/231687.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/231687.html</trackback:ping><description><![CDATA[如果Managed-Bean已经被创建并存在，则可以通过下面的形式访问session范围内的Managed-Bean<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">org.test.TestBean&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(org.test.TestBean)&nbsp;request.getSession().getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">testBean</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<br />
<br />
如果不存在，则需要先访问一下Managed-Bean，让他被触发而创建<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">org.test.TestBean&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(org.test.TestBean)&nbsp;Util.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">testBean</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">In&nbsp;Util.java:</span><span style="color: #008000"><br />
<img id="Codehighlighter1_127_360_Open_Image" onclick="this.style.display='none'; Codehighlighter1_127_360_Open_Text.style.display='none'; Codehighlighter1_127_360_Closed_Image.style.display='inline'; Codehighlighter1_127_360_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_127_360_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_127_360_Closed_Text.style.display='none'; Codehighlighter1_127_360_Open_Image.style.display='inline'; Codehighlighter1_127_360_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;Object&nbsp;getBean(String&nbsp;expr)</span><span id="Codehighlighter1_127_360_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_127_360_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />FacesContext&nbsp;context&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;FacesContext.getCurrentInstance();&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />Application&nbsp;app&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;context.getApplication();&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />ValueBinding&nbsp;binding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;app.createValueBinding(</span><span style="color: #000000">"</span><span style="color: #000000">#{</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;expr&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">}</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />Object&nbsp;value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;binding.getValue(context);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;value;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
为JSF指定Action，可以这样写：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">h:commandButton&nbsp;action</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">#{user.verify}</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Say&nbsp;Hello!</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">h:commandButton</span><span style="color: #000000">&gt;</span></div>
User类中的代码:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;verify()<br />
<img id="Codehighlighter1_25_163_Open_Image" onclick="this.style.display='none'; Codehighlighter1_25_163_Open_Text.style.display='none'; Codehighlighter1_25_163_Closed_Image.style.display='inline'; Codehighlighter1_25_163_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_25_163_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_25_163_Closed_Text.style.display='none'; Codehighlighter1_25_163_Open_Image.style.display='inline'; Codehighlighter1_25_163_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_25_163_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_25_163_Open_Text"><span style="color: #000000">{</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">hello</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
faces-config.xml中:<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">managed-bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">User&nbsp;Name&nbsp;Bean</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">managed-bean-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">user</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">managed-bean-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">managed-bean-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">demo.User</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">managed-bean-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">managed-bean-scope</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">session</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">managed-bean-scope</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">managed-bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">navigation-rule</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">from-view-id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/pages/inputUserName.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">from-view-id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">navigation-case</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">from-outcome</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">hello</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">from-outcome</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">to-view-id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/pages/hello.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">to-view-id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">navigation-case</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">navigation-rule</span><span style="color: #0000ff">&gt;</span></div>
这样，点击按钮，就会转到verify方法中进行验证，然后返回相应结果的字符串，jsf根据返回的结果进行相应的页面跳转。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/TiGERTiAN/aggbug/231687.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/TiGERTiAN/" target="_blank">TiGERTiAN</a> 2008-09-28 15:20 <a href="http://www.blogjava.net/TiGERTiAN/archive/2008/09/28/231687.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HttpWebRequest使用注意（发生阻塞的解决办法）</title><link>http://www.blogjava.net/TiGERTiAN/archive/2008/09/08/227708.html</link><dc:creator>TiGERTiAN</dc:creator><author>TiGERTiAN</author><pubDate>Mon, 08 Sep 2008 04:52:00 GMT</pubDate><guid>http://www.blogjava.net/TiGERTiAN/archive/2008/09/08/227708.html</guid><wfw:comment>http://www.blogjava.net/TiGERTiAN/comments/227708.html</wfw:comment><comments>http://www.blogjava.net/TiGERTiAN/archive/2008/09/08/227708.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/TiGERTiAN/comments/commentRss/227708.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/TiGERTiAN/services/trackbacks/227708.html</trackback:ping><description><![CDATA[<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">HttpWebRequest&nbsp;myRequest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpWebResponse&nbsp;myResponse&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stream&nbsp;reqStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stream&nbsp;resStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_184_1249_Open_Image" onclick="this.style.display='none'; Codehighlighter1_184_1249_Open_Text.style.display='none'; Codehighlighter1_184_1249_Closed_Image.style.display='inline'; Codehighlighter1_184_1249_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_184_1249_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_184_1249_Closed_Text.style.display='none'; Codehighlighter1_184_1249_Open_Image.style.display='inline'; Codehighlighter1_184_1249_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_184_1249_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_184_1249_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;data&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;System.Text.Encoding.Default.GetBytes(param);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">想服务器端发送请求，获取照片信息</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpWebRequest)WebRequest.Create(url);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.Method&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">POST</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.KeepAlive&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.ContentType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">application/octet-stream</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.ContentLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;data.Length;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myRequest.GetRequestStream();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream.Write(data,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;data.Length);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream.Close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myResponse&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpWebResponse)myRequest.GetResponse();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myResponse.GetResponseStream();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[</span><span style="color: #000000">512</span><span style="color: #000000">];<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;count&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UIFactory.zZRK_MODIForm.memStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MemoryStream();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((count&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;resStream.Read(data,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;data.Length))&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1088_1183_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1088_1183_Open_Text.style.display='none'; Codehighlighter1_1088_1183_Closed_Image.style.display='inline'; Codehighlighter1_1088_1183_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1088_1183_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1088_1183_Closed_Text.style.display='none'; Codehighlighter1_1088_1183_Open_Image.style.display='inline'; Codehighlighter1_1088_1183_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1088_1183_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1088_1183_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UIFactory.zZRK_MODIForm.memStream.Write(data,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;count);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resStream.Close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000"><br />
<img id="Codehighlighter1_1281_1295_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1281_1295_Open_Text.style.display='none'; Codehighlighter1_1281_1295_Closed_Image.style.display='inline'; Codehighlighter1_1281_1295_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1281_1295_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1281_1295_Closed_Text.style.display='none'; Codehighlighter1_1281_1295_Open_Image.style.display='inline'; Codehighlighter1_1281_1295_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1281_1295_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1281_1295_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000"><br />
<img id="Codehighlighter1_1329_1687_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1329_1687_Open_Text.style.display='none'; Codehighlighter1_1329_1687_Closed_Image.style.display='inline'; Codehighlighter1_1329_1687_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1329_1687_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1329_1687_Closed_Text.style.display='none'; Codehighlighter1_1329_1687_Open_Image.style.display='inline'; Codehighlighter1_1329_1687_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1329_1687_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1329_1687_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(resStream&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1386_1443_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1386_1443_Open_Text.style.display='none'; Codehighlighter1_1386_1443_Closed_Image.style.display='inline'; Codehighlighter1_1386_1443_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1386_1443_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1386_1443_Closed_Text.style.display='none'; Codehighlighter1_1386_1443_Open_Image.style.display='inline'; Codehighlighter1_1386_1443_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1386_1443_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1386_1443_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resStream.Close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(reqStream&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1500_1557_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1500_1557_Open_Text.style.display='none'; Codehighlighter1_1500_1557_Closed_Image.style.display='inline'; Codehighlighter1_1500_1557_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1500_1557_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1500_1557_Closed_Text.style.display='none'; Codehighlighter1_1500_1557_Open_Image.style.display='inline'; Codehighlighter1_1500_1557_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1500_1557_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1500_1557_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream.Close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(myResponse&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
<img id="Codehighlighter1_1615_1673_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1615_1673_Open_Text.style.display='none'; Codehighlighter1_1615_1673_Closed_Image.style.display='inline'; Codehighlighter1_1615_1673_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1615_1673_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1615_1673_Closed_Text.style.display='none'; Codehighlighter1_1615_1673_Open_Image.style.display='inline'; Codehighlighter1_1615_1673_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1615_1673_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1615_1673_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myResponse.Close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
大家看下这段程序，有问题吗？乍一看，好像没有什么问题，所有的流都释放了，Response也释放了。。不过如果你写个循环无限次发起请求，你会发现，运行不了几次就阻塞了。为什么呢？大家看下面的代码<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">HttpWebRequest&nbsp;myRequest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpWebResponse&nbsp;myResponse&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stream&nbsp;reqStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stream&nbsp;resStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_184_1249_Open_Image" onclick="this.style.display='none'; Codehighlighter1_184_1249_Open_Text.style.display='none'; Codehighlighter1_184_1249_Closed_Image.style.display='inline'; Codehighlighter1_184_1249_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_184_1249_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_184_1249_Closed_Text.style.display='none'; Codehighlighter1_184_1249_Open_Image.style.display='inline'; Codehighlighter1_184_1249_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_184_1249_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_184_1249_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">byte</span><span style="color: #000000">[]&nbsp;data&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;System.Text.Encoding.Default.GetBytes(param);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">想服务器端发送请求，获取照片信息</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpWebRequest)WebRequest.Create(url);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.Method&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">POST</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.KeepAlive&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.ContentType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">application/octet-stream</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myRequest.ContentLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;data.Length;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myRequest.GetRequestStream();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream.Write(data,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;data.Length);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reqStream.Close();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myResponse&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(HttpWebResponse)myRequest.GetResponse();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resStream&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myResponse.GetResponseStream();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nb