﻿<?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-离弦之ray和霹雳vivian的技术天空-随笔分类-J2EE</title><link>http://www.blogjava.net/clraychen/category/26547.html</link><description>contact us by sending email to 
            clraychen@gmail.com
            eieig@hotmail.com</description><language>zh-cn</language><lastBuildDate>Wed, 05 Mar 2008 04:43:46 GMT</lastBuildDate><pubDate>Wed, 05 Mar 2008 04:43:46 GMT</pubDate><ttl>60</ttl><item><title>Struts2 + JSP分页再重构版</title><link>http://www.blogjava.net/clraychen/archive/2008/03/05/183929.html</link><dc:creator>离弦之ray的技术天空</dc:creator><author>离弦之ray的技术天空</author><pubDate>Wed, 05 Mar 2008 04:38:00 GMT</pubDate><guid>http://www.blogjava.net/clraychen/archive/2008/03/05/183929.html</guid><wfw:comment>http://www.blogjava.net/clraychen/comments/183929.html</wfw:comment><comments>http://www.blogjava.net/clraychen/archive/2008/03/05/183929.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clraychen/comments/commentRss/183929.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clraychen/services/trackbacks/183929.html</trackback:ping><description><![CDATA[由于代码大同小异，只是加了反射（通过Configuer类来实时生成需要的对象）<br />
也接受上次发布时各位高手提出的意见<br />
这次还是希望大家多提意见<br />
我继续重构<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/clraychen/TestJSP2.jpg" alt="" border="0" height="794" width="755" /><br />
<br />
<br />
<img src ="http://www.blogjava.net/clraychen/aggbug/183929.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clraychen/" target="_blank">离弦之ray的技术天空</a> 2008-03-05 12:38 <a href="http://www.blogjava.net/clraychen/archive/2008/03/05/183929.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts 2 + JSP分页，重构版</title><link>http://www.blogjava.net/clraychen/archive/2007/12/28/171083.html</link><dc:creator>离弦之ray的技术天空</dc:creator><author>离弦之ray的技术天空</author><pubDate>Fri, 28 Dec 2007 02:07:00 GMT</pubDate><guid>http://www.blogjava.net/clraychen/archive/2007/12/28/171083.html</guid><wfw:comment>http://www.blogjava.net/clraychen/comments/171083.html</wfw:comment><comments>http://www.blogjava.net/clraychen/archive/2007/12/28/171083.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/clraychen/comments/commentRss/171083.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clraychen/services/trackbacks/171083.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前两天的Struts2 + JSP分页由于过于关注框架实现，导致结构比较混乱。经过一些改动，再次发布。环境是JDK1.6+mysql5.0+jboss4.0+struts 2.0.11已经实现上一版没实现的功能。首先来看UML图,为了简洁性，其中的setter &amp; getter并没有标出。接下来是各类代码public classShowActionextendsAc...&nbsp;&nbsp;<a href='http://www.blogjava.net/clraychen/archive/2007/12/28/171083.html'>阅读全文</a><img src ="http://www.blogjava.net/clraychen/aggbug/171083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clraychen/" target="_blank">离弦之ray的技术天空</a> 2007-12-28 10:07 <a href="http://www.blogjava.net/clraychen/archive/2007/12/28/171083.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 + JSP 实现分页显示</title><link>http://www.blogjava.net/clraychen/archive/2007/12/22/169637.html</link><dc:creator>离弦之ray的技术天空</dc:creator><author>离弦之ray的技术天空</author><pubDate>Sat, 22 Dec 2007 12:48:00 GMT</pubDate><guid>http://www.blogjava.net/clraychen/archive/2007/12/22/169637.html</guid><wfw:comment>http://www.blogjava.net/clraychen/comments/169637.html</wfw:comment><comments>http://www.blogjava.net/clraychen/archive/2007/12/22/169637.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/clraychen/comments/commentRss/169637.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clraychen/services/trackbacks/169637.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 边查资料边摸索，终于把struts2+ JSP分页搞定了。环境是JDK1.6+mysql5.0+jboss4.0+struts 2.0.11主要有三个东西：show.jsp、ShowAction.java、PageInformation.java还需完善的地方：如果没有前一页、后一页，直接把这个链接在页面上屏蔽掉...&nbsp;&nbsp;<a href='http://www.blogjava.net/clraychen/archive/2007/12/22/169637.html'>阅读全文</a><img src ="http://www.blogjava.net/clraychen/aggbug/169637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clraychen/" target="_blank">离弦之ray的技术天空</a> 2007-12-22 20:48 <a href="http://www.blogjava.net/clraychen/archive/2007/12/22/169637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>设计模式初试（Sigleton &amp; Factory）</title><link>http://www.blogjava.net/clraychen/archive/2007/12/17/168231.html</link><dc:creator>离弦之ray的技术天空</dc:creator><author>离弦之ray的技术天空</author><pubDate>Mon, 17 Dec 2007 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/clraychen/archive/2007/12/17/168231.html</guid><wfw:comment>http://www.blogjava.net/clraychen/comments/168231.html</wfw:comment><comments>http://www.blogjava.net/clraychen/archive/2007/12/17/168231.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clraychen/comments/commentRss/168231.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clraychen/services/trackbacks/168231.html</trackback:ping><description><![CDATA[<p>设计模式看懂了，好像是没什么用的。只有在你的开发中运用起来才有它的意义。</p>
<p>虽然还是小菜鸟，但既然看过了设计模式，还是希望能用起来的。</p>
<p>想做个自娱自乐的j2ee的东西。</p>
<p>关于得到数据库连接部分，一开始觉得是用工厂模式，用工厂模式得到Connection对象，试了几次好像不行。</p>
<p>然后尝试单态模式，创造了一个DatabaseGeneralServices类，来提供数据库连接和关闭数据库等一些通用的服务。<br />
一切正常。有点小感悟，代码如下，希望高手指点。</p>
<p>package com.ClockWise.ray.persistence;</p>
<p>import java.sql.Connection;<br />
import java.sql.PreparedStatement;<br />
import java.sql.ResultSet;<br />
import java.sql.SQLException;</p>
<p>import javax.naming.InitialContext;<br />
import javax.naming.NamingException;<br />
import javax.sql.DataSource;</p>
<p>public class&nbsp; DatabaseGeneralServices {<br />
&nbsp;private DataSource ds;<br />
&nbsp;private InitialContext ic;<br />
&nbsp;<br />
&nbsp;private static DatabaseGeneralServices dgs = new DatabaseGeneralServices();<br />
&nbsp;<br />
&nbsp;<br />
&nbsp;private DatabaseGeneralServices()<span style="color: #0000ff"><strong>//use singleton pattern, so the constructor is private<br />
</strong></span>&nbsp; {&nbsp;<br />
&nbsp; &nbsp;try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ic = new InitialContext ();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ds = (DataSource)ic.lookup("java:jdbc/readshare<span style="color: #0000ff"><strong>");//get database connection</strong></span><br />
&nbsp;&nbsp;}catch(NamingException e){<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public&nbsp; Connection getConnection(){<br />
&nbsp;&nbsp;try{<br />
&nbsp;&nbsp;&nbsp;return ds.getConnection();<br />
&nbsp;&nbsp;}catch(SQLException e){<br />
&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;&nbsp;return null;<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public&nbsp; void closeConnection(ResultSet rs,PreparedStatement ps,Connection conn){<br />
&nbsp;&nbsp;&nbsp;&nbsp; try{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(rs!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(ps!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ps.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(conn!=null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; }catch(SQLException e ){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
&nbsp;<br />
&nbsp;public static DatabaseGeneralServices getInstance()<span style="color: #339966"><span style="color: #0000ff"><strong>//get the sigleton instance</strong></span><br />
</span>&nbsp;{<br />
&nbsp;&nbsp;if(null==dgs){dgs= new DatabaseGeneralServices();}&nbsp; <br />
&nbsp;&nbsp;return dgs;<br />
&nbsp;}</p>
<p>}</p>
<img src ="http://www.blogjava.net/clraychen/aggbug/168231.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clraychen/" target="_blank">离弦之ray的技术天空</a> 2007-12-17 14:55 <a href="http://www.blogjava.net/clraychen/archive/2007/12/17/168231.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>再度遭遇JNDI</title><link>http://www.blogjava.net/clraychen/archive/2007/10/15/153108.html</link><dc:creator>离弦之ray的技术天空</dc:creator><author>离弦之ray的技术天空</author><pubDate>Mon, 15 Oct 2007 13:54:00 GMT</pubDate><guid>http://www.blogjava.net/clraychen/archive/2007/10/15/153108.html</guid><wfw:comment>http://www.blogjava.net/clraychen/comments/153108.html</wfw:comment><comments>http://www.blogjava.net/clraychen/archive/2007/10/15/153108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clraychen/comments/commentRss/153108.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clraychen/services/trackbacks/153108.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作为<font face="Times New Roman, serif">j2ee</font>小菜鸟，初次遭遇<font face="Times New Roman, serif">JNDI</font>还是在大三的时候，当时学院搞<font face="Times New Roman, serif">j2ee</font>实训，我们还没搞清楚<font face="Times New Roman, serif">servlet</font>和<font face="Times New Roman, serif">JSP</font>就依葫芦画瓢的搞<font face="Times New Roman, serif">Struts</font>了。所以在配置<font face="Times New Roman, serif">mysql</font>－<font face="Times New Roman, serif">ds.xml</font>的时候完全不知道在配置<font face="Times New Roman, serif">DataSource</font>，现在知道这就是在使用JNDI。网上查了几个网页，拼拼凑凑，模模糊糊地理解了：
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNDI——Java Naming and Directory Interface<sup><font size="1">TM</font></sup> </font></p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 直接翻译就是<font face="Times New Roman, serif">Java</font>命名和目录接口，实现这个接口，提供的是一个服务，这是个什么样的服务呢？</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 首先在连接数据库的时候（我使用的是<font face="Times New Roman, serif">mysql</font>和<font face="Times New Roman, serif">jboss4.0</font>），我们会用到<font face="Times New Roman, serif">Context</font>这个类，<font face="Times New Roman, serif">context</font>是一套<font face="Times New Roman, serif">name-to-object</font>的绑定，可以理解为层次或目录，他可以包括下一层<font face="Times New Roman, serif">subContext</font>。在使用命名和目录服务时获得<font face="Times New Roman, serif">initial context </font>是对整个名字空间操作的入口。</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 针对<font face="Times New Roman, serif">Datasource</font>而言，说白了，就是给你的数据库连接（注意，是数据库连接<font face="Times New Roman, serif">Connection</font>这个对象，不是数据库）起个简单易懂的名字，你在程序中直接调用这个名字，就得到这个连接的对象，而具体的生成和管理就靠服务器了。</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通常会形成一个<font face="Times New Roman, serif">connection pool</font>，动态的来管理这些对象以节省资源。</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这样，如果项目移植到其它数据库或者服务器什么的，只要配置服务器就行了。配置比如这个连接用什么JDBC驱动啊，用户名和密码啊等等。程序代码可以不作改动。这里的<font face="Times New Roman, serif">DataSource</font>不一定就是数据库连接，还可以是其它比如文件连接等等。</p>
<p style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;&nbsp; 其实<font face="Times New Roman, serif">EJB</font>都是靠<font face="Times New Roman, serif">JNDI</font>得到<font face="Times New Roman, serif">EJB object</font>的<font face="Times New Roman, serif">reference</font>的，具体的机理是不太了解，不过就是那个意思，初学者这样理解应该就够了。</p>
<p style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp; 今天郁闷了半天，在<font face="Times New Roman, serif">jboss</font>里面配置<font face="Times New Roman, serif">JNDI DataSource</font>，想看看如果外面直接用普通的<font face="Times New Roman, serif">Java</font>工程能不能连接数据库，答案是否。后来想通了。服务器提供<font face="Times New Roman, serif">JNDI</font>服务所使用的类，这个普通的工程又不知道在哪，当然搞不起来。而<font face="Times New Roman, serif">Web</font>工程和<font face="Times New Roman, serif">EJB</font>工程因为发布到服务器下面的目录的，所以能使用<font face="Times New Roman, serif">JNDI</font>服务。</p>
<p style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp; 这是我的理解，请各位高手指点。</p>
<p style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm">&nbsp;&nbsp;&nbsp;至于<font face="Times New Roman, serif">JBoss</font>等等服务器怎么配置，网上搜一下，有很多牛人总结的，这里就不重复了。</p>
<p style="margin-bottom: 0cm"><br />
</p>
<img src ="http://www.blogjava.net/clraychen/aggbug/153108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clraychen/" target="_blank">离弦之ray的技术天空</a> 2007-10-15 21:54 <a href="http://www.blogjava.net/clraychen/archive/2007/10/15/153108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《Servlet 与JSP核心编程》读书笔记</title><link>http://www.blogjava.net/clraychen/archive/2007/10/14/152811.html</link><dc:creator>离弦之ray的技术天空</dc:creator><author>离弦之ray的技术天空</author><pubDate>Sun, 14 Oct 2007 14:57:00 GMT</pubDate><guid>http://www.blogjava.net/clraychen/archive/2007/10/14/152811.html</guid><wfw:comment>http://www.blogjava.net/clraychen/comments/152811.html</wfw:comment><comments>http://www.blogjava.net/clraychen/archive/2007/10/14/152811.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/clraychen/comments/commentRss/152811.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/clraychen/services/trackbacks/152811.html</trackback:ping><description><![CDATA[&nbsp;
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font color="#000000"><font size="4"><span lang="en-US"><strong>servlet </strong></span></font></font></font><font color="#000000"><font size="4"><span lang="zh-CN"><strong>基本结构</strong></span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">public class ServletClass extends HttpServlet {</span></font></font></font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif">public void doGet(<font color="#0000ff"><font style="font-size: 10pt" size="2"><strong>HttpServletRequest</strong></font></font> request, <font color="#0000ff"><strong>HttpSevletResponse</strong></font> response) </font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">throws ServletException,IOException{</font></font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">//Use &#8220;request&#8221; to read incoming HTTP headers</font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">//Use &#8220;response&#8221; to specify the HTTP response status</font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">//use &#8220;out&#8221; to send content to browser </font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">PrintWriter out = response.getWriter();</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">}</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">}</span></font></font></font></p>
<p style="margin-bottom: 0cm"><font style="font-size: 10pt" size="2">如果希望</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">servlet</font></font><font style="font-size: 10pt" size="2">对</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">GET</font></font><font style="font-size: 10pt" size="2">和</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">POST</font></font><font style="font-size: 10pt" size="2">请求采用同样的行动，只需要让</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">doGet</font></font><font style="font-size: 10pt" size="2">调用</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">doPost</font></font><font style="font-size: 10pt" size="2">，反之亦然。</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><br />
</font></font><font style="font-size: 10pt" size="2">值得注意的是</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">doGet</font></font><font style="font-size: 10pt" size="2">和</font><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2">doPost</font></font><font style="font-size: 10pt" size="2">都要接收以上两种类型的参数。</font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font size="4"><strong>servlet </strong></font></font><font size="4"><strong>处理表单数据</strong></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font style="font-size: 10pt" size="2"><strong>表单数据</strong></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">（</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">1</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">）使用</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">FORM</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">来创建</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">HTML</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">表单</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;FORM ACTION="..."&gt; </span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">其中 </span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">"..."</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">指的就是处理表单的</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">servlet </span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">或者</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JSP</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">（</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">2</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">）使用输入元素收集用户数据</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;INPUT TYPE="TEXT" NAME="..."&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">（</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">3</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">）在接近表单的尾部放置提交按钮</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;INPUT TYPE="SUBMIT"&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font style="font-size: 10pt" size="2"><strong>读取表单数据</strong></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font color="#000000"></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">有三种情况：①</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">request.getParameter②request.getParameterValues</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000">③</font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">request.getParameterNames</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">getParameter</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">对应于单个值的读取，如果有这个参数但没值，那就返回空的</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">String</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">；如果没有这个参数，则返回</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">null</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">getParameterValues</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">对应于同一个参数的多个值，返回的是一个数组，是这个参数值的集合。如果不存在这个参数名，那就返回一个</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">null</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">；如果这个参数只有一个值，那就返回一个只有一个元素的数组。</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">getParameterValues</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">返回的是所有参数的一个</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">Enumeration</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">，如果没有参数，那返回的就是一个空的</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">Enumeration</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">而不是</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">null</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">。同时这个</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">Enumeration</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">中的次序是乱序的。</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">要对参数为</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">null</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">或者为空</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">String</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">的情况作出相应的处理</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">if((param==null)||(param.trim().equals(""))){...}</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US"><strong>RequestDispatcher</strong></span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2">下面的代码：</font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">RequestDispatcher dispatcher = request.getRequestDispathcer s(address);</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">dispatcher.forward (request,response);</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font face="宋体"><font size="4"><span lang="en-US"><strong>JSP</strong></span></font></font></font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font face="宋体"><font style="font-size: 10pt" size="2"><strong>JSP</strong></font></font></font><font face="宋体"><font style="font-size: 10pt" size="2"><strong>直接插入表达式</strong></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%= Java Expression%&gt; </span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">比如：</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%= new java.util.Date() %&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">其实，</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JSP</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">在后台都被转化成</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">servlet</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">，所以</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">servlet </span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">和 </span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JSP</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">没有本质的区别。</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"><font face="宋体"><font style="font-size: 10pt" size="2"><span lang="en-US"><strong>scriptlet</strong></span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">说白了，就是直接在</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JSP</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">页面中插入</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">java</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">代码，我不是很喜欢，太乱了。举个例子：</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;% if(Math.random()&lt;0.5) {%&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;H1&gt;Have a &lt;I&gt;nice&lt;/I&gt; day!&lt;/H1&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;% } else {%&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;H1&gt;Have a &lt;I&gt;lousy&lt;/I&gt;day!&lt;/H1&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;% } %&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"></font></p>
<p style="margin-bottom: 0cm"><font face="Times New Roman, serif"><font color="#000000"><font face="宋体"><font style="font-size: 10pt" size="2"><span lang="en-US"><strong>JSP page</strong></span></font></font></font></font><font color="#000000"><font face="宋体"><font style="font-size: 10pt" size="2"><span lang="zh-CN"><strong>指令</strong></span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">import </span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">属性</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ import = "package.class"%&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ import = "package.class1,package.class2...package.classN"%&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">contentType</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">和</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">pageEncoding</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">属性</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ page contentType = "someMimeType; charset = someCharacterSet"%&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">比如</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ page contentType = "application/vnd.ms-excel"%&gt;</span></font></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">pageEncoding</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">指的是字符集</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">比如设置成日语：</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ page pageEncoding="Shift_JIS"%&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">session</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">属性</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">控制页面是否参加</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">HTTP</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">会话</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ page session = "true"%&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">isELIgnored</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">属性</span></font></font></p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">是否忽略</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JSP2.0</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">表达式语言</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;%@ page isELIgnored = "ture"%&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">此外还有</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">buffer</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">、</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">autoFlush</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">、</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">errorPage</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">、</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">isErrorPage</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">、</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">isThreadSafe</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">、</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">extends</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">、</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">language</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">属性</span></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">在</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JSP</span></font></font></font><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="zh-CN">中使用</span></font></font><font face="Times New Roman, serif"><font color="#000000"><font style="font-size: 10pt" size="2"><span lang="en-US">JavaBean</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font style="font-size: 10pt" size="2">基本要掌握三个语句</font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;jsp: useBean id="beanName" class="package.class"/&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;jsp:getProperty name = "beanName" property="propertyName"/&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><font color="#000000"><font face="Times New Roman, serif"><font style="font-size: 10pt" size="2"><span lang="en-US">&lt;jsp:setProperty name ="beanName" property="propertyName" value="propertyValue"/&gt;</span></font></font></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm; widows: 0; orphans: 0" align="left"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm"><font color="#000000"></font></p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
<p lang="zh-CN" style="margin-bottom: 0cm"><br />
</p>
 <img src ="http://www.blogjava.net/clraychen/aggbug/152811.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/clraychen/" target="_blank">离弦之ray的技术天空</a> 2007-10-14 22:57 <a href="http://www.blogjava.net/clraychen/archive/2007/10/14/152811.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>