﻿<?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-我的漫漫程序之旅-文章分类-JavaWeb</title><link>http://www.blogjava.net/supercrsky/category/27533.html</link><description>专注于JavaWeb开发</description><language>zh-cn</language><lastBuildDate>Tue, 11 Dec 2012 19:38:40 GMT</lastBuildDate><pubDate>Tue, 11 Dec 2012 19:38:40 GMT</pubDate><ttl>60</ttl><item><title>Linux上安装JDK1.7与Tomcat7.0</title><link>http://www.blogjava.net/supercrsky/articles/392821.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Tue, 11 Dec 2012 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/392821.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/392821.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/392821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/392821.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/392821.html</trackback:ping><description><![CDATA[<p>Ubuntu<span style="font-family:宋体;">上安装</span>JDK1.7<span style="font-family:宋体;">请用</span>tar.gz<span style="font-family:宋体;">包，</span>Fedora<span style="font-family:宋体;">可选用</span>rpm<span style="font-family:宋体;">包。</span></p>  <p><span style="font-family:宋体;">如果在</span>Ubuntu<span style="font-family:宋体;">用</span>rpm<span style="font-family:宋体;">包安装，需要先转换为</span>deb<span style="font-family:宋体;">格式。</span></p>  <p><span style="font-family:宋体;">安装包的下载</span></p>  <p>jdk7</p>  <p>http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html</p>  <p>tomcat7</p>  <p><a href="http://tomcat.apache.org/download-70.cgi">http://tomcat.apache.org/download-70.cgi</a></p>  <p>&nbsp;</p>  <p><strong><span style="font-size:11.0pt">Jdk</span></strong><strong><span style="font-size:11.0pt;font-family:宋体;">的安装</span></strong><strong></strong></p>  <p><strong>1.</strong><strong><span style="font-family:宋体;">解压或安装</span></strong></p>  <p>.gz<span style="font-family:宋体;">包</span></p>  <p><strong><span style="color:#00B0F0">#tar -zxvf jdk-7u9-linux-i586.tar.gz</span></strong></p>  <p><span style="font-family:宋体;">解压后的目录如：</span>jdk1.7.0_09</p>  <p><span style="font-family:宋体;">将其复制或移动到</span>/usr<span style="font-family:宋体;">目录下</span></p>  <p><strong><span style="color:#00B0F0">#mv jdk1.7.0_09 /usr</span></strong></p>  <p>&nbsp;</p>  <p>.rpm<span style="font-family:宋体;">包</span></p>  <p><strong><span style="color:#00B0F0">#rpm -ivh jdk-7u9-linux-i586.rpm</span></strong></p>  <p><strong>&nbsp;</strong></p>  <p><strong>2.</strong><strong><span style="font-family:宋体;">配置环境变量</span></strong></p>  <p><strong><span style="color:#00B0F0">#vi /etc/profile</span></strong></p>  <p><span style="font-family:宋体;">在</span>profile<span style="font-family:宋体;">文件中</span> umask 022 <span style="font-family:宋体;">结束字符前加入</span></p>  <p><span style="color:#00B0F0">export JAVA_HOME=/usr/jdk1.7.0_09</span></p>  <p><span style="color:#00B0F0">export JAVA_BIN=/usr/jdk1.7.0_09/bin</span></p>  <p><span style="color:#00B0F0">export PATH=$PATH:$JAVA_HOME/bin</span></p>  <p><span style="color:#00B0F0">export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar</span></p>  <p><span style="color:#00B0F0">export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH</span></p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">如果</span>Ubuntu<span style="font-family:宋体;">系统还要修改默认</span>jdk</p>  <p><strong><span style="color:#00B0F0">update-alternatives --install /usr/bin/java java /usr/jdk1.7.0_09/bin/java 300</span></strong></p>  <p><strong><span style="color:#00B0F0">update-alternatives --install /usr/bin/javac javac /usr/jdk1.7.0_09/bin/javac 300</span></strong></p>  <p><span style="font-family:宋体;">通过这一步将我们安装的</span>jdk<span style="font-family:宋体;">加入</span>java<span style="font-family:宋体;">选单。</span></p>  <p><strong><span style="color:#00B0F0">update-alternatives --config java</span></strong></p>  <p>&nbsp;</p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">重启</span>Terminal<span style="font-family:宋体;">测试</span></p>  <p><strong><span style="color:#00B0F0">#java -version</span></strong></p>  <p><strong>&nbsp;</strong></p>  <p><strong><span style="font-size:11.0pt">Tomcat</span></strong><strong><span style="font-size:11.0pt;font-family:宋体;">的安装</span></strong><strong></strong></p>  <p>&nbsp;</p>  <p><strong>1.</strong><strong><span style="font-family:宋体;">首先解压缩</span>&nbsp;&nbsp;&nbsp;&nbsp; </strong></p>  <p><strong><span style="color:#00B0F0">#tar -zxvf apache-tomcat-7.0.32.tar.gz</span></strong></p>  <p><span style="font-family:宋体;">得到</span>Tomcat<span style="font-family:宋体;">的所有文件</span>.<span style="font-family:宋体;">然后把它拷贝到你要安装的位置，如</span>/opt/tomcat</p>  <p><strong><span style="color:#00B0F0">#cp -r /home/zdw/software/apache-tomcat-7.0.32 /opt/tomcat</span></strong></p>  <p><span style="font-family:宋体;">切换到</span>/opt/tomcat/bin</p>  <p><strong><span style="color:#00B0F0">#cd /opt/tomcat/bin</span></strong></p>  <p><span style="font-family:宋体;">运行命令</span></p>  <p><strong><span style="color:#00B0F0">#./startup.sh</span></strong></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">正常情况下可以见到如下的信息：</span>&nbsp;&nbsp;&nbsp;&nbsp; </p>  <p>&nbsp;</p>  <p>Using CATALINA_BASE:&nbsp;&nbsp; /opt/tomcat</p>  <p>Using CATALINA_HOME:&nbsp;&nbsp; /opt/tomcat</p>  <p>Using CATALINA_TMPDIR: /opt/tomcat/temp</p>  <p>Using JRE_HOME:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/java/jdk1.7.0_09</p>  <p>Using CLASSPATH:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar</p>  <p>&nbsp;</p>  <p><strong>2.</strong><strong><span style="font-family:宋体;">然后用浏览器打开如下的网页</span>&nbsp;&nbsp;&nbsp; </strong></p>  <p>http://localhost:8080/&nbsp;&nbsp;&nbsp; <span style="font-family:宋体;">（如果没有把</span>Port number<span style="font-family:宋体;">改为</span>80<span style="font-family:宋体;">）</span> </p>  <p><span style="font-family:宋体;">如果你见到</span>Tomcat<span style="font-family:宋体;">的网页（</span>index.jsp<span style="font-family:宋体;">），证明</span>Tomcat<span style="font-family:宋体;">安装成功，并已经启动．</span></p>  <p>&nbsp;<span style="font-family:宋体;">如要关闭</span>Tomcat<span style="font-family:宋体;">，在</span>/opt/tomcat/bin<span style="font-family:宋体;">下运行下面的命令即可</span>&nbsp;&nbsp;&nbsp;&nbsp; </p>  <p><strong><span style="color:#00B0F0">#./shutdown.sh</span></strong></p><img src ="http://www.blogjava.net/supercrsky/aggbug/392821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2012-12-11 16:54 <a href="http://www.blogjava.net/supercrsky/articles/392821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>navicat_for_mysql_10.0.11在linux下的安装</title><link>http://www.blogjava.net/supercrsky/articles/392820.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Tue, 11 Dec 2012 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/392820.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/392820.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/392820.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/392820.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/392820.html</trackback:ping><description><![CDATA[<p><span style="font-family:宋体;">官方下载地址：</span>http://www.navicat.com/cn/download/download.html</p>  <p>navicat_for_mysql_10.0.11_cn_linux.tar.gz</p>  <p><span style="font-family:宋体;">使用方法：</span></p>  <p><strong>1.</strong><strong><span style="font-family:宋体;">打开终端：应用程序</span>-&gt;</strong><strong><span style="font-family:宋体;">系统工具（或附件）</span>-&gt;</strong><strong><span style="font-family:宋体;">终端，切换到</span>root</strong><strong><span style="font-family:宋体;">账户：</span></strong></p>  <p><strong><span style="color:#00B0F0">#su -</span></strong></p>  <p><span style="font-family:宋体;">密码：</span></p>  <p><span style="font-family:宋体;">（注意：输入</span>root<span style="font-family:宋体;">账户密码时，密码不会显示出来，也没有提示的特殊字符，直接输完密码按</span>Enter<span style="font-family:宋体;">键就行了）</span></p>  <p>&nbsp;</p>  <p><strong>2.</strong><strong><span style="font-family:宋体;">切换到放置下载得到的</span> navicat_for_mysql_10.0.11_cn_linux.tar.gz </strong><strong><span style="font-family:宋体;">软件包的目录，</span></strong></p>  <p><span style="font-family:宋体;">例如我把软件包放置到了</span> /home/zdw/software <span style="font-family:宋体;">目录下</span></p>  <p><strong># cd /home/zdw/software</strong></p>  <p><strong>3.</strong><strong><span style="font-family:宋体;">解压</span> navicat_for_mysql_10.0.11_cn_linux.tar.gz</strong></p>  <p><strong><span style="color:#00B0F0"># tar -zxvf navicat_for_mysql_10.0.11_cn_linux.tar.gz</span></strong></p>  <p><span style="font-family:宋体;">解压后会得到名为</span> navicat_for_mysql <span style="font-family:宋体;">的文件夹</span></p>  <p><strong>4.</strong><strong><span style="font-family:宋体;">将解压生成文件夹移动到</span>/opt</strong><strong><span style="font-family:宋体;">目录下：</span></strong></p>  <p><strong><span style="color:#00B0F0"># mv /home/zdw/software/navicat_for_mysql /opt</span></strong></p>  <p>&nbsp;</p>  <p><strong>5.</strong><strong><span style="font-family:宋体;">运行</span> Navicat </strong><strong><span style="font-family:宋体;">方法：</span></strong></p>  <p><span style="font-family:宋体;">进入安装目录：</span></p>  <p><strong><span style="color:#00B0F0"># cd /opt/navicat_for_mysql</span></strong></p>  <p><span style="font-family:宋体;">执行命令：</span></p>  <p>&nbsp;</p>  <p><strong><span style="color:#00B0F0"># ./start_navicat</span></strong></p>  <p><span style="font-family:宋体;">这样即可启动</span>Navicat</p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">为了方便，也可以创建</span>Navicat<span style="font-family:宋体;">的桌面启动器，方法如下：</span></p>  <p><span style="font-family:宋体;">在桌面点击右键</span>-&gt;<span style="font-family:宋体;">点击</span>[<span style="font-family:宋体;">创建启动器</span>]<span style="font-family:宋体;">项</span>-&gt;</p>  <p><span style="font-family:宋体;">【类型】栏选择</span>[<span style="font-family:宋体;">应用程序</span>]</p>  <p><span style="font-family:宋体;">【名称】栏填入：</span>Navicat </p>  <p><span style="font-family:宋体;">【命令】栏点击右边的【浏览】选择到</span>-&gt;[<span style="font-family:宋体;">文件系统</span>]-&gt;[opt]-&gt;[navicat_for_mysql]-&gt;[start_navicat]</p>  <p><span style="font-family:宋体;">最后点击【确定】，就在桌面创建好</span>Navicat<span style="font-family:宋体;">的启动器</span></p>  <p>&nbsp;</p>  <p><strong>6.</strong><strong><span style="font-family:宋体;">破解：</span></strong></p>  <p><span style="font-family:宋体;">注册码</span> NAVN-LNXG-XHHX-5NOO</p>  <p><span style="font-family:宋体;">用户和组织随便填</span></p>  <p>&nbsp;</p>  <p><strong>7.</strong><strong><span style="font-family:宋体;">连接上数据库后里面的中文数据若是乱码</span>,</strong><strong><span style="font-family:宋体;">把字符集修改为</span>zh_CN.utf8</strong><strong><span style="font-family:宋体;">就行了</span>,</strong><strong><span style="font-family:宋体;">修改方法</span>:</strong></p>  <p><span style="font-family:宋体;">查看系统支持的字符集</span></p>  <p># locale -a</p>  <p><span style="font-family:宋体;">修改字符集</span></p>  <p># export LANG=zh_CN.utf8</p><img src ="http://www.blogjava.net/supercrsky/aggbug/392820.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2012-12-11 16:39 <a href="http://www.blogjava.net/supercrsky/articles/392820.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql5.5.28在Linux下的安装</title><link>http://www.blogjava.net/supercrsky/articles/392801.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Tue, 11 Dec 2012 06:39:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/392801.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/392801.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/392801.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/392801.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/392801.html</trackback:ping><description><![CDATA[<p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>1.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">下载</span>mysql</strong></p>  <p style="margin-left:18.0pt;text-indent:0cm;"><span style="font-family:宋体;">在</span><a href="http://dev.mysql.com/downloads/mysql/%20%E5%AE%98%E7%BD%91%E4%B8%8A%E4%B8%8B%E8%BD%BDmysql-5.5.28-linux2.6-i686.tar.gz">http://dev.mysql.com/downloads/mysql/ <span style="font-family:宋体;">官网上下载</span>mysql-5.5.28-linux2.6-i686.tar.gz</a>.</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>2.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">解压</span></strong></p>  <p style="margin-left:18.0pt;text-indent:0cm;"><strong> &nbsp;&nbsp; </strong><strong><span style="font-family:宋体;">假如</span>tar</strong><strong><span style="font-family:宋体;">包在</span>/home/zdw/software</strong><strong><span style="font-family:宋体;">目录下</span></strong></p>  <p style="margin-left:18.0pt;text-indent:21.1pt"><strong><span style="color:#0070C0;">#tar -xvf mysql-5.5.28-linux2.6-i686.tar.gz</span></strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>3.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">移动到</span>/usr/local/mysql</strong></p>  <p style="margin-left:18.0pt;text-indent:21.1pt"><strong><span style="color:#0070C0;">#mv mysql-5.5.28-linux2.6-i686 /usr/local/</span></strong></p>  <p style="margin-left:18.0pt"><span style="font-family: 宋体;">添加快捷方式</span>mysql<span style="font-family:宋体;">指向</span>mysql-5.5.28-linux2.6-i686</p>  <p style="margin-left:18.0pt;text-indent:21.1pt"><strong><span style="color:#0070C0;">#ln -s mysql-5.5.28-linux2.6-i686/ mysql</span></strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>4.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">安装依赖的</span>lib</strong><strong><span style="font-family:宋体;">包</span>:</strong><strong><span style="font-family:宋体;">执行</span>/usr/local/mysql/bin/mysqld,</strong><strong><span style="font-family:宋体;">报错</span></strong></p>  <p style="margin-left:18.0pt">/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; open shared object file: No such file or directory</p>  <p style="margin-left:18.0pt"><span style="font-family: 宋体;">使用</span>apt-cache search libaio,<span style="font-family: 宋体;">找到如下软件源</span></p>  <p style="margin-left:18.0pt">libaio-dev - Linux kernel AIO access library - development files</p>  <p style="margin-left:18.0pt">libaio1 - Linux kernel AIO access library - shared library</p>  <p style="margin-left:18.0pt">libaio1-dbg - Linux kernel AIO access library - debugging symbols</p>  <p style="margin-left:18.0pt;text-indent:0cm;"><span style="font-family:宋体;">使用</span><strong><span style="color:#0070C0;">#apt-get install libaio1 </span></strong><span style="font-family:宋体;">安装</span></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>5.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">配置用户，目录</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#groupadd mysql</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#useradd -r -g mysql mysql</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#cd /usr/local/mysql</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#chown -R mysql .</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#chgrp -R mysql .</span></strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>6.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">初始化</span>mysql</strong></p>  <p>&nbsp;&nbsp;&nbsp; <span style="font-family:宋体;">假如当前目录为</span>/usr/local/mysql</p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#scripts/mysql_install_db --user=mysql</span></strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>7.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">启动</span>mysql</strong></p>  <p style="margin-left:21.2pt;"><span style="font-family:宋体;">最简单的启动方式</span>:</p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#/usr/local/mysql/bin/mysqld --user=mysql</span></strong></p>  <p style="margin-left:21.2pt;"><span style="font-family:宋体;">默认情况下使用</span>/usr/local/mysql/data<span style="font-family:宋体;">作为</span>mysql<span style="font-family:宋体;">的数据目录，包括数据库文件，</span>log<span style="font-family:宋体;">日志。</span></p>  <p style="margin-left:21.2pt;"><span style="font-family:宋体;">常用的</span>mysql<span style="font-family:宋体;">启动参数</span>:</p>  <p style="margin-left:21.2pt;">/usr/local/mysql/bin/mysqld&nbsp; --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data&nbsp; --port=3306 --socket=/tmp/mysql.socks</p>  <p style="margin-left:21.2pt;"><span style="font-family:宋体;">推荐的启动</span>mysql</p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#/usr/local/mysql/support-files/mysql.server start</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="font-family: 宋体; ">启动完成之后用</span>ps -ef |grep mysql </strong><strong><span style="font-family: 宋体; ">命令查看是否启动</span></strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>8.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">登录</span>mysql</strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#/usr/local/mysql/bin/mysql -u root -p</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="font-family: 宋体; ">默认密码为空</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left">                                                  <strong></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="font-family: 宋体; ">修改</span>root</strong><strong><span style="font-family: 宋体; ">密码</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">mysql&gt;use mysql ;<br /> mysql&gt;update user set password=PASSWORD("123456") where user='root';<br /> mysql&gt;FLUSH PRIVILEGES;</span></strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>9.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">关闭</span>mysql</strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">最简单的方式</span></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#killall mysqld</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">推荐的方式</span></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">#/usr/local/mysql/support-files/mysql.server stop</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">使用</span>mysql.server stop<span style="font-family:宋体;">关闭</span>mysqld<span style="font-family:宋体;">会销毁</span>pid<span style="font-family:宋体;">文件，并做容错操作，但是最后也是调用</span>kill<span style="font-family:宋体;">命令</span>kill mysql<span style="font-family:宋体;">。</span></p>  <p align="left" style="margin-left:21.2pt;text-align:left">&nbsp;</p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="font-family:宋体;color:red">关闭</span><span style="color:red">mysql</span></strong><strong><span style="font-family:宋体;color:red">，尽量不要用</span><span style="color:red">kill -9 mysql_pid</span></strong><strong><span style="font-family:宋体;color:red">或者是</span><span style="color:red">killall -9 mysql,</span></strong><strong><span style="font-family:宋体;color:red">否则</span><span style="color:red">mysql</span></strong><strong><span style="font-family:宋体;color:red">进程无法做退出处理，就可能会丢失数据，甚至导致表损坏。</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong>&nbsp;</strong></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong>10.<span style="font-family: 'Times New Roman'; font-size: 7pt; font-weight: normal; line-height: normal; ">&nbsp;&nbsp; </span></strong><strong><span style="font-family:宋体;">浅析</span>mysql.server</strong><strong><span style="font-family:宋体;">脚本的启动流程</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left">mysql.server<span style="font-family:宋体;">脚本可以看到在以下脚本调用</span>mysqld_safe<span style="font-family:宋体;">这个</span>bash</p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args &gt;/dev/null 2&gt;&amp;1 &amp;</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">默认情况下</span>,$bindir/mysqld_safe<span style="font-family:宋体;">就是</span>/usr/local/mysql/bin/mysqld_safe<span style="font-family: 宋体;">这个</span>shell<span style="font-family:宋体;">，我的本机的调用参数如下</span>:</p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">/bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/blue-pc.pid</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">而</span>mysqld_safe<span style="font-family:宋体;">也是一个</span>shell,<span style="font-family:宋体;">可以看到在这个脚本在初始化</span>N<span style="font-family:宋体;">多变量后，调用</span></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">eval_log_error "$cmd"</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">这个</span>shell function<span style="font-family:宋体;">最后就是调用</span></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><strong><span style="color:#0070C0;">&nbsp;#echo "Running mysqld: [$cmd]" eval "$cmd"</span></strong></p>  <p align="left" style="margin-left:21.2pt;text-align:left"><span style="font-family:宋体;">在我本机，这个</span>$cmd<span style="font-family:宋体;">就是</span></p>  <p align="left" style="margin-left: 21.2pt; text-align: left; "><strong><span style="color:#0070C0;">/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/blue-pc.err --pid-file=/usr/local/mysql/data/blue-pc.pid<br /><br />参考文章：</span></strong>http://dev.mysql.com/doc/refman/5.5/en/binary-installation.html<strong><span style="color:#0070C0;"><br /></span></strong><strong><span style="color:#0070C0;">本文在Ubuntu11.04和Fedora14下测试成功。</span></strong></p><img src ="http://www.blogjava.net/supercrsky/aggbug/392801.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2012-12-11 14:39 <a href="http://www.blogjava.net/supercrsky/articles/392801.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp URL中文处理的几种方式</title><link>http://www.blogjava.net/supercrsky/articles/285926.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Wed, 08 Jul 2009 03:35:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/285926.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/285926.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/285926.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/285926.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/285926.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 id="Codehighlighter1_2_262_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_262_Open_Text.style.display='none'; Codehighlighter1_2_262_Closed_Image.style.display='inline'; Codehighlighter1_2_262_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2_262_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_262_Closed_Text.style.display='none'; Codehighlighter1_2_262_Open_Image.style.display='inline'; Codehighlighter1_2_262_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_262_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_2_262_Open_Text"><span style="color: #000000; background-color: #f5f5f5">!&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">public</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;GBToISO(</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;str)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />{try{</span><span style="color: #0000ff; background-color: #f5f5f5">byte</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;temp[]</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">str.getBytes(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">GB2312</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />str</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">String</span><span style="color: #000000; background-color: #f5f5f5">(temp,</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">ISO-8859-1</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />return&nbsp;str;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />}catch(Exception&nbsp;e){return&nbsp;str;}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />response.sendRedirect(GBToISO(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">errmsg.jsp?errmsg=添加客户信息成功</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">));</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
超连接中profession为中文 <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: #0000ff">&lt;</span><span style="color: #800000">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="cust_totallist.jsp?action=delete&amp;page=&lt;%=intCurrentPage%&gt;&amp;cust_id=&lt;%=rs.getInt("</span><span style="color: #ff0000">id")%</span><span style="color: #0000ff">&gt;</span><span style="color: #ff0000">&amp;profession</span><span style="color: #000000">=</span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">java.net.URLEncoder.encode(profession,</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">ISO-8859-1</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">)</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000">"&gt;删除</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />////////////cust_totallist.jsp中取profession值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />String&nbsp;profession=java.net.URLDecoder.decode(request.getParameter("profession").trim(),"ISO-8859-1");&nbsp;&nbsp;</span></div>
可见,URL中编码格式为ISO-8859-1,处理中文只需将编码格式转换ISO-8859-1 <br />
方法一： <br />
http://xxx.do?ptname='我是中国人' <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">String&nbsp;strPtname&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">ptname</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />strPtname&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(strPtname.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">ISO-8859-1</span><span style="color: #000000">"</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@&nbsp;page&nbsp;contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;charset=gb2312</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">a&nbsp;href</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">ds.jsp?url=&lt;%=java.net.URLEncoder.encode(</span><span style="color: #000000">"</span><span style="color: #000000">编码的是这里</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">GB2312</span><span style="color: #000000">"</span><span style="color: #000000">)%&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">点击这里</span><span style="color: #000000">&lt;/</span><span style="color: #000000">a</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">request.setCharacterEncoding("GBK");&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">(request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">url</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_232_393_Open_Image" onclick="this.style.display='none'; Codehighlighter1_232_393_Open_Text.style.display='none'; Codehighlighter1_232_393_Closed_Image.style.display='inline'; Codehighlighter1_232_393_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_232_393_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_232_393_Closed_Text.style.display='none'; Codehighlighter1_232_393_Open_Image.style.display='inline'; Codehighlighter1_232_393_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_232_393_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_232_393_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />str</span><span style="color: #000000">=</span><span style="color: #000000">request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">url</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />str</span><span style="color: #000000">=</span><span style="color: #000000">java.net.URLDecoder.decode(str,</span><span style="color: #000000">"</span><span style="color: #000000">GB2312</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />str</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(str.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">ISO-8859-1</span><span style="color: #000000">"</span><span style="color: #000000">));&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />out.print(str);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;chinatoString(String&nbsp;str)&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_44_219_Open_Image" onclick="this.style.display='none'; Codehighlighter1_44_219_Open_Text.style.display='none'; Codehighlighter1_44_219_Closed_Image.style.display='inline'; Codehighlighter1_44_219_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_44_219_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_44_219_Closed_Text.style.display='none'; Codehighlighter1_44_219_Open_Image.style.display='inline'; Codehighlighter1_44_219_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_44_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 src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_44_219_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />String&nbsp;s</span><span style="color: #000000">=</span><span style="color: #000000">str;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_76_164_Open_Image" onclick="this.style.display='none'; Codehighlighter1_76_164_Open_Text.style.display='none'; Codehighlighter1_76_164_Closed_Image.style.display='inline'; Codehighlighter1_76_164_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_76_164_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_76_164_Closed_Text.style.display='none'; Codehighlighter1_76_164_Open_Image.style.display='inline'; Codehighlighter1_76_164_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_76_164_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_76_164_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">byte</span><span style="color: #000000">&nbsp;tempB[]</span><span style="color: #000000">=</span><span style="color: #000000">s.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">ISO-8859-1</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />s</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(tempB);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception&nbsp;e)&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_193_213_Open_Image" onclick="this.style.display='none'; Codehighlighter1_193_213_Open_Text.style.display='none'; Codehighlighter1_193_213_Closed_Image.style.display='inline'; Codehighlighter1_193_213_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_193_213_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_193_213_Closed_Text.style.display='none'; Codehighlighter1_193_213_Open_Image.style.display='inline'; Codehighlighter1_193_213_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_193_213_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_193_213_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;s;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">function&nbsp;URLencode(sStr)&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_29_170_Open_Image" onclick="this.style.display='none'; Codehighlighter1_29_170_Open_Text.style.display='none'; Codehighlighter1_29_170_Closed_Image.style.display='inline'; Codehighlighter1_29_170_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_29_170_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_29_170_Closed_Text.style.display='none'; Codehighlighter1_29_170_Open_Image.style.display='inline'; Codehighlighter1_29_170_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_29_170_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_29_170_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;escape(sStr).&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />replace(</span><span style="color: #000000">/</span><span style="color: #000000">\</span><span style="color: #000000">+/</span><span style="color: #000000">g,&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">%2B</span><span style="color: #000000">'</span><span style="color: #000000">).&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />replace(</span><span style="color: #000000">/</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">/g,'%22').&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">replace(</span><span style="color: #000000">/</span><span style="color: #000000">\</span><span style="color: #000000">'</span><span style="color: #000000">/g,&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">%</span><span style="color: #000000">27</span><span style="color: #000000">'</span><span style="color: #000000">).&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">replace(</span><span style="color: #000000">/</span><span style="color: #000000">\</span><span style="color: #008000">//</span><span style="color: #008000">g,'%2F');&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
方法三： <br />
如果用jstl的话，可以自己写一个el的function，调用URLEncoder.encode来编码。 <br />
<br />
IE缺省对URL后面的参数是不编码发送的，但是tomat缺省是按ISO8859-1来进行URL解码，因此才会出现上述错误。好的做法是： <br />
1、在URL参数中确保用UTF-8编码之，方法可以用js函数encodeURI()，或调用自定义的el function； <br />
2、设置server.xml中的Connector熟悉URIEncoding="UTF-8"，确保解码格式与编码格式统一； <br />
方法四： <br />
在jsp的结尾加上:<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">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_53_121_Open_Image" onclick="this.style.display='none'; Codehighlighter1_53_121_Open_Text.style.display='none'; Codehighlighter1_53_121_Closed_Image.style.display='inline'; Codehighlighter1_53_121_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_53_121_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_53_121_Closed_Text.style.display='none'; Codehighlighter1_53_121_Open_Image.style.display='inline'; Codehighlighter1_53_121_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;i</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;i</span><span style="color: #000000">&lt;</span><span style="color: #000000">document.links.length;i</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_53_121_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_53_121_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />document.links[i].href</span><span style="color: #000000">=</span><span style="color: #000000">encodeURI(document.links[i].href);&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
在action中:<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">String&nbsp;s</span><span style="color: #000000">=</span><span style="color: #000000">request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">s</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />s</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String(s.getBytes(</span><span style="color: #000000">"</span><span style="color: #000000">iso-8859-1</span><span style="color: #000000">"</span><span style="color: #000000">),</span><span style="color: #000000">"</span><span style="color: #000000">gbk</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;</span></div>
<img src ="http://www.blogjava.net/supercrsky/aggbug/285926.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2009-07-08 11:35 <a href="http://www.blogjava.net/supercrsky/articles/285926.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBOSS5.0 Beta4  配置详解</title><link>http://www.blogjava.net/supercrsky/articles/226139.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Mon, 01 Sep 2008 09:36:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/226139.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/226139.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/226139.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/226139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/226139.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一． &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下载与安装JBoss 在本文中，我下载的JBoss版本为：JBOSS5.0 Beta4。下载地址： http://www.jboss.org/jbossas/downloads/在如上的下载页中下载JBOSS5.0 Beta4.zip文...&nbsp;&nbsp;<a href='http://www.blogjava.net/supercrsky/articles/226139.html'>阅读全文</a><img src ="http://www.blogjava.net/supercrsky/aggbug/226139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-09-01 17:36 <a href="http://www.blogjava.net/supercrsky/articles/226139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用secureX插件来生成证书</title><link>http://www.blogjava.net/supercrsky/articles/199192.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Thu, 08 May 2008 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/199192.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/199192.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/199192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/199192.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/199192.html</trackback:ping><description><![CDATA[<span style="font-family: Comic Sans MS">SecureX是生成证书的开源工具，下面将生成jks的简单使用方法说明一下。 <br style="font-family: " />
通过<a href="http://securex.sourceforge.net/updatesite">http://securex.sourceforge.net/updatesite</a>可以在线安装SecureX的Eclipse插件.<br style="font-family: " />
</span>你也可以到我的网盘去下载离线独立安装包．<br />
<a title="点此下载" href="http://cid-39cce615c2e5d86b.skydrive.live.com/browse.aspx/Public/eclipse_plugins">点此下载</a><br />
<span style="font-size: 14pt; font-family: Comic Sans MS">安装成功后，在new---other中会增加SecureX目录，选择New Java Keystore，然后出现窗口。点击Generate new KeyPair，按照相关操作可生成一盒jks。这样，私钥就产生完成了，接下来，点击其中的一个密钥对，然后按右键，出现菜单，点击导出，将生成一个证书。 <br />
<br />
然后再建立一个空jks，点击Import Trust Certificate，导入刚才的证书，这样，公钥就生成了。 </span>
<img src ="http://www.blogjava.net/supercrsky/aggbug/199192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-05-08 11:51 <a href="http://www.blogjava.net/supercrsky/articles/199192.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让下拉列表select可编辑的简便方法 </title><link>http://www.blogjava.net/supercrsky/articles/192851.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Mon, 14 Apr 2008 08:54:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/192851.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/192851.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/192851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/192851.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/192851.html</trackback:ping><description><![CDATA[<p>要让网页中的下拉列表支持可编辑，可不是件省心的事，上网搜索了下，也有一些解决方法，做起来总不够简便。我做了个简单的实现，主要是通过给select添加选项的方式，达到可以修改选项的目的。代码如下,演示 <a href="http://www.jackersoft.cn/webapp/test/selectedit.html" target="_blank">http://www.jackersoft.cn/webapp/test/selectedit.html</a>：<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"><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">select&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="markcode"</span><span style="color: #ff0000">&nbsp;onChange</span><span style="color: #0000ff">="editable(this);"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">option&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="value1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">选项一</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">option</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">option&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">=""</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">请输入</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">option</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">select</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">script&nbsp;</span><span style="color: #ff0000">language</span><span style="color: #0000ff">="javascript"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;editable(select1){<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(select1.value&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">==</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">""</span><span style="color: #000000; background-color: #f5f5f5">){<br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;newvalue&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prompt(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">请输入</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">,</span><span style="color: #000000; background-color: #f5f5f5">""</span><span style="color: #000000; background-color: #f5f5f5">);<br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(newvalue){<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;addSelected(select1,newvalue,newvalue);<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">}<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;addSelected(fld1,value1,text1){<br />
</span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(document.all)&nbsp;{<br />
</span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Opt&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;fld1.document.createElement(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">OPTION</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br />
</span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;Opt.text&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;text1;<br />
</span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;Opt.value&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;value1;<br />
</span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;fld1.options.add(Opt);<br />
</span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;Opt.selected&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">true</span><span style="color: #000000; background-color: #f5f5f5">;<br />
</span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;}</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5">{<br />
</span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Opt&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Option(text1,value1,</span><span style="color: #0000ff; background-color: #f5f5f5">false</span><span style="color: #000000; background-color: #f5f5f5">,</span><span style="color: #0000ff; background-color: #f5f5f5">false</span><span style="color: #000000; background-color: #f5f5f5">);<br />
</span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;Opt.selected&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">true</span><span style="color: #000000; background-color: #f5f5f5">;<br />
</span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;&nbsp;&nbsp;fld1.options[fld1.options.length]&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Opt;<br />
</span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&nbsp;}<br />
</span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">}<br />
</span><span style="color: #008080">32</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /><br />
</span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">35</span>&nbsp;</div>
<img src ="http://www.blogjava.net/supercrsky/aggbug/192851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-04-14 16:54 <a href="http://www.blogjava.net/supercrsky/articles/192851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Is Tomcat an application server?</title><link>http://www.blogjava.net/supercrsky/articles/191900.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Thu, 10 Apr 2008 08:23:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/191900.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/191900.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/191900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/191900.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/191900.html</trackback:ping><description><![CDATA[原文地址:http://www.javaworld.com/javaworld/jw-01-2008/jw-01-tomcat6.html<br />
<br />
Tomcat 是一个应用程序服务器吗?<br />
学习Tomcat是否适合在你的企业中<br />
<br />
当Java开发人员开始讨论应用程序服务器时,Tomcat经常与之混淆.<br />
毕竟,它是众多轻量经开发环境的流行选择之一,并且在许多案例中也能<br />
看到一个应用程序服务器的必要性,甚至它是一个技术的web服务器.<br />
在这篇文章里Jeff Hanson回答了Tomcat是一个应用程序服务器,首先解释了<br />
应用程序服务器,Web服务器和Java EE容器的不同之处,并且评价了Tomcat适合<br />
很多不同种类的普通的Java企业开发环境.<br />
<br />
在Java开发人员的激烈讨论中,Tomcat是否是应用程序服务器还是混乱的.一些人声称<br />
它绝对是并且还有一些人给予否定.事实上,Tomcat经常被作为一个应用程序服务器使用,<br />
并且在一此环境中它是非常适合此角色的.开发人员把Tomcat当成应用程序服务器来用,<br />
凭感觉这样来分类,不管正式的定义.<br />
<br />
在这篇文章中我处理这个问题,Tomcat是否是一个应用程序服务器.我开始解释app servers和<br />
Web Servers和Java EE containers的不同,并看看在一些环境下,像Tomcat这样的Web Server能作为<br />
一个Web server使用.我展示一个比例建筑,用Tomcat开始不同种类的轻量级实现,并且结束用一个复杂的<br />
SOA(service-oriented architecture),您会再成熟的运用Java EE应用服务器.<br />
<br />
Java EE 作为一个参考点<br />
<br />
Java企业平台版本,或者Java EE,是事实上的判定标准对开始"面向服务"Java 应用程序.像这样的它是基于<br />
其它的面向服务的Java技术,包括app servers必须休息.Java EE规范是必要的因素在评价Web servers和<br />
application servers.<br />
<br />
Java EE 继承自Java SE 支持Web Services,企业容器模型,APIs管理和通信协议为设计和实现SOA,分布的应用程序<br />
和Web应用程序.(注意Web应用程序公是Java EE 搜索支持的一部分.)
<img src ="http://www.blogjava.net/supercrsky/aggbug/191900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-04-10 16:23 <a href="http://www.blogjava.net/supercrsky/articles/191900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSLT日期格式标签，数字格式标签使用</title><link>http://www.blogjava.net/supercrsky/articles/184401.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Fri, 07 Mar 2008 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/184401.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/184401.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/184401.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/184401.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/184401.html</trackback:ping><description><![CDATA[<p><strong>日期格式数据在jsp页面显示使用如下标签</strong></p>
<p>&lt;fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/&gt;<br />
其中${date}是实际数据中的java.util.Date类型数据 </p>
<p>pattern="yyyy-MM-dd" 中的"yyyy-MM-dd"按照标准时间格式字符串定义即可，</p>
<p>可以显示到时分秒即为"yyyy-MM-dd HH:mm:ss"注意其中大小写</p>
<p><strong>数字标签</strong></p>
<p>&lt;fmt:formatNumber value="${num}" pattern="#" type="number"/&gt;<br />
其中${num}是任意的基础数据类型数据，pattern指定当前数字的格式，可以指定格式&#8221;#&#8221;</p>
<p>（只有整数类型）、&#8221;#.#&#8221;（带一位小数类型）、&#8221; ￥#,###.###&#8221;（带千位分割符，和&#8220;￥&#8221;类型）等等；type指定当前数字的类型，type有number（数值）、currency（货币）、percent（百分数）三种；</p>
<p><strong>数字标签实例</strong></p>
<p>Double num = new Double("123456789012.3456");<br />
整数带千分符显示：<br />
&lt;fmt:formatNumber value="${num}" type="number"/&gt; <br />
整数显示：<br />
&lt;fmt:formatNumber value="${num}" pattern="#" type="number"/&gt; <br />
两位小数舍入显示：<br />
&lt;fmt:formatNumber value="${num}" pattern="#.##" type="number"/&gt;<br />
两位小数舍入，不足两位小数补0显示：<br />
&lt;fmt:formatNumber value="${num}" pattern="#.00" type="number"/&gt;<br />
货币显示：（与number类似扩展pattern）<br />
&lt;fmt:formatNumber value="${num}" type="currency"/&gt;<br />
百分数显示：（与number类似扩展pattern）<br />
&lt;fmt:formatNumber value="${num}" type="percent"/&gt;<br />
</p>
<p><strong>实例结果</strong></p>
<p>整数带千分符显示： 123,456,789,012.346 </p>
<p>整数显示： 123456789012 </p>
<p>两位小数舍入显示： 123456789012.35</p>
<p>两位小数舍入，不足两位小数补0显示： 123456789012.35</p>
<p>货币显示：￥123,456,789,012.35</p>
<p>百分数显示 12,345,678,901,235%<br />
</p>
<img src ="http://www.blogjava.net/supercrsky/aggbug/184401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-03-07 09:36 <a href="http://www.blogjava.net/supercrsky/articles/184401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SLF4J 教程（自由在各种log中切换)</title><link>http://www.blogjava.net/supercrsky/articles/181029.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Thu, 21 Feb 2008 04:11:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/181029.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/181029.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/181029.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/181029.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/181029.html</trackback:ping><description><![CDATA[<p>一、介绍：<br />
简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的<br />
接口，从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以<br />
选择直接实现SLF4J接的loging APIs如： NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现<br />
来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。在SLF4J发行版本中包含了几个<br />
jar包，如slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-log4j13.jar, <br />
slf4j-jdk14.jar and slf4j-jcl.jar通过这些jar文件可以使编译期与具体的实现脱离。或者说可以<br />
灵活的切换<br />
二、官方站点<br />
官方的网站：<a href="http://www.slf4j.org/manual.html">http://www.slf4j.org/manual.html</a><br />
三、为何使用slf4j?<br />
我们在开发过程中可能使用各种log，每个Log有不同的风格、布局，如果想灵活的切换那么slf4j是比较好的<br />
选择。<br />
四、如何使用slf4j<br />
下边一段程序是经典的使用slf4j的方法.</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.slf4j.Logger;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.slf4j.LoggerFactory;<br />
<img id="Codehighlighter1_77_652_Open_Image" onclick="this.style.display='none'; Codehighlighter1_77_652_Open_Text.style.display='none'; Codehighlighter1_77_652_Closed_Image.style.display='inline'; Codehighlighter1_77_652_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_77_652_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_77_652_Closed_Text.style.display='none'; Codehighlighter1_77_652_Open_Image.style.display='inline'; Codehighlighter1_77_652_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Wombat&nbsp;</span><span id="Codehighlighter1_77_652_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_77_652_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;LoggerFactory.getLogger(Wombat.</span><span style="color: #0000ff">class</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;t;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Integer&nbsp;oldT;<br />
<img id="Codehighlighter1_231_488_Open_Image" onclick="this.style.display='none'; Codehighlighter1_231_488_Open_Text.style.display='none'; Codehighlighter1_231_488_Closed_Image.style.display='inline'; Codehighlighter1_231_488_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_231_488_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_231_488_Closed_Text.style.display='none'; Codehighlighter1_231_488_Open_Image.style.display='inline'; Codehighlighter1_231_488_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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;setTemperature(Integer&nbsp;temperature)&nbsp;</span><span id="Codehighlighter1_231_488_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_231_488_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;oldT&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;t;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;temperature;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logger.error(</span><span style="color: #000000">"</span><span style="color: #000000">Temperature&nbsp;set&nbsp;to&nbsp;{}.&nbsp;Old&nbsp;temperature&nbsp;was&nbsp;{}.</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;t,&nbsp;oldT);<br />
<img id="Codehighlighter1_401_481_Open_Image" onclick="this.style.display='none'; Codehighlighter1_401_481_Open_Text.style.display='none'; Codehighlighter1_401_481_Closed_Image.style.display='inline'; Codehighlighter1_401_481_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_401_481_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_401_481_Closed_Text.style.display='none'; Codehighlighter1_401_481_Open_Image.style.display='inline'; Codehighlighter1_401_481_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(temperature.intValue()&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">50</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_401_481_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_401_481_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;logger.info(</span><span style="color: #000000">"</span><span style="color: #000000">Temperature&nbsp;has&nbsp;risen&nbsp;above&nbsp;50&nbsp;degrees.</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_533_650_Open_Image" onclick="this.style.display='none'; Codehighlighter1_533_650_Open_Text.style.display='none'; Codehighlighter1_533_650_Closed_Image.style.display='inline'; Codehighlighter1_533_650_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_533_650_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_533_650_Closed_Text.style.display='none'; Codehighlighter1_533_650_Open_Image.style.display='inline'; Codehighlighter1_533_650_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id="Codehighlighter1_533_650_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_533_650_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;Wombat&nbsp;wombat&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Wombat();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wombat.setTemperature(</span><span style="color: #000000">1</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;wombat.setTemperature(</span><span style="color: #000000">55</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&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="" />}</span></span></div>
<br />
<p><br />
下边介绍一下运行上边程序的过程。<br />
1,编译上边的程序，需要classpath中加入slf4j-api-1.4.1.jar文件<br />
2,运行时，需要classpath中加上slf4j-simple-1.4.1.jar<br />
运行得到结果:<br />
----------------------------<br />
0 [main] ERROR Wombat - Temperature set to 1. Old temperature was null.<br />
0 [main] ERROR Wombat - Temperature set to 55. Old temperature was 1.<br />
0 [main] INFO Wombat - Temperature has risen above 50 degrees.<br />
这个是simple log风格，</p>
<p>3,切换：如果想切换到jdk14的log的风格，只需要把slf4j-simple-1.4.1.jar<br />
从classpath中移除，同时classpath中加入slj4j-jdk14-1.4.1.jar<br />
这时的运行结果:<br />
---------------------------------------------------<br />
2007-7-9 10:40:15 Wombat setTemperature<br />
严重: Temperature set to 1. Old temperature was null.<br />
2007-7-9 10:40:16 Wombat setTemperature<br />
严重: Temperature set to 55. Old temperature was 1.<br />
2007-7-9 10:40:16 Wombat setTemperature<br />
信息: Temperature has risen above 50 degrees.<br />
已经变成jdk14的log风格了。<br />
4,再次切换到log4j<br />
同样移除slj4j-jdk14-1.4.1.jar，加入slf4j-log4j12-1.4.1.jar，同时加入log4j-1.2.x.jar<br />
加入log4j.properties。得到显示结果:<br />
---------------------------------------<br />
10:42:27,328 ERROR Wombat: Temperature set to 1. Old temperature was null.<br />
10:42:27,328 ERROR Wombat: Temperature set to 55. Old temperature was 1.<br />
10:42:27,328&nbsp;&nbsp; INFO Wombat: Temperature has risen above 50 degrees.<br />
在不同的风格中切换只需要在部署期切换类库就可以了，和开发时无关。</p>
<img src ="http://www.blogjava.net/supercrsky/aggbug/181029.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-02-21 12:11 <a href="http://www.blogjava.net/supercrsky/articles/181029.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的防盗链过滤器</title><link>http://www.blogjava.net/supercrsky/articles/180357.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sun, 17 Feb 2008 14:14:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/180357.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/180357.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/180357.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/180357.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/180357.html</trackback:ping><description><![CDATA[简单的防盗链过滤器代码，保护cwb目录和dir2目录下的zip文件不被盗链。<br />
一、web.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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="ISO-8859-1"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">web-app&nbsp;</span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/j2ee"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/j2ee&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</span><span style="color: #ff0000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />version</span><span style="color: #0000ff">="2.4"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><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="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">display-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Welcome&nbsp;to&nbsp;Tomcat</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">display-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;Welcome&nbsp;to&nbsp;Tomcat<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">SecurityFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">example.SecurityFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><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="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">SecurityFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/dir2/*</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">SecurityFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/cwb/*</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<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="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">log4j-init</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">example.Log4jInit</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">log4j</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">WEB-INF/log4j.properties</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<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="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><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="" /></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: #0000ff">package</span><span style="color: #000000">&nbsp;example;<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="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.Filter;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.FilterConfig;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletRequest;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletResponse;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.FilterChain;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.ServletException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.servlet.http.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.IOException;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Iterator;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Set;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.HashSet;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.log4j.</span><span style="color: #000000">*</span><span style="color: #000000">;<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="" /><br />
<img id="Codehighlighter1_437_1703_Open_Image" onclick="this.style.display='none'; Codehighlighter1_437_1703_Open_Text.style.display='none'; Codehighlighter1_437_1703_Closed_Image.style.display='inline'; Codehighlighter1_437_1703_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_437_1703_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_437_1703_Closed_Text.style.display='none'; Codehighlighter1_437_1703_Open_Image.style.display='inline'; Codehighlighter1_437_1703_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SecurityFilter&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Filter&nbsp;</span><span id="Codehighlighter1_437_1703_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_437_1703_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;JAVA3Z_URL&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://www.java3z.com/cwbwebhome/index.html</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;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;String&nbsp;K_URL</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://www.xxx.com/index.html</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;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Logger&nbsp;logger&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Logger.getLogger(</span><span style="color: #000000">"</span><span style="color: #000000">this.SecurityFilter</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;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_687_722_Open_Image" onclick="this.style.display='none'; Codehighlighter1_687_722_Open_Text.style.display='none'; Codehighlighter1_687_722_Closed_Image.style.display='inline'; Codehighlighter1_687_722_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_687_722_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_687_722_Closed_Text.style.display='none'; Codehighlighter1_687_722_Open_Image.style.display='inline'; Codehighlighter1_687_722_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_687_722_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">/**&nbsp;*/</span><span id="Codehighlighter1_687_722_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Initializes&nbsp;the&nbsp;Filter.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_793_802_Open_Image" onclick="this.style.display='none'; Codehighlighter1_793_802_Open_Text.style.display='none'; Codehighlighter1_793_802_Closed_Image.style.display='inline'; Codehighlighter1_793_802_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_793_802_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_793_802_Closed_Text.style.display='none'; Codehighlighter1_793_802_Open_Image.style.display='inline'; Codehighlighter1_793_802_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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;init(FilterConfig&nbsp;filterConfig)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_793_802_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_793_802_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;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_807_844_Open_Image" onclick="this.style.display='none'; Codehighlighter1_807_844_Open_Text.style.display='none'; Codehighlighter1_807_844_Closed_Image.style.display='inline'; Codehighlighter1_807_844_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_807_844_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_807_844_Closed_Text.style.display='none'; Codehighlighter1_807_844_Open_Image.style.display='inline'; Codehighlighter1_807_844_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_807_844_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">/**&nbsp;*/</span><span id="Codehighlighter1_807_844_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Standard&nbsp;doFilter&nbsp;object.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;doFilter(ServletRequest&nbsp;req,&nbsp;ServletResponse&nbsp;res,&nbsp;FilterChain&nbsp;chain)<br />
<img id="Codehighlighter1_968_1669_Open_Image" onclick="this.style.display='none'; Codehighlighter1_968_1669_Open_Text.style.display='none'; Codehighlighter1_968_1669_Closed_Image.style.display='inline'; Codehighlighter1_968_1669_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_968_1669_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_968_1669_Closed_Text.style.display='none'; Codehighlighter1_968_1669_Open_Image.style.display='inline'; Codehighlighter1_968_1669_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;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException,&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_968_1669_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_968_1669_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;</span><span style="color: #008000">//</span><span style="color: #008000">logger.info("doFilter");</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;HttpServletRequest&nbsp;req1</span><span style="color: #000000">=</span><span style="color: #000000">(HttpServletRequest)req;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpServletResponse&nbsp;res1</span><span style="color: #000000">=</span><span style="color: #000000">(HttpServletResponse)res;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;contextPath&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;req1.getContextPath();&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;requestUri&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;req1.getRequestURI();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">logger.info("requestUri&nbsp;=&nbsp;"&nbsp;+&nbsp;requestUri);</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></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;String&nbsp;referer</span><span style="color: #000000">=</span><span style="color: #000000">req1.getHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Referer</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;<br />
<img id="Codehighlighter1_1422_1612_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1422_1612_Open_Text.style.display='none'; Codehighlighter1_1422_1612_Closed_Image.style.display='inline'; Codehighlighter1_1422_1612_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1422_1612_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1422_1612_Closed_Text.style.display='none'; Codehighlighter1_1422_1612_Open_Image.style.display='inline'; Codehighlighter1_1422_1612_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(referer</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">referer.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">www.java3z.com</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">referer.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">www.xxx.com</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)</span><span id="Codehighlighter1_1422_1612_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_1422_1612_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;<br />
<img id="Codehighlighter1_1472_1536_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1472_1536_Open_Text.style.display='none'; Codehighlighter1_1472_1536_Closed_Image.style.display='inline'; Codehighlighter1_1472_1536_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1472_1536_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1472_1536_Closed_Text.style.display='none'; Codehighlighter1_1472_1536_Open_Image.style.display='inline'; Codehighlighter1_1472_1536_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(requestUri.indexOf(</span><span style="color: #000000">"</span><span style="color: #000000">cwb</span><span style="color: #000000">"</span><span style="color: #000000">)</span><span style="color: #000000">!=-</span><span style="color: #000000">1</span><span style="color: #000000">)</span><span id="Codehighlighter1_1472_1536_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_1472_1536_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;res1.sendRedirect(JAVA3Z_URL);<br />
<img id="Codehighlighter1_1541_1601_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1541_1601_Open_Text.style.display='none'; Codehighlighter1_1541_1601_Closed_Image.style.display='inline'; Codehighlighter1_1541_1601_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1541_1601_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1541_1601_Closed_Text.style.display='none'; Codehighlighter1_1541_1601_Open_Image.style.display='inline'; Codehighlighter1_1541_1601_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;}</span></span><span style="color: #0000ff">else</span><span id="Codehighlighter1_1541_1601_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_1541_1601_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;res1.sendRedirect(K_URL);<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;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1617_1666_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1617_1666_Open_Text.style.display='none'; Codehighlighter1_1617_1666_Closed_Image.style.display='inline'; Codehighlighter1_1617_1666_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1617_1666_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1617_1666_Closed_Text.style.display='none'; Codehighlighter1_1617_1666_Open_Image.style.display='inline'; Codehighlighter1_1617_1666_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;}</span></span><span style="color: #0000ff">else</span><span id="Codehighlighter1_1617_1666_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_1617_1666_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;chain.doFilter(req,&nbsp;res);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="Codehighlighter1_1696_1697_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1696_1697_Open_Text.style.display='none'; Codehighlighter1_1696_1697_Closed_Image.style.display='inline'; Codehighlighter1_1696_1697_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1696_1697_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1696_1697_Closed_Text.style.display='none'; Codehighlighter1_1696_1697_Open_Image.style.display='inline'; Codehighlighter1_1696_1697_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&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;destroy()&nbsp;</span><span id="Codehighlighter1_1696_1697_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_1696_1697_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><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="" /></span></div>
<img src ="http://www.blogjava.net/supercrsky/aggbug/180357.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-02-17 22:14 <a href="http://www.blogjava.net/supercrsky/articles/180357.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EL表达式详解 </title><link>http://www.blogjava.net/supercrsky/articles/179363.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Tue, 05 Feb 2008 11:53:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/179363.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/179363.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/179363.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/179363.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/179363.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在 JSP 页面中，使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了，然而，由自定义标签很容易造成重复定义和非标准的实现。鉴于此，出现了 JSTL （ JSP Standard Tag Library ）。大多数 JSP 页面逻辑提供了实现的 JSTL 技术，该技术本身就是一个标签库。 Sun 公司 Java 规范标准的 JSTL 由 apache jakarta ...&nbsp;&nbsp;<a href='http://www.blogjava.net/supercrsky/articles/179363.html'>阅读全文</a><img src ="http://www.blogjava.net/supercrsky/aggbug/179363.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-02-05 19:53 <a href="http://www.blogjava.net/supercrsky/articles/179363.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java对Cookie的操作</title><link>http://www.blogjava.net/supercrsky/articles/177339.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Wed, 23 Jan 2008 10:16:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/177339.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/177339.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/177339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/177339.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/177339.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: public&nbsp;ActionForward&nbsp;login(ActionMapping&nbsp;mapping,&nbsp;ActionForm&nbsp;form,&nbsp;HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)&nbsp;{&nbsp;&nbsp;&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.blogjava.net/supercrsky/articles/177339.html'>阅读全文</a><img src ="http://www.blogjava.net/supercrsky/aggbug/177339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-01-23 18:16 <a href="http://www.blogjava.net/supercrsky/articles/177339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts1.x中的令牌(Token)使用</title><link>http://www.blogjava.net/supercrsky/articles/175043.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sun, 13 Jan 2008 15:17:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/175043.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/175043.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/175043.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/175043.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/175043.html</trackback:ping><description><![CDATA[<p>使用token是为了防止重复提交,像灌水之类的.<br />
<br />
LoginAction:<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: #0000ff">package</span><span style="color: #000000">&nbsp;com.web.action;<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">import</span><span style="color: #000000">&nbsp;javax.servlet.http.HttpServletRequest;<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.servlet.http.HttpServletResponse;<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">import</span><span style="color: #000000">&nbsp;org.apache.struts.action.ActionForm;<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;org.apache.struts.action.ActionForward;<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;org.apache.struts.action.ActionMapping;<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;org.apache.struts.actions.DispatchAction;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_355_1173_Open_Image" onclick="this.style.display='none'; Codehighlighter1_355_1173_Open_Text.style.display='none'; Codehighlighter1_355_1173_Closed_Image.style.display='inline'; Codehighlighter1_355_1173_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_355_1173_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_355_1173_Closed_Text.style.display='none'; Codehighlighter1_355_1173_Open_Image.style.display='inline'; Codehighlighter1_355_1173_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">class</span><span style="color: #000000">&nbsp;LoginAction&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;DispatchAction&nbsp;</span><span id="Codehighlighter1_355_1173_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_355_1173_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&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;ActionForward&nbsp;get(ActionMapping&nbsp;mapping,&nbsp;ActionForm&nbsp;form,<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;HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
<img id="Codehighlighter1_506_648_Open_Image" onclick="this.style.display='none'; Codehighlighter1_506_648_Open_Text.style.display='none'; Codehighlighter1_506_648_Closed_Image.style.display='inline'; Codehighlighter1_506_648_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_506_648_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_506_648_Closed_Text.style.display='none'; Codehighlighter1_506_648_Open_Image.style.display='inline'; Codehighlighter1_506_648_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 style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_506_648_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_506_648_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: #008000">//</span><span style="color: #008000">保存令牌(保存在jsp动态生成的32位jsessionid)\</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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.saveToken(request);<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">begin&nbsp;save</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">login</span><span style="color: #000000">"</span><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" />&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;ActionForward&nbsp;login(ActionMapping&nbsp;mapping,&nbsp;ActionForm&nbsp;form,<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;HttpServletRequest&nbsp;request,&nbsp;HttpServletResponse&nbsp;response)<br />
<img id="Codehighlighter1_801_1171_Open_Image" onclick="this.style.display='none'; Codehighlighter1_801_1171_Open_Text.style.display='none'; Codehighlighter1_801_1171_Closed_Image.style.display='inline'; Codehighlighter1_801_1171_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_801_1171_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_801_1171_Closed_Text.style.display='none'; Codehighlighter1_801_1171_Open_Image.style.display='inline'; Codehighlighter1_801_1171_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 style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception&nbsp;</span><span id="Codehighlighter1_801_1171_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_801_1171_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_805_944_Open_Image" onclick="this.style.display='none'; Codehighlighter1_805_944_Open_Text.style.display='none'; Codehighlighter1_805_944_Closed_Image.style.display='inline'; Codehighlighter1_805_944_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_805_944_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_805_944_Closed_Text.style.display='none'; Codehighlighter1_805_944_Open_Image.style.display='inline'; Codehighlighter1_805_944_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;</span><span id="Codehighlighter1_805_944_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">/**/</span><span id="Codehighlighter1_805_944_Open_Text"><span style="color: #008000">/*</span><span style="color: #008000">if(this.isTokenValid(request))<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<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;System.out.println("valid");<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;this.resetToken(request);<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;return&nbsp;mapping.findForward("ok");<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000">*/</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;</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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">this</span><span style="color: #000000">.isTokenValid(request,</span><span style="color: #0000ff">true</span><span style="color: #000000">))<br />
<img id="Codehighlighter1_1006_1079_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1006_1079_Open_Text.style.display='none'; Codehighlighter1_1006_1079_Closed_Image.style.display='inline'; Codehighlighter1_1006_1079_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1006_1079_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1006_1079_Closed_Text.style.display='none'; Codehighlighter1_1006_1079_Open_Image.style.display='inline'; Codehighlighter1_1006_1079_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;</span><span id="Codehighlighter1_1006_1079_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_1006_1079_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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">valid</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">ok</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&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;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img id="Codehighlighter1_1090_1168_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1090_1168_Open_Text.style.display='none'; Codehighlighter1_1090_1168_Closed_Image.style.display='inline'; Codehighlighter1_1090_1168_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1090_1168_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1090_1168_Closed_Text.style.display='none'; Codehighlighter1_1090_1168_Open_Image.style.display='inline'; Codehighlighter1_1090_1168_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;</span><span id="Codehighlighter1_1090_1168_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_1090_1168_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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">invalid</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">error</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><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/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>
struts-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: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</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: #ff00ff">DOCTYPE&nbsp;struts-config&nbsp;PUBLIC&nbsp;"-//Apache&nbsp;Software&nbsp;Foundation//DTD&nbsp;Struts&nbsp;Configuration&nbsp;1.2//EN"&nbsp;"http://struts.apache.org/dtds/struts-config_1_2.dtd"</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" /><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">struts-config</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">data-sources&nbsp;</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">form-beans</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">form-bean&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="loginForm"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="com.web.form.LoginForm"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">form-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;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form-beans</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">global-exceptions&nbsp;</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">global-forwards&nbsp;</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">action-mappings</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">action&nbsp;</span><span style="color: #ff0000">path</span><span style="color: #0000ff">="/login"</span><span style="color: #ff0000">&nbsp;parameter</span><span style="color: #0000ff">="method"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="loginForm"</span><span style="color: #ff0000"><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;type</span><span style="color: #0000ff">="com.web.action.LoginAction"</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">forward&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="login"</span><span style="color: #ff0000">&nbsp;path</span><span style="color: #0000ff">="/login.jsp"</span><span style="color: #ff0000">&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">forward&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="ok"</span><span style="color: #ff0000">&nbsp;path</span><span style="color: #0000ff">="/ok.jsp"</span><span style="color: #ff0000">&nbsp;</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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">forward&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="error"</span><span style="color: #ff0000">&nbsp;path</span><span style="color: #0000ff">="/error.jsp"</span><span style="color: #ff0000">&nbsp;</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;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">action</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">action-mappings</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">message-resources&nbsp;</span><span style="color: #ff0000">parameter</span><span style="color: #0000ff">=""</span><span style="color: #ff0000">&nbsp;</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">struts-config</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" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
index.jsp:<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 id="Codehighlighter1_2_43_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_43_Open_Text.style.display='none'; Codehighlighter1_2_43_Closed_Image.style.display='inline'; Codehighlighter1_2_43_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_43_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_43_Closed_Text.style.display='none'; Codehighlighter1_2_43_Open_Image.style.display='inline'; Codehighlighter1_2_43_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_43_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_2_43_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;&nbsp;charset=GBK</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_49_107_Open_Image" onclick="this.style.display='none'; Codehighlighter1_49_107_Open_Text.style.display='none'; Codehighlighter1_49_107_Closed_Image.style.display='inline'; Codehighlighter1_49_107_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_49_107_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_49_107_Closed_Text.style.display='none'; Codehighlighter1_49_107_Open_Image.style.display='inline'; Codehighlighter1_49_107_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_49_107_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_49_107_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://java.sun.com/jsp/jstl/core</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">c</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&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">c:set&nbsp;</span><span style="color: #ff0000">var</span><span style="color: #0000ff">="ctx"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${pageContext.request.contextPath}"</span><span style="color: #ff0000">&nbsp;</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">html</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">head</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">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">My&nbsp;Jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</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">head</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">body</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">a&nbsp;</span><span style="color: #ff0000">href</span><span style="color: #0000ff">="${ctx}/login.do?method=get"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">发言</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">a</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">body</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">html</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 />
login.jsp:<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 id="Codehighlighter1_2_43_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_43_Open_Text.style.display='none'; Codehighlighter1_2_43_Closed_Image.style.display='inline'; Codehighlighter1_2_43_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_2_43_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_43_Closed_Text.style.display='none'; Codehighlighter1_2_43_Open_Image.style.display='inline'; Codehighlighter1_2_43_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_43_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_2_43_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;&nbsp;charset=GBK</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_49_107_Open_Image" onclick="this.style.display='none'; Codehighlighter1_49_107_Open_Text.style.display='none'; Codehighlighter1_49_107_Closed_Image.style.display='inline'; Codehighlighter1_49_107_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_49_107_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_49_107_Closed_Text.style.display='none'; Codehighlighter1_49_107_Open_Image.style.display='inline'; Codehighlighter1_49_107_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_49_107_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_49_107_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://java.sun.com/jsp/jstl/core</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">c</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_113_183_Open_Image" onclick="this.style.display='none'; Codehighlighter1_113_183_Open_Text.style.display='none'; Codehighlighter1_113_183_Closed_Image.style.display='inline'; Codehighlighter1_113_183_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_113_183_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_113_183_Closed_Text.style.display='none'; Codehighlighter1_113_183_Open_Image.style.display='inline'; Codehighlighter1_113_183_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_113_183_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_113_183_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://jakarta.apache.org/struts/tags-html</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">html</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&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">html</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">head</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">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">My&nbsp;Jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</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">head</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">body</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">c:set&nbsp;</span><span style="color: #ff0000">var</span><span style="color: #0000ff">="ctx"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${pageContext.request.contextPath}"</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: #008000">&lt;!--</span><span style="color: #008000">&nbsp;此处必须使用html标签,否则token不能用&nbsp;</span><span style="color: #008000">--&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">html:form&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">="login.do?method=login"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</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">html:submit&nbsp;</span><span style="color: #ff0000">value</span><span style="color: #0000ff">="提交"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">html:submit</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">html:form</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">body</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">html</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 />
这时我们退到login.jsp查看一下源代码:<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">html</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">head</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">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">My&nbsp;Jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</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">head</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">body</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;<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">form&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="loginForm"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #ff0000">&nbsp;action</span><span style="color: #0000ff">="/strutsToken/login.do?method=login"</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">div</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="hidden"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="org.apache.struts.taglib.html.TOKEN"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="d7484f95247cf242a6f35107a1c7ac25"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">div</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">input&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">="提交"</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">form</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">body</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">html</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>
对比一下我们写的login.jsp多了一个隐藏域:<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">div</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="hidden"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="org.apache.struts.taglib.html.TOKEN"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="d7484f95247cf242a6f35107a1c7ac25"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span></div>
此时生成了一个32位的唯一的JsessionID做为值.<br />
与LoginAction中的get方法的saveToken(request)是一样的.<br />
此句的作用就是把一个jsessionid保存到request范围里.<br />
<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">if</span><span style="color: #000000">(</span><span style="color: #0000ff">this</span><span style="color: #000000">.isTokenValid(request,</span><span style="color: #0000ff">true</span><span style="color: #000000">))<br />
<img id="Codehighlighter1_38_111_Open_Image" onclick="this.style.display='none'; Codehighlighter1_38_111_Open_Text.style.display='none'; Codehighlighter1_38_111_Closed_Image.style.display='inline'; Codehighlighter1_38_111_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_38_111_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_38_111_Closed_Text.style.display='none'; Codehighlighter1_38_111_Open_Image.style.display='inline'; Codehighlighter1_38_111_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_38_111_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_38_111_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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">valid</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;mapping.findForward(</span><span style="color: #000000">"</span><span style="color: #000000">ok</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;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
时,就会拿login.jsp里传过来的jsessionid和request的<br />
进行比较,如果一样,说明不合法.因为我们的操作都是在一个请求会话里<br />
操作的.说明你在重复提交.<br />
如果不一样,说明重新生成了一个唯一的jsessionid(新开一个浏览器),<br />
开启了一个新会话,重新提交,这是合法的.<br />
这样就防止了表单重复提交问题. <br />
<a title="源码下载" href="http://cid-39cce615c2e5d86b.skydrive.live.com/browse.aspx/Public/javaweb?uc=1">源码下载</a>
<img src ="http://www.blogjava.net/supercrsky/aggbug/175043.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-01-13 23:17 <a href="http://www.blogjava.net/supercrsky/articles/175043.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat配置JNDI数据源</title><link>http://www.blogjava.net/supercrsky/articles/174931.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sun, 13 Jan 2008 00:28:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/174931.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/174931.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/174931.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/174931.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/174931.html</trackback:ping><description><![CDATA[<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">经过3个多小时的努力，配置JNDI数据源(主要是通过DBCP连接池)终于搞定～<br />
还是Tomcat官方的说明好，不过全是英文的，大概还看得懂．<br />
百度上那么花花绿绿的太多了，一个也没成功！．．．<br />
本例使用的数据库为Ms SQL Server 2000,对于其它数据库只是修改一下相应的参数即可，<br />
服务器是Tomcat5.5, 与之间的版本配置连接池最简便<br />
自己总结了一下,希望起到一个抛砖引玉的作用</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">总结：<br />
第一步：</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">将驱动程序(jar包)放到tomcat安装目录下的common\lib文件夹下<br />
第二步:</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">在Tomcat的webapps目录随便创建一个工程目录，例如myjdbc。在myjdbc目录下创建META-INF目录，在此目录下创建一个context.xml文件，里面的内容如下： <br />
</span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">Resource&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/test"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;auth</span><span style="color: #0000ff">="Container"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;type</span><span style="color: #0000ff">="javax.sql.DataSource"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maxActive</span></span></span><span style="color: #0000ff"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">="100"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;maxIdle</span><span style="color: #0000ff">="30"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;maxWait</span><span style="color: #0000ff">="10000"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">="sa"</span><span style="color: #ff0000">&nbsp;password</span><span style="color: #0000ff">=""</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;driverClassName</span><span style="color: #0000ff">="net.sourceforge.jtds.jdbc.Driver"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">="jdbc:jtds:sqlserver://localhost/pubs"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span></span></span></div>
<p><span style="font-family: Comic Sans MS"></span>&nbsp;</p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">附注如下：<br />
Tomcat标准数据源资源工厂配置项如下：<br />
* driverClassName - 所使用的JDBC驱动类全称。<br />
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。<br />
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。<br />
* maxWait - 当连接池中没有可用连接时，连接池在抛出异常前将等待的最大时间，单位毫秒。<br />
* password - 传给JDBC驱动的数据库密码。<br />
* url - 传给JDBC驱动的连接URL。<br />
* user - 传给JDBC驱动的数据库用户名。<br />
* validationQuery - 一个SQL查询语句，用于在连接被返回给应用前的连接池验证。<br />
* 如果指定了该属性，则必为至少返回一行记录的SQL SELECT语句。</span></span></p>
<p><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">jdbc/test是数据源的名称(随意写，要和web.xml文件中 &lt;res-ref-name&gt;jdbc/test&lt;/res-ref-name&gt; 一样即可)，<br />
其他的参数按照自己的实际情况进行修改，例如数据库的名称、账号、密码。 </span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">第三步:</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">在myjdbc目录下创建WEB-INF目录，创建web.xml文件，内容如下: <br />
</span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">web-app&nbsp;</span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/j2ee"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />xsi:schemaLocation</span><span style="color: #0000ff">="http://java.sun.com/xml/ns/j2ee&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #ff0000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />version</span><span style="color: #0000ff">="2.4"</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">resource-ref</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">DB&nbsp;Connection</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">res-ref-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jdbc/test</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">res-ref-name</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">res-type</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">javax.sql.DataSource</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">res-type</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">res-auth</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Container</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">res-auth</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">resource-ref</span><span style="color: #0000ff">&gt;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">web-app</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span></div>
<p><span style="font-family: Comic Sans MS"></span>&nbsp;</p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">说明:<br />
&lt;resource-ref&gt;<br />
&lt;descrtiption&gt;引用资源说明&lt;/descrtiption&gt;<br />
&lt;res-ref-name&gt;引用资源的JNDI名&lt;/res-ref-name&gt;<br />
&lt;res-type&gt;引用资源的类名&lt;/res-type&gt;<br />
&lt;res-auth&gt;管理者（Container）&lt;/res-auth&gt;&lt;!--Container－容器管理 Application－Web应用管理--&gt;<br />
&lt;/resource-ref&gt;<br />
第四步：</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">写个jsp，试一下吧！<br />
</span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img id="Codehighlighter1_2_45_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_45_Open_Text.style.display='none'; Codehighlighter1_2_45_Closed_Image.style.display='inline'; Codehighlighter1_2_45_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2_45_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_45_Closed_Text.style.display='none'; Codehighlighter1_2_45_Open_Image.style.display='inline'; Codehighlighter1_2_45_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_45_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_2_45_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;contentType</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">text/html;charset=utf-8</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img id="Codehighlighter1_51_121_Open_Image" onclick="this.style.display='none'; Codehighlighter1_51_121_Open_Text.style.display='none'; Codehighlighter1_51_121_Closed_Image.style.display='inline'; Codehighlighter1_51_121_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_51_121_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_51_121_Closed_Text.style.display='none'; Codehighlighter1_51_121_Open_Image.style.display='inline'; Codehighlighter1_51_121_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_51_121_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_51_121_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;import</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java.sql.*,javax.sql.*,javax.naming.*,com.DBConnection</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img id="Codehighlighter1_127_663_Open_Image" onclick="this.style.display='none'; Codehighlighter1_127_663_Open_Text.style.display='none'; Codehighlighter1_127_663_Closed_Image.style.display='inline'; Codehighlighter1_127_663_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_127_663_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_127_663_Closed_Text.style.display='none'; Codehighlighter1_127_663_Open_Image.style.display='inline'; Codehighlighter1_127_663_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_127_663_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></span><span id="Codehighlighter1_127_663_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;try<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span></span></span><span style="color: #000000; background-color: #f5f5f5"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">//</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">初始化查找命名空间<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;Context&nbsp;ctx&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">&nbsp;InitialContext();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">InitialContext&nbsp;ctx&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">&nbsp;InitialContext();亦可&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span><span style="color: #000000; background-color: #f5f5f5">找到DataSource,对名称进行定位java:comp</span><span style="color: #000000; background-color: #f5f5f5">/</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">env是必须加的,后面跟你的DataSource名<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;DataSource&nbsp;ds&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(DataSource)ctx.lookup(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java:comp/env/jdbc/test</span><span style="color: #000000; background-color: #f5f5f5">"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">取出连接<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;Connection&nbsp;conn&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">&nbsp;ds.getConnection();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />System.out.println(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">connection&nbsp;pool&nbsp;connected&nbsp;!!</span><span style="color: #000000; background-color: #f5f5f5">"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #f5f5f5">);&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;}&nbsp;catch&nbsp;(NamingException&nbsp;e)&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;}&nbsp;catch&nbsp;(SQLException&nbsp;e)&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;}finally<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">//</span></span></span><span style="color: #000000; background-color: #f5f5f5"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">注意不是关闭,是放回连接池.<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;conn.close();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span></span><span style="color: #000000; background-color: #ffff00"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">%&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span></div>
<p><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">或写个JSP用标签库测试一下:<br />
</span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img id="Codehighlighter1_2_70_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2_70_Open_Text.style.display='none'; Codehighlighter1_2_70_Closed_Image.style.display='inline'; Codehighlighter1_2_70_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2_70_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2_70_Closed_Text.style.display='none'; Codehighlighter1_2_70_Open_Image.style.display='inline'; Codehighlighter1_2_70_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_2_70_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_2_70_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;page&nbsp;language</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;import</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">java.util.*</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;pageEncoding</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">ISO-8859-1</span><span style="color: #000000; background-color: #f5f5f5">"</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img id="Codehighlighter1_76_136_Open_Image" onclick="this.style.display='none'; Codehighlighter1_76_136_Open_Text.style.display='none'; Codehighlighter1_76_136_Closed_Image.style.display='inline'; Codehighlighter1_76_136_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_76_136_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_76_136_Closed_Text.style.display='none'; Codehighlighter1_76_136_Open_Image.style.display='inline'; Codehighlighter1_76_136_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_76_136_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_76_136_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://java.sun.com/jsp/jstl/sql</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">sql</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img id="Codehighlighter1_142_201_Open_Image" onclick="this.style.display='none'; Codehighlighter1_142_201_Open_Text.style.display='none'; Codehighlighter1_142_201_Closed_Image.style.display='inline'; Codehighlighter1_142_201_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_142_201_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_142_201_Closed_Text.style.display='none'; Codehighlighter1_142_201_Open_Image.style.display='inline'; Codehighlighter1_142_201_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000; background-color: #ffff00">&lt;%</span><span id="Codehighlighter1_142_201_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_142_201_Open_Text"><span style="color: #000000; background-color: #f5f5f5">@&nbsp;taglib&nbsp;uri</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">http://java.sun.com/jsp/jstl/core</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;prefix</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">c</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span></span><span style="color: #000000; background-color: #ffff00">%&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><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="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">sql:query&nbsp;</span><span style="color: #ff0000">var</span><span style="color: #0000ff">="rs"</span><span style="color: #ff0000">&nbsp;dataSource</span><span style="color: #0000ff">="jdbc/test"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />select&nbsp;*&nbsp;from&nbsp;authors<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">sql:query</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><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="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">DB&nbsp;Test</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">c:forEach&nbsp;</span><span style="color: #ff0000">var</span><span style="color: #0000ff">="row"</span><span style="color: #ff0000">&nbsp;items</span><span style="color: #0000ff">="${rs.rows}"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;${row.city}</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">c:forEach</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><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="" /></span></span></span></div>
<p><span style="font-family: Comic Sans MS"></span>&nbsp;</p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">我成功了！Good Luck!<br />
以下是配置JNDI的其他方法,个人不建议使用,因为修改服务器的<br />
server.xml和web.xml,如果有一点错误,你的容器就会崩溃~</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">注：连接数据源的方法还有很多，在这里我简要说之：<br />
比如说第二步还可以这么做:</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">在/tomcat/conf/Catalina/localhost(或其它主机名)/中添加以<br />
虚拟目录名称(你的工程名)命名的XML文件来配置context.<br />
比如我的主机下有个目录dbpool其地址为tomcat/webapps/test我可以这样来配置这个上下文:<br />
在tomcat/conf/Catalina/localhost/目录下创建test.xml文件，内容和上面一样.</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">还可以:<br />
在/tomcat/conf/server.xml中&lt;host&gt;&lt;/host&gt;标签之间添加<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;</span></span></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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">Context&nbsp;</span><span style="color: #ff0000">path</span><span style="color: #0000ff">="/test"</span><span style="color: #ff0000">&nbsp;docBase</span><span style="color: #0000ff">="test"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;debug</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">="5"</span><span style="color: #ff0000">&nbsp;reloadable</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;crossContext</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;</span><span style="color: #800000">Resource&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="jdbc/test"</span><span style="color: #ff0000">&nbsp;auth</span><span style="color: #0000ff">="Container"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="javax.sql.DataSource"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><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;maxActive</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">="100"</span><span style="color: #ff0000">&nbsp;maxIdle</span><span style="color: #0000ff">="30"</span><span style="color: #ff0000">&nbsp;maxWait</span><span style="color: #0000ff">="10000"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><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;username</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">="javauser"</span><span style="color: #ff0000">&nbsp;password</span><span style="color: #0000ff">="javadude"</span><span style="color: #ff0000">&nbsp;driverClassName</span><span style="color: #0000ff">="net.sourceforge.jtds.jdbc.Driver"</span></span></span><span style="color: #ff0000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><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;url</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">="jdbc:jtds:sqlserver://localhost/pubs"</span><span style="color: #0000ff">/&gt;</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Context</span><span style="color: #0000ff">&gt;</span></span></span></div>
<p><span style="font-family: Comic Sans MS"></span>&nbsp;</p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">其中path是你的工程路径(相对或绝对亦可),其中docBase="test"说明，此主机已经指向到webapps目录下了，回头<br />
来看test这个上下文，它实际目录是位于webapps的目录下的，所以<br />
在Context中我们可以将docBase直接设置为test了。如果它在webapps/dbpool/test下，则设置为dbpool/test就可以了。</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">附：JNDI——Java Naming and Directory Interface是一套提供naming和 directory功能的 API，<br />
Java应用程式开发者透过使用 JNDI，在naming和 directory方面的应用上就有了共通的准则.<br />
</span></span></p>
<img src ="http://www.blogjava.net/supercrsky/aggbug/174931.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-01-13 08:28 <a href="http://www.blogjava.net/supercrsky/articles/174931.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>五种jsp跳转</title><link>http://www.blogjava.net/supercrsky/articles/173142.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sun, 06 Jan 2008 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/173142.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/173142.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/173142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/173142.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/173142.html</trackback:ping><description><![CDATA[<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 　　但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面.<br />
<br />
　　重定向后浏览器地址栏URL不变.<br />
<br />
　　例:在servlet中进行重定向</span> </span></span>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">&nbsp;</span></span></p>
</td>
<span class="postText">
<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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&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;doPost(HttpServletRequest&nbsp;request,HttpServletResponse&nbsp;response)&nbsp;</span><span style="color: #0000ff">throws</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;ServletException,IOException<br />
<img id="Codehighlighter1_114_333_Open_Image" onclick="this.style.display='none'; Codehighlighter1_114_333_Open_Text.style.display='none'; Codehighlighter1_114_333_Closed_Image.style.display='inline'; Codehighlighter1_114_333_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_114_333_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_114_333_Closed_Text.style.display='none'; Codehighlighter1_114_333_Open_Image.style.display='inline'; Codehighlighter1_114_333_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_114_333_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></span><span id="Codehighlighter1_114_333_Open_Text"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />　&nbsp;response.setContentType(</span><span style="color: #000000">"</span><span style="color: #000000">text/html;&nbsp;charset=gb2312</span><span style="color: #000000">"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />　&nbsp;ServletContext&nbsp;sc&nbsp;</span><span style="color: #000000">=</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;getServletContext();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />　&nbsp;RequestDispatcher&nbsp;rd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />　&nbsp;rd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sc.getRequestDispatcher(</span><span style="color: #000000">"</span><span style="color: #000000">/index.jsp</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">定向的页面</span></span></span><span style="color: #008000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span></span></span><span style="color: #000000"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　&nbsp;rd.forward(request,&nbsp;response);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span></div>
<br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　通常在servlet中使用，不在jsp中使用。<br />
<br />
　　<span class="STYLE1"> 2.response.sendRedirect()</span><br />
<br />
　　是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件.<br />
<br />
　　重定向后在浏览器地址栏上会出现重定向页面的URL<br />
<br />
　　例:在servlet中重定向<br />
<br />
</span></span>
<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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;doPost(HttpServletRequest&nbsp;request,HttpServletResponse&nbsp;response)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">throws</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">&nbsp;ServletException,IOException<br />
<img id="Codehighlighter1_112_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_112_209_Open_Text.style.display='none'; Codehighlighter1_112_209_Closed_Image.style.display='inline'; Codehighlighter1_112_209_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_112_209_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_112_209_Closed_Text.style.display='none'; Codehighlighter1_112_209_Open_Image.style.display='inline'; Codehighlighter1_112_209_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_112_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></span><span id="Codehighlighter1_112_209_Open_Text"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />　&nbsp;response.setContentType(</span><span style="color: #000000">"</span><span style="color: #000000">text/html;&nbsp;charset=gb2312</span><span style="color: #000000">"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />　&nbsp;response.sendRedirect(</span><span style="color: #000000">"</span><span style="color: #000000">/index.jsp</span><span style="color: #000000">"</span></span></span><span style="color: #000000"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></span></span></div>
<br />
<br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　由于response是jsp页面中的隐含对象，故在jsp页面中可以用response.sendRedirect()直接实现重定位。<br />
<br />
　　注意：<br />
<br />
　　 (1) 使用response.sendRedirect时，前面不能有HTML输出<br />
<br />
　　这并不是绝对的，不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制，一般在8K（我是说 JSP　SERVER），这就意味着，除非你关闭了cache，或者你使用了out.flush()强制刷新，那么在使用sendRedirect之前，有少量的HTML输出也是允许的。<br />
<br />
　　 (2) response.sendRedirect之后，应该紧跟一句return;<br />
<br />
　　我们已经知道response.sendRedirect是通过浏览器来做转向的，所以只有在页面处理完成后，才会有实际的动作。既然你已经要做转向了，那么后的输出还有什么意义呢？而且有可能会因为后面的输出导致转向失败。<br />
<br />
　　比较：<br />
<br />
　　 (1) Dispatcher.forward()是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址；<br />
<br />
　　 (2) response.sendRedirect()则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。<br />
<br />
　　前者更加高效，在前者可以满足需要时，尽量使用RequestDispatcher.forward()方法.<br />
<br />
　　注：在有些情况下，比如，需要跳转到一个其它服务器上的资源，则必须使用HttpServletResponse.sendRequest()方法。<br />
</span></span><span class="STYLE1"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　 3.&lt;jsp:forward page="" /&gt;</span></span></span><br />
<br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　它的底层部分是由RequestDispatcher来实现的，因此它带有RequestDispatcher.forward()方法的印记。<br />
<br />
　　如果在&lt;jsp:forward&gt;之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。<br />
<br />
　　另外要注意：它不能改变浏览器地址，刷新的话会导致重复提交<br />
</span></span><span class="STYLE1"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　 4.修改HTTP header的Location属性来重定向</span></span></span><br />
<br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　通过设置直接修改地址栏来实现页面的重定向。<br />
<br />
　　 jsp文件代码如下：<br />
</span></span>
<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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></span></span><span style="color: #000000"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">&lt;%</span></span></span><span style="color: #000000"><br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;String&nbsp;newLocn&nbsp;</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">/newpath/jsa.jsp</span><span style="color: #000000">"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Location</span><span style="color: #000000">"</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">,newLocn);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></span></span></div>
<br />
<br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">　　<span class="STYLE1"> 5.JSP中实现在某页面停留若干秒后,自动重定向到另一页面</span><br />
<br />
　　在html文件中，下面的代码：<br />
<br />
&lt;meta http-equiv="refresh" content="300; url=target.jsp"&gt;<br />
<br />
　　它的含义：在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间，以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。<br />
<br />
　　由上可知，可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。<br />
<br />
　　关键代码：<br />
<br />
</span></span>
<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"><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">String&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">stayTime</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">;URL=</span><span style="color: #000000">"</span><span style="color: #000000">+</span></span></span><span style="font-family: Comic Sans MS"><span style="font-size: 12pt"><span style="color: #000000">URL;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">REFRESH</span><span style="color: #000000">"</span><span style="color: #000000">,content);&nbsp;</span></span></span></div>
<br />
<span style="font-family: Comic Sans MS"><span style="font-size: 12pt">&nbsp;<br />
</span></span></span>
<img src ="http://www.blogjava.net/supercrsky/aggbug/173142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-01-06 16:29 <a href="http://www.blogjava.net/supercrsky/articles/173142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用泛型类简化服务层类的设计</title><link>http://www.blogjava.net/supercrsky/articles/172099.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Wed, 02 Jan 2008 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/172099.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/172099.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/172099.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/172099.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/172099.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 领域层类可以理解为程序运行时数据流的功能单位,而服务层类是为领域层类提供服务的,常见的服务有增删改查等操作,在没有泛型之前,我们只能采用一个服务类为一个领域类提供服务的方案,如果说服务的性质类似,如都是增删改查等,则代码的功能重复性很高,维护起来也很麻烦.如果采用了泛型类,我们就可以把性质相似的服务类归纳成一个,很大程度上能简化编码.下面请看例子,我们有两个领域对象类:Member类:...&nbsp;&nbsp;<a href='http://www.blogjava.net/supercrsky/articles/172099.html'>阅读全文</a><img src ="http://www.blogjava.net/supercrsky/aggbug/172099.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2008-01-02 10:27 <a href="http://www.blogjava.net/supercrsky/articles/172099.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Apache的Jakarta Commons-Email开源框架发送Email</title><link>http://www.blogjava.net/supercrsky/articles/170321.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Tue, 25 Dec 2007 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/170321.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/170321.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/170321.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/170321.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/170321.html</trackback:ping><description><![CDATA[Jakarta发布了Commons Emails 1.1leased 版本，目的是为了简化JavaMail。<br />
该项目主页:http://commons.apache.org/email/<br />
知道有它几个class吗？你一定想不到，只有8个！<br />
<br />
好了，开始我们的jakarta commons emails 之旅：）<br />
<br />
一：Quick Start<br />
通过SimpleEmail发送邮件<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: #000000">java.lang.Object<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />org.apache.commons.mail.Email<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;org.apache.commons.mail.SimpleEmail</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: #000000">SimpleEmail&nbsp;email&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleEmail();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setHostName(</span><span style="color: #000000">"</span><span style="color: #000000">mail.4ya.cn</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setAuthentication(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;username&gt;</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&lt;password&gt;</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.addTo(</span><span style="color: #000000">"</span><span style="color: #000000">martin.xus@gmail.com</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">martin</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setFrom(</span><span style="color: #000000">"</span><span style="color: #000000">martin@4ya.cn</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">martin</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setSubject(</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/None.gif" align="top" />email.setMsg(</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/None.gif" align="top" />email.send();</span></div>
<br />
就如代码里字面上的意思一样简单:<br />
1：创建以SimpleEmail对象<br />
2：设定发送信件的smtp服务器，如果没有设定，会寻找系统变量中mail.host值。<br />
3：设定smtp的用户和密码<br />
4：收件人<br />
5：发件人<br />
6：主题<br />
7：内容<br />
8：发送<br />
<br />
二：发送带附件的邮件<br />
我们可以发送本机的附件，当然我们也可以发送非本机的附件，如果发送的是一个存在网络上的附件的url,则邮件发送的时候会自动下载，添加到附件中。<br />
<br />
&nbsp;&nbsp; 1：）发送本地附件：<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">EmailAttachment&nbsp;attachment&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;EmailAttachment();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setPath(</span><span style="color: #000000">"</span><span style="color: #000000">test/test.rar</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setDisposition(EmailAttachment.ATTACHMENT);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setDescription(</span><span style="color: #000000">"</span><span style="color: #000000">python&nbsp;resource</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setName(</span><span style="color: #000000">"</span><span style="color: #000000">resource</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
2：）发送不存在本地的附件<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">EmailAttachment&nbsp;attachment&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;EmailAttachment();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setURL(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(</span><span style="color: #000000">"</span><span style="color: #000000">/pic/2006/2/25/1340002.jpg</span><span style="color: #000000">"</span><span style="color: #000000">));<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setDisposition(EmailAttachment.ATTACHMENT);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />attachment.setDescription(</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/None.gif" align="top" />attachment.setName(</span><span style="color: #000000">"</span><span style="color: #000000">微笑图书馆</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
next,添加附件到我们的邮件中<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">MultiPartEmail&nbsp;email&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MultiPartEmail();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setHostName(</span><span style="color: #000000">"</span><span style="color: #000000">mail.4ya.cn</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;email.setAuthentication(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;username&gt;</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&lt;password&gt;</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.addTo(</span><span style="color: #000000">"</span><span style="color: #000000">martin.xus@gmail.com</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">martin</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setFrom(</span><span style="color: #000000">"</span><span style="color: #000000">martin@4ya.cn</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">martin</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setSubject(</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/None.gif" align="top" />email.setMsg(</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/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">添加附件</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.attach(attachment);<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">发送邮件</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.send();</span></div>
<br />
如果需要发送多个附件，只需创建多个EmailAttachement,即可<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">email.attach(attachment1)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.attach(attachment2)</span></div>
<br />
三：发送html格式的邮件<br />
通过HtmlEmail我们可以发送Html格式的邮件：<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">java.lang.Object<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;org.apache.commons.mail.Email<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.mail.MultiPartEmail<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.mail.HtmlEmail</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: #000000">&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">HtmlEmail!</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">&nbsp;HtmlEmail&nbsp;email&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HtmlEmail();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;email.setHostName(</span><span style="color: #000000">"</span><span style="color: #000000">mail.4ya.cn</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;email.setAuthentication(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;username&gt;</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">&lt;password&gt;</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;email.addTo(</span><span style="color: #000000">"</span><span style="color: #000000">martin@4ya.cn</span><span style="color: #000000">"</span><span style="color: #000000">martin</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/None.gif" align="top" /></span><span style="color: #000000">&nbsp;email.setFrom(</span><span style="color: #000000">"</span><span style="color: #000000">martin.xus@gmail.com</span><span style="color: #000000">"</span><span style="color: #000000">martin</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/None.gif" align="top" /></span><span style="color: #000000">&nbsp;email.setSubject(</span><span style="color: #000000">"</span><span style="color: #000000">主题：该邮件包括html格式内容</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;embed&nbsp;the&nbsp;image&nbsp;and&nbsp;get&nbsp;the&nbsp;content&nbsp;id<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;注意这里：embed&nbsp;将帮助我们创建标签如：cid:xxx&nbsp;url</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">URL&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;URL(</span><span style="color: #000000">"</span><span style="color: #000000">/pic/2006/2/25/1340003.gif</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />String&nbsp;cid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;email.embed(url,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">Apache&nbsp;logo</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_443_448_Open_Image" onclick="this.style.display='none'; Codehighlighter1_443_448_Open_Text.style.display='none'; Codehighlighter1_443_448_Closed_Image.style.display='inline'; Codehighlighter1_443_448_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_443_448_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_443_448_Closed_Text.style.display='none'; Codehighlighter1_443_448_Open_Image.style.display='inline'; Codehighlighter1_443_448_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_443_448_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">/**&nbsp;*/</span><span id="Codehighlighter1_443_448_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000">&nbsp;</span><span style="color: #008000">*/</span></span><span id="Codehighlighter1_449_587_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">/**&nbsp;*/</span><span id="Codehighlighter1_449_587_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />set&nbsp;the&nbsp;html&nbsp;message<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />我们看到HtmlEmail&nbsp;extends&nbsp;Email的，它依然有setMsg()，但是这里发送的邮件包括了插入在邮件内容中的图片，所以不能在使用了setMsg(),而要以setHtmlMsg&nbsp;或setTextMsg代码<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />*</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />email.setHtmlMsg(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;html&gt;The&nbsp;apache&nbsp;logo&nbsp;-&nbsp;&lt;img&nbsp;src=\</span><span style="color: #000000">"</span><span style="color: #000000">cid:</span><span style="color: #000000">"</span><span style="color: #000000">+cid+</span><span style="color: #000000">"</span><span style="color: #000000">\</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/html&gt;</span><span style="color: #000000">"</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" /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;set&nbsp;the&nbsp;alternative&nbsp;message</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.setTextMsg(</span><span style="color: #000000">"</span><span style="color: #000000">Your&nbsp;email&nbsp;client&nbsp;does&nbsp;not&nbsp;support&nbsp;HTML&nbsp;messages</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008000">//</span><span style="color: #008000">set&nbsp;mail</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">email.send();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
四：最后一步 <br />
<font face="Courier New">如果需要实现更复杂authenticator 你可以extends javax.mail.Authenticator</font> ,实现你自己的东西，然后调用<font face="Courier">Email.setAuthenticator(javax.mail.Authenticator&nbsp;newAuthenticator)即可<br />
<br />
这一点jakarta也做了，给我们提供了一个defaultAuthenticator<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">java.lang.Object<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;javax.mail.Authenticator<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.commons.mail.DefaultAuthenticator</span></div>
<br />
覆盖掉该方法，实现你自己的东东 o_o<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">protected</span><span style="color: #000000">&nbsp;javax.mail.PasswordAuthentication&nbsp;getPasswordAuthentication()</span></div>
如果需要运行在web容器里,可能需要辅助的mail.jar和activation.jar包.<br />
可以到我的网盘下载;<a title="下载" href="http://cid-39cce615c2e5d86b.skydrive.live.com/browse.aspx/Public/jar?uc=2">下载</a></font>
<img src ="http://www.blogjava.net/supercrsky/aggbug/170321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-25 15:12 <a href="http://www.blogjava.net/supercrsky/articles/170321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaMail发送邮件的一个例子(全)</title><link>http://www.blogjava.net/supercrsky/articles/170119.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Mon, 24 Dec 2007 09:45:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/170119.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/170119.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/170119.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/170119.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/170119.html</trackback:ping><description><![CDATA[<p>&nbsp;</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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;mail;<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="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Date;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.util.Properties;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.Address;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.Authenticator;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.Message;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.PasswordAuthentication;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.Session;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.Transport;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.internet.InternetAddress;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.mail.internet.MimeMessage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_337_422_Open_Image" onclick="this.style.display='none'; Codehighlighter1_337_422_Open_Text.style.display='none'; Codehighlighter1_337_422_Closed_Image.style.display='inline'; Codehighlighter1_337_422_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_337_422_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_337_422_Closed_Text.style.display='none'; Codehighlighter1_337_422_Open_Image.style.display='inline'; Codehighlighter1_337_422_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_337_422_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">/**&nbsp;*/</span><span id="Codehighlighter1_337_422_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;*&nbsp;发送普通邮件，接受普通邮件&nbsp;发送带有附件的邮件，接收带有附件的邮件&nbsp;发送html形式的邮件，接受html形式的邮件&nbsp;发送带有图片的邮件等做了一个总结。<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test<br />
<img id="Codehighlighter1_442_2652_Open_Image" onclick="this.style.display='none'; Codehighlighter1_442_2652_Open_Text.style.display='none'; Codehighlighter1_442_2652_Closed_Image.style.display='inline'; Codehighlighter1_442_2652_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_442_2652_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_442_2652_Closed_Text.style.display='none'; Codehighlighter1_442_2652_Open_Image.style.display='inline'; Codehighlighter1_442_2652_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_442_2652_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_442_2652_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;邮箱服务器</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;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;host&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">smtp.163.com</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;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;这个是你的邮箱用户名</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;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;username&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/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;你的邮箱密码</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;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;password&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/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;mail_head_name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">this&nbsp;is&nbsp;head&nbsp;of&nbsp;this&nbsp;mail</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;mail_head_value&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">this&nbsp;is&nbsp;head&nbsp;of&nbsp;this&nbsp;mail</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;mail_to&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">zdw@live.cn</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;mail_from&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"*****</span><span style="color: #000000">@163.com</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;mail_subject&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">this&nbsp;is&nbsp;the&nbsp;subject&nbsp;of&nbsp;this&nbsp;test&nbsp;mail</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;mail_body&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">this&nbsp;is&nbsp;the&nbsp;mail_body&nbsp;of&nbsp;this&nbsp;test&nbsp;mail</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;personalName&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/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Test()<br />
<img id="Codehighlighter1_1026_1029_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1026_1029_Open_Text.style.display='none'; Codehighlighter1_1026_1029_Closed_Image.style.display='inline'; Codehighlighter1_1026_1029_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1026_1029_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1026_1029_Closed_Text.style.display='none'; Codehighlighter1_1026_1029_Open_Image.style.display='inline'; Codehighlighter1_1026_1029_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1026_1029_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_1026_1029_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_1033_1059_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1033_1059_Open_Text.style.display='none'; Codehighlighter1_1033_1059_Closed_Image.style.display='inline'; Codehighlighter1_1033_1059_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1033_1059_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1033_1059_Closed_Text.style.display='none'; Codehighlighter1_1033_1059_Open_Image.style.display='inline'; Codehighlighter1_1033_1059_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1033_1059_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">/**&nbsp;*/</span><span id="Codehighlighter1_1033_1059_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;此段代码用来发送普通电子邮件<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;send()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;Exception<br />
<img id="Codehighlighter1_1099_2126_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1099_2126_Open_Text.style.display='none'; Codehighlighter1_1099_2126_Closed_Image.style.display='inline'; Codehighlighter1_1099_2126_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1099_2126_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1099_2126_Closed_Text.style.display='none'; Codehighlighter1_1099_2126_Open_Image.style.display='inline'; Codehighlighter1_1099_2126_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1099_2126_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_1099_2126_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;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_1109_2028_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1109_2028_Open_Text.style.display='none'; Codehighlighter1_1109_2028_Closed_Image.style.display='inline'; Codehighlighter1_1109_2028_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1109_2028_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1109_2028_Closed_Text.style.display='none'; Codehighlighter1_1109_2028_Open_Image.style.display='inline'; Codehighlighter1_1109_2028_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;</span><span id="Codehighlighter1_1109_2028_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_1109_2028_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;Properties&nbsp;props&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Properties();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;获取系统环境</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;Authenticator&nbsp;auth&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Email_Autherticator();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;进行邮件服务器用户认证</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;props.put(</span><span style="color: #000000">"</span><span style="color: #000000">mail.smtp.host</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;host);<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;props.put(</span><span style="color: #000000">"</span><span style="color: #000000">mail.smtp.auth</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">true</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;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Session.getDefaultInstance(props,&nbsp;auth);<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;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置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;MimeMessage&nbsp;message&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;MimeMessage(session);<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;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;message.setContent("foobar,&nbsp;"application/x-foobar");&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件格式</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;message.setSubject(mail_subject);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件主题</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;message.setText(mail_body);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件正文</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;message.setHeader(mail_head_name,&nbsp;mail_head_value);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件标题</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;message.setSentDate(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Date());&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件发送日期</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;Address&nbsp;address&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InternetAddress(mail_from,&nbsp;personalName);<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;message.setFrom(address);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件发送者的地址</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;Address&nbsp;toAddress&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;InternetAddress(mail_to);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置邮件接收方的地址</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;message.addRecipient(Message.RecipientType.TO,&nbsp;toAddress);<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;Transport.send(message);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;发送邮件</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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">send&nbsp;ok!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)<br />
<img id="Codehighlighter1_2053_2123_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2053_2123_Open_Text.style.display='none'; Codehighlighter1_2053_2123_Closed_Image.style.display='inline'; Codehighlighter1_2053_2123_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2053_2123_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2053_2123_Closed_Text.style.display='none'; Codehighlighter1_2053_2123_Open_Image.style.display='inline'; Codehighlighter1_2053_2123_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;</span><span id="Codehighlighter1_2053_2123_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_2053_2123_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;ex.printStackTrace();<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;</span><span style="color: #0000ff">throw</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Exception(ex.getMessage());<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img id="Codehighlighter1_2130_2155_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2130_2155_Open_Text.style.display='none'; Codehighlighter1_2130_2155_Closed_Image.style.display='inline'; Codehighlighter1_2130_2155_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2130_2155_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2130_2155_Closed_Text.style.display='none'; Codehighlighter1_2130_2155_Open_Image.style.display='inline'; Codehighlighter1_2130_2155_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2130_2155_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">/**&nbsp;*/</span><span id="Codehighlighter1_2130_2155_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;用来进行服务器对用户的认证<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Email_Autherticator&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Authenticator<br />
<img id="Codehighlighter1_2214_2509_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2214_2509_Open_Text.style.display='none'; Codehighlighter1_2214_2509_Closed_Image.style.display='inline'; Codehighlighter1_2214_2509_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2214_2509_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2214_2509_Closed_Text.style.display='none'; Codehighlighter1_2214_2509_Open_Image.style.display='inline'; Codehighlighter1_2214_2509_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2214_2509_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_2214_2509_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;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Email_Autherticator()<br />
<img id="Codehighlighter1_2249_2265_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2249_2265_Open_Text.style.display='none'; Codehighlighter1_2249_2265_Closed_Image.style.display='inline'; Codehighlighter1_2249_2265_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2249_2265_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2249_2265_Closed_Text.style.display='none'; Codehighlighter1_2249_2265_Open_Image.style.display='inline'; Codehighlighter1_2249_2265_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;</span><span id="Codehighlighter1_2249_2265_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_2249_2265_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;</span><span style="color: #0000ff">super</span><span style="color: #000000">();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Email_Autherticator(String&nbsp;user,&nbsp;String&nbsp;pwd)<br />
<img id="Codehighlighter1_2324_2379_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2324_2379_Open_Text.style.display='none'; Codehighlighter1_2324_2379_Closed_Image.style.display='inline'; Codehighlighter1_2324_2379_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2324_2379_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2324_2379_Closed_Text.style.display='none'; Codehighlighter1_2324_2379_Open_Image.style.display='inline'; Codehighlighter1_2324_2379_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;</span><span id="Codehighlighter1_2324_2379_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_2324_2379_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;</span><span style="color: #0000ff">super</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;username&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;user;<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;password&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pwd;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;PasswordAuthentication&nbsp;getPasswordAuthentication()<br />
<img id="Codehighlighter1_2444_2506_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2444_2506_Open_Text.style.display='none'; Codehighlighter1_2444_2506_Closed_Image.style.display='inline'; Codehighlighter1_2444_2506_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2444_2506_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2444_2506_Closed_Text.style.display='none'; Codehighlighter1_2444_2506_Open_Image.style.display='inline'; Codehighlighter1_2444_2506_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;</span><span id="Codehighlighter1_2444_2506_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_2444_2506_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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PasswordAuthentication(username,&nbsp;password);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)<br />
<img id="Codehighlighter1_2553_2649_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2553_2649_Open_Text.style.display='none'; Codehighlighter1_2553_2649_Closed_Image.style.display='inline'; Codehighlighter1_2553_2649_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2553_2649_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2553_2649_Closed_Text.style.display='none'; Codehighlighter1_2553_2649_Open_Image.style.display='inline'; Codehighlighter1_2553_2649_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_2553_2649_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_2553_2649_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;Test&nbsp;sendmail&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Test();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_2593_2617_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2593_2617_Open_Text.style.display='none'; Codehighlighter1_2593_2617_Closed_Image.style.display='inline'; Codehighlighter1_2593_2617_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2593_2617_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2593_2617_Closed_Text.style.display='none'; Codehighlighter1_2593_2617_Open_Image.style.display='inline'; Codehighlighter1_2593_2617_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;</span><span id="Codehighlighter1_2593_2617_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_2593_2617_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;sendmail.send();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)<br />
<img id="Codehighlighter1_2642_2646_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2642_2646_Open_Text.style.display='none'; Codehighlighter1_2642_2646_Closed_Image.style.display='inline'; Codehighlighter1_2642_2646_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_2642_2646_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_2642_2646_Closed_Text.style.display='none'; Codehighlighter1_2642_2646_Open_Image.style.display='inline'; Codehighlighter1_2642_2646_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;</span><span id="Codehighlighter1_2642_2646_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_2642_2646_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
经测试在126,163,sina上成功.
<img src ="http://www.blogjava.net/supercrsky/aggbug/170119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-24 17:45 <a href="http://www.blogjava.net/supercrsky/articles/170119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ewebeditor在线编辑器jsp版使用心得 </title><link>http://www.blogjava.net/supercrsky/articles/169719.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sun, 23 Dec 2007 03:07:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/169719.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/169719.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/169719.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/169719.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/169719.html</trackback:ping><description><![CDATA[<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">做项目大家都少不了要跟html在线编辑器打交道，这里我把我的一些使用经验及遇到的问题发出来和大家交流一下。</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">Ewebeditor使用说明： <br />
一、部署方式： <br />
1、直接把压缩目录中的文件拷贝到您的网站发布目录下； <br />
2、配置对应WEB-INF下文件，把eWebEditor文件夹下WEB-INF/web.xml中 <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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">display-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">defaultroot</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">display-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">debugjsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Added&nbsp;to&nbsp;compile&nbsp;JSPs&nbsp;with&nbsp;debug&nbsp;info</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">description</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.apache.jasper.servlet.JspServlet</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">classdebuginfo</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">true</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">3</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">load-on-startup</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">debugjsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">*.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br />
复制到你的应用中的WEB-INF/web.xml中； <br />
3、把WEB-INF下的Style.xml和Button.xml复制到你的应用中的WEB-INF目录下； <br />
4、把eWebEditor/WEB-INF/lib下的dom4j.jar和jspsmartupload.jar包复制到你应用的WEB-INF/lib下； <br />
注：net.jar为ewebeditor原/WEB-INF/classes下的class文件，我把它打包后放到应用的lib下，以免跟其它class混淆； <br />
5、在你要调用编辑器的代码中加入： <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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">IFRAME&nbsp;</span><span style="color: #ff0000">ID</span><span style="color: #0000ff">="eWebEditor1"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="content_html"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="../eWebEditor/eWebEditor.jsp?id=content&amp;style=standard"</span><span style="color: #ff0000">&nbsp;frameborder</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;scrolling</span><span style="color: #0000ff">="no"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="650"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="350"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">IFRAME</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">input&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="hidden"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="content"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
<p></span></span>&nbsp;</p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">在&lt;/head&gt;前加入： <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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;subchk()&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;</span><span style="color: #008000"><br />
<img id="Codehighlighter1_54_119_Open_Image" onclick="this.style.display='none'; Codehighlighter1_54_119_Open_Text.style.display='none'; Codehighlighter1_54_119_Closed_Image.style.display='inline'; Codehighlighter1_54_119_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_54_119_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_54_119_Closed_Text.style.display='none'; Codehighlighter1_54_119_Open_Image.style.display='inline'; Codehighlighter1_54_119_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_54_119_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_54_119_Open_Text"><span style="color: #000000">{&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />document.form1.content.value</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;window.content_html.getHTML();&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000">&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span></div>
<p><br />
提交表单时触发这个函数 <br />
把eWebEditor中的值复制到你的表单中，然后在你的form中调用它： <br />
&lt;form name="form1" onsubmit=" subchk()"&gt; <br />
6、重新启动服务器即可。</span></span></p>
<p><span style="font-family: Comic Sans MS"><span style="font-size: 12pt">二、设置： <br />
界面修改：一般只修改/WEB-INF目录下面的style.xml和button.xml就可以了，button.xml为编辑界面配置文件，如果有菜单显示不全，可以在里面修改大小。 <br />
==================================================== <br />
上传图片路径设置： <br />
//默认上传默认目录为xx/upload/，xx为你的根目录 <br />
//此处设置上传文件保存路径,注意路径要由ROOT开始===3处====================== <br />
//修改此处需修改WEB-INF/Style.xml文件对应处&lt;suploaddir&gt;/upload/&lt;/suploaddir&gt; <br />
//修改此处需修改eWebEditor.jsp文件对应处 <br />
//修改此处需修改upload.jsp文件对应处 <br />
例如要传到根目录的/upload/下面: <br />
upload.jsp中 <br />
String sUploadFilePath="/upload/"; <br />
Style.xml中 <br />
&lt;suploaddir&gt;/upload/&lt;/suploaddir&gt; <br />
eWebEditor.jsp 中 <br />
String sUploadFilePath="../upload/";//设置文件上传后在ewebeditor编辑器中图片显示地址 <br />
这样就好了。 <br />
修改上传文件大小限制，在WEB-INF/style.xml中 <br />
&lt;sfilesize&gt;2000&lt;/sfilesize&gt;//其它文件大小 <br />
&lt;sflashsize&gt;500&lt;/sflashsize&gt;//flash文件大小 <br />
&lt;sremotesize&gt;1000&lt;/sremotesize&gt;//发布内容大小 <br />
&lt;simagesize&gt;1000&lt;/simagesize&gt;//图片文件大小 <br />
&lt;smediasize&gt;1000&lt;/smediasize&gt;//多媒体文件大小 <br />
注意事项： <br />
1、刚部署或调试时出现文件无法上传的情况，可以修改eWebEditor.jsp 中 <br />
String sUploadFilePath="../upload/";值或修改文件中字符，刷新后在改回正常值，即可恢复上传； <br />
2、如果使用utf-8编码，需要在调用的jsp页面头部加入content-Type=&#8221;text/html; charset=utf-8&#8221;，不要使用filter对ewebeditor实行统一"UTF-8"或除gb2312以外的编码； </span></span></p>
<img src ="http://www.blogjava.net/supercrsky/aggbug/169719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-23 11:07 <a href="http://www.blogjava.net/supercrsky/articles/169719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于forward和redirect的区别</title><link>http://www.blogjava.net/supercrsky/articles/167110.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Wed, 12 Dec 2007 00:34:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/167110.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/167110.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/167110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/167110.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/167110.html</trackback:ping><description><![CDATA[<p><font style="color: rgb(0,1,2)" color="#226ddd" size="2"><span style="font-size: 12pt; font-family: Comic Sans MS"><font style="color: rgb(0,1,2)" color="#226ddd" size="2">forward是服务器请求资源，服务器直接访问目标地址的URL，把那个URL的响应内容读取过来，然后把这些内容再发给浏览器，浏览器根本不知道服务器发送的内容是从哪儿来的，所以它的地址栏中还是原来的地址。还有，转发是在web应用程序之内进行的，可以访问web应用程序所设定的内部目录，像是WEB-INF目录，只能在Web应用程序中进行，不能指定至其它的Web应用程序的地址。<br />
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址，一般来说浏览器会用刚才请求的所有参数重新请求，所以session,request参数都可以获取。web应用程序会要求客户端浏览器重新发出请求地址，客户端会重新连接至所指定的地址，因此浏览器的地址会出现重新导向的信息，重新导向后的请求由浏览器发出，所以不能访问Web应用程序中的隐藏目录，像是WEB-INF，重新是由浏览器重新要求一个网页，可以指定至<a onclick="javascript:tagshow(event, '%C6%E4%CB%FB');" href="javascript:;" target="_self"><u><strong>其他</strong></u></a>的Web应用程序地址。</font><font style="color: rgb(0,1,2)" size="2"><br />
<br />
RequestDispatcher.forward()方法和HttpServletResponse.sendRedirect()方法的区别是：前者仅是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址，他是不会改变Request的值，如果你需要在下一个页面中能从中获取新的信息的话，你可以Request.setAttribute()来放置一些标志，这样从下一个页面中获取；后者则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。所以，前者更加高效，在前者可以满足需要时，尽量使用Request Dispatcher.forward()方法，并且，这样也有助于隐藏实际的链接。在有些情况下，比如，需要跳转到一个其它服务器上的资源，则必须使用 HttpServletResponse.sendRequest()方法。<br />
<br />
</font><font style="color: rgb(0,1,2)" size="2">1、forward与include共亨Request范围内的对象,而redirect则不行，即：如果一个javabean被声明为request范围的话，则被forward到的资源也可以访问这个javabean,而redriect则不行。<br />
2、forward与include基本上都是转发到context内部的资源，而redirect可以重定向到外部的资源,如： req.sendRedriect("http://www.baidu.com");<br />
</p>
</font></span></font>
<img src ="http://www.blogjava.net/supercrsky/aggbug/167110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-12 08:34 <a href="http://www.blogjava.net/supercrsky/articles/167110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>跟我学Ant系列(一)</title><link>http://www.blogjava.net/supercrsky/articles/166282.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sat, 08 Dec 2007 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/166282.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/166282.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/166282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/166282.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/166282.html</trackback:ping><description><![CDATA[<p>确认您已经安装了ant.<br />
如果没有安装,可以去这里下载<br />
http://ant.apache.org/<br />
安装后,配置下path就可以了.<br />
把ant目录下的/bin加入系统环境变量中.<br />
开始吧:<br />
<br />
随便找个目录建个测试类:<br />
<span style="font-size: 12pt; font-family: Comic Sans MS">我这里是在G:\ant目录下.<br />
先建个Test.java:<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Test<br />
<img id="Codehighlighter1_18_107_Open_Image" onclick="this.style.display='none'; Codehighlighter1_18_107_Open_Text.style.display='none'; Codehighlighter1_18_107_Closed_Image.style.display='inline'; Codehighlighter1_18_107_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_18_107_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_18_107_Closed_Text.style.display='none'; Codehighlighter1_18_107_Open_Image.style.display='inline'; Codehighlighter1_18_107_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_18_107_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_18_107_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String&nbsp;args[])<br />
<img id="Codehighlighter1_61_105_Open_Image" onclick="this.style.display='none'; Codehighlighter1_61_105_Open_Text.style.display='none'; Codehighlighter1_61_105_Closed_Image.style.display='inline'; Codehighlighter1_61_105_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_61_105_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_61_105_Closed_Text.style.display='none'; Codehighlighter1_61_105_Open_Image.style.display='inline'; Codehighlighter1_61_105_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_61_105_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_61_105_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;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">First&nbsp;Ant&nbsp;Test!</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span></div>
<p><br />
这个程序再简单不过了!</p>
<p>接着在此目录下创建build.xml(名字是固定的):<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 src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="GBK"&nbsp;</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">default属性,在运行ant命令时没有指定target时,默认调用的target</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">project&nbsp;</span><span style="color: #ff0000">default</span><span style="color: #0000ff">="main"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">depends依赖,按依赖顺序执行</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="main"</span><span style="color: #ff0000">&nbsp;depends</span><span style="color: #0000ff">="compile,compress"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">控制台输出回显信息</span><span style="color: #008000">--&gt;</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo</span><span style="color: #0000ff">&gt;</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;Billding&nbsp;the&nbsp;.jar&nbsp;file!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">echo</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">编译target</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compile"</span><span style="color: #0000ff">&gt;</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo</span><span style="color: #0000ff">&gt;</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;compliing&nbsp;the&nbsp;.jar&nbsp;file!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">echo</span><span style="color: #0000ff">&gt;</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">javac&nbsp;</span><span style="color: #ff0000">srcdir</span><span style="color: #0000ff">="."</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">打包target</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">target&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="compress"</span><span style="color: #0000ff">&gt;</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">echo</span><span style="color: #0000ff">&gt;</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;Compressing&nbsp;the&nbsp;.jar&nbsp;file!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">echo</span><span style="color: #0000ff">&gt;</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;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jar&nbsp;</span><span style="color: #ff0000">jarfile</span><span style="color: #0000ff">="Test.jar"</span><span style="color: #ff0000">&nbsp;basedir</span><span style="color: #0000ff">="."</span><span style="color: #ff0000">&nbsp;includes</span><span style="color: #0000ff">="*.class"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">target</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">project</span><span style="color: #0000ff">&gt;</span></div>
<br />
好了准备工作都做好了.<br />
打开命令行,进入当前目录G:\ant<br />
输入:ant<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">Buildfile:&nbsp;build.xml<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="" />compile:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</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;&nbsp;compliing&nbsp;the&nbsp;.jar&nbsp;file!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><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="" />compress:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</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;&nbsp;Compressing&nbsp;the&nbsp;.jar&nbsp;file!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><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="" />main:<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</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;&nbsp;Billding&nbsp;the&nbsp;.jar&nbsp;file!<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">[</span><span style="color: #800000">echo</span><span style="font-weight: bold; color: #800000">]</span><span style="color: #000000"><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="" />BUILD&nbsp;SUCCESSFUL</span></div>
<br />
好了成功了,看看当前目录下是不是多了Test.class和Test.jar文件.已经搞定了.<br />
现在在命令行输入:java -jar Test.jar<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">Failed&nbsp;to&nbsp;load&nbsp;Main-Class&nbsp;manifest&nbsp;attribute&nbsp;from<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />Test.jar</span></div>
</span>有个错误,这已经和ant无关了,改一下jar包里的MANIFEST.MF文件就可以了.<br />
用winrar打开,在最后一行加入<br />
Main-Class: Test<br />
好了搞定.<br />
自己去体验结果吧.
<img src ="http://www.blogjava.net/supercrsky/aggbug/166282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-08 15:03 <a href="http://www.blogjava.net/supercrsky/articles/166282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Display Tag使用小记</title><link>http://www.blogjava.net/supercrsky/articles/164792.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Mon, 03 Dec 2007 02:22:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/164792.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/164792.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/164792.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/164792.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/164792.html</trackback:ping><description><![CDATA[<span style="font-family: Comic Sans MS">用了一段时间的Display Tag，觉得非常好用，可在论坛上发现好像使用这个东东的人挺少的，那偶也来写篇文章。<br />
&nbsp;&nbsp;&nbsp; Display Tag Lib是一个标签库，用来处理jsp网页上的Table，功能非常强，可以对的Table进行分页、数据导出、分组、对列排序等等，反正我在做项目时需要的功能它都给我提供了，而且使用起来非常的方便。能够大大减少代码量。<br />
&nbsp;&nbsp;&nbsp; 介个是Display Tag的官方网站</span><a href="http://displaytag.sourceforge.net/"><span style="font-family: Comic Sans MS">http://displaytag.sourceforge.net</span></a><span style="font-family: Comic Sans MS">。<br />
<br />
&nbsp;&nbsp;&nbsp; 首先当然是要下载它的jar包了，</span><a href="http://displaytag.sourceforge.net/downloads.html"><span style="font-family: Comic Sans MS">这里</span></a><span style="font-family: Comic Sans MS">可以下载到最新的版本。将jar包放到WEB-INF的lib文件夹下。另外还需要五个辅助包：apache的<br />
standard.jar<br />
commons-lang-2.3.jar<br />
commons-logging-1.0.4.jar<br />
commons-beanutils-1.8.0-BETA.jar<br />
commons-collections-3.2.jar包，<br />
更多的辅助包可以在这里</span><a href="http://displaytag.sourceforge.net/dependencies.html"><span style="font-family: Comic Sans MS">下载</span></a><span style="font-family: Comic Sans MS">。<br />
<br />
在web.xml下添加一个filter<br />
&nbsp;&nbsp;&nbsp; &lt;filter&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;exportFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;org.displaytag.filter.ResponseOverrideFilter&lt;/filter-class&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/filter&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; 在jsp页面做一个引用：<br />
&lt;%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; 首先我们定义一个list<br />
&lt;% <br />
&nbsp;List test = new ArrayList( 6 );<br />
&nbsp;test.add( "Test String 1" );<br />
&nbsp;test.add( "Test String 2" );<br />
&nbsp;test.add( "Test String 3" );<br />
&nbsp;test.add( "Test String 4" );<br />
&nbsp;test.add( "Test String 5" );<br />
&nbsp;test.add( "Test String 6" );<br />
&nbsp;request.setAttribute( "test", test ); <br />
%&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; 当我们想在jsp页面上显示这个list时，我们只需要写一句话<br />
&nbsp;&nbsp;&nbsp; &lt;display:table name="test" /&gt;<br />
&nbsp;&nbsp;&nbsp; display tag会自动生成一个table<br />
<br />
&nbsp;&nbsp;&nbsp; 如果list是从控制层抛出来的，name可使用EL表达式表示<br />
&nbsp;&nbsp;&nbsp; &lt;display:table name="${test}" /&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; 这是最简单的display tag的使用，我们可以给它加上样式等，也可以定义显示的列，下面的table显示复杂一些<br />
&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0"&gt;<br />
&nbsp; &lt;display:column property="id" title="ID" class="idcol"/&gt;<br />
&nbsp; &lt;display:column property="name" /&gt;<br />
&nbsp; &lt;display:column property="email" /&gt;<br />
&nbsp; &lt;display:column property="description" title="Comments"/&gt;<br />
&lt;/display:table&gt;<br />
<br />
&nbsp;&nbsp;&nbsp; 如果想要给它加个链接也很简单,下面的代码给name加了连接，并附带id参数，email也自动连接到mailto:XXX<br />
&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0"&gt;<br />
&nbsp; &lt;display:column property="id" title="ID" class="idcol"/&gt;<br />
&nbsp; &lt;display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/&gt;<br />
&nbsp; &lt;display:column property="email" autolink="true"/&gt;<br />
&nbsp; &lt;display:column property="description" title="Comments"/&gt;<br />
&lt;/display:table&gt; </span>
<p><span style="font-family: Comic Sans MS">下面介绍几个Display最常用的功能，更多功能请参考</span><a href="http://displaytag.homeip.net/displaytag-examples-1.1/"><span style="font-family: Comic Sans MS">http://displaytag.homeip.net/displaytag-examples-1.1/</span></a><span style="font-family: Comic Sans MS">。<br />
1. 分页<br />
&nbsp;&nbsp;&nbsp; 如果想对代码分页，只需在display:table标签中添加一项pagesize="每页显示行数"，如<br />
&lt;display:table name="test" pagesize="10"/&gt;</span></p>
<p><span style="font-family: Comic Sans MS">2. 对列排序<br />
&nbsp;&nbsp;&nbsp; display tag可对列进行排序，就是点击列名，对该列的数据进行排序。你只需对想要排序的列添加 sort="true" 就OK，如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数"，可默认对指定的列排序。<br />
&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1"&gt;<br />
&nbsp; &lt;display:column property="id" title="ID" class="idcol" sort="true"/&gt;<br />
&nbsp; &lt;display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/&gt;<br />
&nbsp; &lt;display:column property="email" autolink="true" sort="true"/&gt;<br />
&nbsp; &lt;display:column property="description" title="Comments"/&gt;<br />
&lt;/display:table&gt;<br />
&nbsp;&nbsp; 如果table有分页，Display Tag默认只对当前页进行排序，如果想对整个list排序，可以在display:table之间添加一段代码：<br />
&lt;display:setProperty name="sort.amount" value="list"/&gt;<br />
<br />
3. 导出数据<br />
&nbsp;&nbsp;&nbsp; 在display:table中添加export="true"，看看会出现什么！Display Tag默认会提供三种数据导出方式：CSV、Excel、XML 。<br />
&nbsp;&nbsp;&nbsp; 另外Display Tag还可以导出为PDF格式，在</span><a href="http://prdownloads.sourceforge.net/itext/"><span style="font-family: Comic Sans MS">http://prdownloads.sourceforge.net/itext/</span></a><span style="font-family: Comic Sans MS">下载一个辅助包iText.jar，copy到lib目录下，然后在display:table之间添加一段代码：<br />
&lt;display:setProperty name="export.pdf" value="true"/&gt;，大功告成。</span></p>
<p><span style="font-family: Comic Sans MS">4. Display Tag的属性设置<br />
&nbsp;&nbsp;&nbsp; 前面所说的display:setProperty&nbsp;是一种改变Display Tag属性的方法，但是在每个jsp中都要写太麻烦了。<br />
&nbsp;&nbsp;&nbsp; Display Tag中设置了很多默认的属性，它有一个专门的属性文件，是在它的jar包中的displaytag/properties/TableTag.properties<br />
&nbsp;&nbsp;&nbsp; 想要改变它的默认属性，我们可以在WEB-INF\classes下新建一个文件displaytag.properties，仿照TableTag.properties中属性的格式设置需要修改的属性。<br />
&nbsp;&nbsp;&nbsp; TableTag.properties中的# messages中设置的是显示在页面上的提示信息。默认是英文的，我们可以把它改为中文的。不过这里只能使用unicode，就是说中文字符必须转换为unicode码，这个可以使用jdk自带的native2ascii.exe进行转换。</span></p>
<p><span style="font-family: Comic Sans MS">5. 其它功能<br />
&nbsp;&nbsp;&nbsp; DisplayTag还有一些很实用的小功能，这里提两个。一个是对数据的Format，这是1.1版本添加的新功能，可以使用标签的方式格式化时间、数字、字符串。比如日期，在需要格式化的column标签中添加format="{0,date,yyyy-MM-dd}"，第一个参数为格式化的数据序号，第二个参数是数据类型，数字为number，第三个参数为数据格式。<br />
&nbsp;&nbsp;&nbsp; 另外一个功能是对table数据的合计功能。在table标签中添加 decorator="org.displaytag.decorator.TotalTableDecorator"，然后在想要进行合计的数据列的column标签中添加 total="true"，该列就可以被计算总数了。但这个功能有个缺点，不能用在有分页的时候，它只能合计第一页的数据。<br />
<br />
</span><span style="font-family: Comic Sans MS"><strong>DisplayTag的不足<br />
</strong>&nbsp;&nbsp;&nbsp; 初次使用DisplayTag的人可能会觉得惊喜，但是用久了会发现很多问题，最大的问题是对中文的支持不好，比如如果查询条件中有中文，就无法翻页，无法对中文排序，将中文导出为指定文件时出现乱码等等。这些问题有时候会让人很郁闷，有时候逼得你要去修改它的源代码。下面是对以上几个问题的解决方法：<br />
&nbsp;&nbsp;&nbsp; 1. 对于中文无法翻页、排序，最简单的办法是修改Tomcat下的server.xml文件。找到HTTP的Connector标签，在里面添加一项URIEncoding="..."，引号里面的内容取决于你的页面编码，比如可以是GBK，UTF8等。这样上面两个问题就可以解决了。<br />
&nbsp;&nbsp;&nbsp; 2. 导出为文件：其实这个功能除了中文支持外还有很多其它问题，比如它会将Html标签一起导出、只导出显示的内容，但如果对table进行了decorator，decorator后的内容无法导出。如果想要将中文正确导出，需要修改DisplayTag源代码。<br />
&nbsp;&nbsp;&nbsp; 下载相同版本的源代码，在org.displaytag.export.ExcelView.java文件中找到getMimeType()方法，将此方法修改为 return "application/vnd.ms-excel;charset=GB2312";，修改后导出数据的速度会慢很多，不过将就吧。<br />
&nbsp;&nbsp;&nbsp; 3. 新版的DisplayTag1.1添加了对一次取部分数据的支持，相关的标签包括partialList和size，需要设置partialList="true"和size的大小。具体怎么用偶还没研究。</span></p>
<img src ="http://www.blogjava.net/supercrsky/aggbug/164792.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-03 10:22 <a href="http://www.blogjava.net/supercrsky/articles/164792.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个标准的分页类(用于处理结果集)</title><link>http://www.blogjava.net/supercrsky/articles/164694.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sun, 02 Dec 2007 12:35:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/164694.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/164694.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/164694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/164694.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/164694.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: #0000ff">package</span><span style="color: #000000">&nbsp;com.util;<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="" />@SuppressWarnings(</span><span style="color: #000000">"</span><span style="color: #000000">unused</span><span style="color: #000000">"</span><span style="color: #000000">)<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Page<br />
<img id="Codehighlighter1_65_1955_Open_Image" onclick="this.style.display='none'; Codehighlighter1_65_1955_Open_Text.style.display='none'; Codehighlighter1_65_1955_Closed_Image.style.display='inline'; Codehighlighter1_65_1955_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_65_1955_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_65_1955_Closed_Text.style.display='none'; Codehighlighter1_65_1955_Open_Image.style.display='inline'; Codehighlighter1_65_1955_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span id="Codehighlighter1_65_1955_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_65_1955_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;currentPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;rowPerPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">5</span><span style="color: #000000">;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;totalPage;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;totalRow;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasFirstPage;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasNextPage;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasPreviousPage;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasLastPage;&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;init(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;currentPage,</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;totalRow)<br />
<img id="Codehighlighter1_427_492_Open_Image" onclick="this.style.display='none'; Codehighlighter1_427_492_Open_Text.style.display='none'; Codehighlighter1_427_492_Closed_Image.style.display='inline'; Codehighlighter1_427_492_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_427_492_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_427_492_Closed_Text.style.display='none'; Codehighlighter1_427_492_Open_Image.style.display='inline'; Codehighlighter1_427_492_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_427_492_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_427_492_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.currentPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;currentPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.totalRow&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;totalRow;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getCurrentPage()<br />
<img id="Codehighlighter1_526_551_Open_Image" onclick="this.style.display='none'; Codehighlighter1_526_551_Open_Text.style.display='none'; Codehighlighter1_526_551_Closed_Image.style.display='inline'; Codehighlighter1_526_551_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_526_551_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_526_551_Closed_Text.style.display='none'; Codehighlighter1_526_551_Open_Image.style.display='inline'; Codehighlighter1_526_551_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_526_551_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_526_551_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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;currentPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setCurrentPage(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;currentPage)<br />
<img id="Codehighlighter1_600_637_Open_Image" onclick="this.style.display='none'; Codehighlighter1_600_637_Open_Text.style.display='none'; Codehighlighter1_600_637_Closed_Image.style.display='inline'; Codehighlighter1_600_637_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_600_637_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_600_637_Closed_Text.style.display='none'; Codehighlighter1_600_637_Open_Image.style.display='inline'; Codehighlighter1_600_637_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_600_637_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_600_637_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.currentPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;currentPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getTotalPage()<br />
<img id="Codehighlighter1_674_790_Open_Image" onclick="this.style.display='none'; Codehighlighter1_674_790_Open_Text.style.display='none'; Codehighlighter1_674_790_Closed_Image.style.display='inline'; Codehighlighter1_674_790_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_674_790_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_674_790_Closed_Text.style.display='none'; Codehighlighter1_674_790_Open_Image.style.display='inline'; Codehighlighter1_674_790_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_674_790_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_674_790_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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.totalRow</span><span style="color: #000000">%</span><span style="color: #0000ff">this</span><span style="color: #000000">.rowPerPage&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">?</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.totalRow</span><span style="color: #000000">/</span><span style="color: #0000ff">this</span><span style="color: #000000">.rowPerPage&nbsp;:&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.totalRow</span><span style="color: #000000">/</span><span style="color: #0000ff">this</span><span style="color: #000000">.rowPerPage&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setTotalPage(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;totalPage)<br />
<img id="Codehighlighter1_835_868_Open_Image" onclick="this.style.display='none'; Codehighlighter1_835_868_Open_Text.style.display='none'; Codehighlighter1_835_868_Closed_Image.style.display='inline'; Codehighlighter1_835_868_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_835_868_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_835_868_Closed_Text.style.display='none'; Codehighlighter1_835_868_Open_Image.style.display='inline'; Codehighlighter1_835_868_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_835_868_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_835_868_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.totalPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;totalPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getRowPerPage()<br />
<img id="Codehighlighter1_900_924_Open_Image" onclick="this.style.display='none'; Codehighlighter1_900_924_Open_Text.style.display='none'; Codehighlighter1_900_924_Closed_Image.style.display='inline'; Codehighlighter1_900_924_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_900_924_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_900_924_Closed_Text.style.display='none'; Codehighlighter1_900_924_Open_Image.style.display='inline'; Codehighlighter1_900_924_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_900_924_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_900_924_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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;rowPerPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setRowPerPage(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;rowPerPage)<br />
<img id="Codehighlighter1_971_1006_Open_Image" onclick="this.style.display='none'; Codehighlighter1_971_1006_Open_Text.style.display='none'; Codehighlighter1_971_1006_Closed_Image.style.display='inline'; Codehighlighter1_971_1006_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_971_1006_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_971_1006_Closed_Text.style.display='none'; Codehighlighter1_971_1006_Open_Image.style.display='inline'; Codehighlighter1_971_1006_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_971_1006_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_971_1006_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.rowPerPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;rowPerPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getTotalRow()<br />
<img id="Codehighlighter1_1036_1058_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1036_1058_Open_Text.style.display='none'; Codehighlighter1_1036_1058_Closed_Image.style.display='inline'; Codehighlighter1_1036_1058_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1036_1058_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1036_1058_Closed_Text.style.display='none'; Codehighlighter1_1036_1058_Open_Image.style.display='inline'; Codehighlighter1_1036_1058_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1036_1058_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_1036_1058_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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;totalRow;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setTotalRow(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;totalRow)<br />
<img id="Codehighlighter1_1101_1132_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1101_1132_Open_Text.style.display='none'; Codehighlighter1_1101_1132_Closed_Image.style.display='inline'; Codehighlighter1_1101_1132_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1101_1132_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1101_1132_Closed_Text.style.display='none'; Codehighlighter1_1101_1132_Open_Image.style.display='inline'; Codehighlighter1_1101_1132_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1101_1132_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_1101_1132_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.totalRow&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;totalRow;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;isHasFirstPage()<br />
<img id="Codehighlighter1_1177_1245_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1177_1245_Open_Text.style.display='none'; Codehighlighter1_1177_1245_Closed_Image.style.display='inline'; Codehighlighter1_1177_1245_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1177_1245_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1177_1245_Closed_Text.style.display='none'; Codehighlighter1_1177_1245_Open_Image.style.display='inline'; Codehighlighter1_1177_1245_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1177_1245_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_1177_1245_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">this</span><span style="color: #000000">.getCurrentPage()&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setHasFirstPage(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasFirstPage)<br />
<img id="Codehighlighter1_1300_1339_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1300_1339_Open_Text.style.display='none'; Codehighlighter1_1300_1339_Closed_Image.style.display='inline'; Codehighlighter1_1300_1339_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1300_1339_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1300_1339_Closed_Text.style.display='none'; Codehighlighter1_1300_1339_Open_Image.style.display='inline'; Codehighlighter1_1300_1339_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1300_1339_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_1300_1339_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.hasFirstPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;hasFirstPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;isHasLastPage()<br />
<img id="Codehighlighter1_1385_1466_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1385_1466_Open_Text.style.display='none'; Codehighlighter1_1385_1466_Closed_Image.style.display='inline'; Codehighlighter1_1385_1466_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1385_1466_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1385_1466_Closed_Text.style.display='none'; Codehighlighter1_1385_1466_Open_Image.style.display='inline'; Codehighlighter1_1385_1466_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1385_1466_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_1385_1466_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">this</span><span style="color: #000000">.currentPage&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getTotalPage())<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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setHasLastPage(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasLastPage)<br />
<img id="Codehighlighter1_1519_1556_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1519_1556_Open_Text.style.display='none'; Codehighlighter1_1519_1556_Closed_Image.style.display='inline'; Codehighlighter1_1519_1556_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1519_1556_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1519_1556_Closed_Text.style.display='none'; Codehighlighter1_1519_1556_Open_Image.style.display='inline'; Codehighlighter1_1519_1556_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1519_1556_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_1519_1556_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.hasLastPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;hasLastPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;isHasPreviousPage()<br />
<img id="Codehighlighter1_1596_1659_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1596_1659_Open_Text.style.display='none'; Codehighlighter1_1596_1659_Closed_Image.style.display='inline'; Codehighlighter1_1596_1659_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1596_1659_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1596_1659_Closed_Text.style.display='none'; Codehighlighter1_1596_1659_Open_Image.style.display='inline'; Codehighlighter1_1596_1659_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1596_1659_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_1596_1659_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">this</span><span style="color: #000000">.isHasFirstPage())<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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setHasPreviousPage(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasPreviousPage)<br />
<img id="Codehighlighter1_1720_1765_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1720_1765_Open_Text.style.display='none'; Codehighlighter1_1720_1765_Closed_Image.style.display='inline'; Codehighlighter1_1720_1765_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1720_1765_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1720_1765_Closed_Text.style.display='none'; Codehighlighter1_1720_1765_Open_Image.style.display='inline'; Codehighlighter1_1720_1765_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1720_1765_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_1720_1765_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.hasPreviousPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;hasPreviousPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;isHasNextPage()<br />
<img id="Codehighlighter1_1801_1863_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1801_1863_Open_Text.style.display='none'; Codehighlighter1_1801_1863_Closed_Image.style.display='inline'; Codehighlighter1_1801_1863_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1801_1863_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1801_1863_Closed_Text.style.display='none'; Codehighlighter1_1801_1863_Open_Image.style.display='inline'; Codehighlighter1_1801_1863_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1801_1863_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_1801_1863_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;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">this</span><span style="color: #000000">.isHasLastPage())<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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</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;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&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;setHasNextPage(</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;hasNextPage)<br />
<img id="Codehighlighter1_1916_1953_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1916_1953_Open_Text.style.display='none'; Codehighlighter1_1916_1953_Closed_Image.style.display='inline'; Codehighlighter1_1916_1953_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1916_1953_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1916_1953_Closed_Text.style.display='none'; Codehighlighter1_1916_1953_Open_Image.style.display='inline'; Codehighlighter1_1916_1953_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1916_1953_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_1916_1953_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;</span><span style="color: #0000ff">this</span><span style="color: #000000">.hasNextPage&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;hasNextPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<span style="font-size: 10pt; font-family: Comic Sans MS">示例:一个查询所有用户的方法<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: #0000ff">public</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">User</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;findAllUser(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;currentPage,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;rowPerPage)<br />
<img id="Codehighlighter1_64_323_Open_Image" onclick="this.style.display='none'; Codehighlighter1_64_323_Open_Text.style.display='none'; Codehighlighter1_64_323_Closed_Image.style.display='inline'; Codehighlighter1_64_323_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_64_323_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_64_323_Closed_Text.style.display='none'; Codehighlighter1_64_323_Open_Image.style.display='inline'; Codehighlighter1_64_323_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_64_323_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_64_323_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;Session&nbsp;session&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getHibernateTemplate().getSessionFactory().openSession();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Query&nbsp;query&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.createQuery(</span><span style="color: #000000">"</span><span style="color: #000000">from&nbsp;User&nbsp;u</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;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;startRow&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(currentPage&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;rowPerPage;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query.setFirstResult(startRow);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;query.setMaxResults(rowPerPage);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
把当前页和每页的要显示的行数传入即可.</span></span>
<img src ="http://www.blogjava.net/supercrsky/aggbug/164694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-12-02 20:35 <a href="http://www.blogjava.net/supercrsky/articles/164694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JPA会是ORM的王道吗？</title><link>http://www.blogjava.net/supercrsky/articles/164123.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Thu, 29 Nov 2007 14:08:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/164123.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/164123.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/164123.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/164123.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/164123.html</trackback:ping><description><![CDATA[<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">近几年持久化技术领域异常喧嚣，各种框架雨后春笋般地冒出。例如</span>Spring<span style="font-family: 宋体">对多个持久化技术提供了集成的支持，还通过</span>Spring JDBC<span style="font-family: 宋体">框架对</span>JDBC API<span style="font-family: 宋体">进行简化。</span>Sun<span style="font-family: 宋体">也连接不断地颁布几个持久化规范，如</span>JPA(Java Persistence API)<span style="font-family: 宋体">。</span>JPA<span style="font-family: 宋体">作为</span>Java EE 5.0<span style="font-family: 宋体">平台标准的</span>ORM<span style="font-family: 宋体">规范，将得到所有</span>Java EE<span style="font-family: 宋体">服务器的支持。</span>Sun<span style="font-family: 宋体">这次吸取了之前</span>EJB<span style="font-family: 宋体">规范惨痛失败的经历，在充分吸收现有</span>ORM<span style="font-family: 宋体">框架的基础上，得到了一个易于使用、伸缩性强的</span>ORM<span style="font-family: 宋体">规范。从目前的开发社区的反应上看，</span>JPA<span style="font-family: 宋体">受到了极大的支持和赞扬，</span>JPA<span style="font-family: 宋体">作为</span>ORM<span style="font-family: 宋体">领域标准化整合者的目标应该不难实现。</span></span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; tab-stops: list 42.0pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><strong><span style="font-size: 14pt">一、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt; font-family: 宋体">引子</span></strong></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">荀子在《荀子</span>&#183;<span style="font-family: 宋体">王制》中有云：王夺之人，霸夺之与，强夺之地。什么叫王道？就是仁义，以德待人，把人感动得甘心情愿认你当老大。什么叫霸道？就是你有实力，以力服人，谁不服就把他打服为止。从哲学上说，王道是正道，当然正道须以实力为基础。王道中也包含霸道，但王道顺势而行。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">最近，笔者查看了</span>JPA<span style="font-family: 宋体">（</span>java <span style="font-family: 宋体">持久性</span>API)<span style="font-family: 宋体">的相关规范，作为</span>EJB3.0<span style="font-family: 宋体">的重要组成部分，</span>JPA<span style="font-family: 宋体">还是很值得关注的。看完规范，感觉</span>JPA<span style="font-family: 宋体">还是比较的单一，其目标就是实现</span>Java <span style="font-family: 宋体">持久性的通用。</span>JPA<span style="font-family: 宋体">采用纯</span>POJO<span style="font-family: 宋体">的方式实现，更多的是采用</span>Java 5<span style="font-family: 宋体">注释（</span>Annotation<span style="font-family: 宋体">），它利用</span> Java 5 <span style="font-family: 宋体">中的注释和对象</span>/<span style="font-family: 宋体">关系映射，为数据持久化提供了更简单、易用的编程方式。</span>JPA<span style="font-family: 宋体">的优势是多供应商的支持，可以运行在容器之中，也可以运行于容器之外，这就是其显著的优点。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">Java&#8482; Platform<span style="font-family: 宋体">，</span> Enterprise Edition (Java EE 5)<span style="font-family: 宋体">的设计方法，充分利用了</span> Enterprise JavaBeans&#8482; (EJB) 3.0 <span style="font-family: 宋体">新的</span> Java Persistence API (JPA)<span style="font-family: 宋体">特性。</span>JPA <span style="font-family: 宋体">提供了一种标准的对象关系映射解决方案，该解决方案避免了依赖第三方框架（如</span> Hibernate<span style="font-family: 宋体">）。</span>Java EE 5 <span style="font-family: 宋体">许多新功能都包含在经过修补的</span> EJB <span style="font-family: 宋体">架构中，其突出特性之一是</span> JPA<span style="font-family: 宋体">。由于具有容器内和容器外持久性选项，</span>JPA <span style="font-family: 宋体">为</span> J2EE <span style="font-family: 宋体">软件架构师带来一系列全新设计选择。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">受到了极大的支持和赞扬，那到</span>JPA<span style="font-family: 宋体">作为</span>ORM<span style="font-family: 宋体">领域标准化整合者的目标应该能实现吗？能成来</span>ORM<span style="font-family: 宋体">的王道吗？</span></span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; tab-stops: list 42.0pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><strong><span style="font-size: 14pt">二、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt">JPA</span></strong><strong><span style="font-size: 14pt; font-family: 宋体">来了</span></strong></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">通过</span>JDK 5.0<span style="font-family: 宋体">注解或</span>XML<span style="font-family: 宋体">描述对象－关系表的映射关系，并将运行期的实体对象持久化到数据库中，图</span> 1<span style="font-family: 宋体">很好地描述了</span>JPA</span></span><span style="font-family: 宋体"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">的结构：<br />
</span></span></span></p>
<p style="text-indent: 21pt; text-align: center" align="center"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体"><img height="383" alt="" src="http://www.blogjava.net/images/blogjava_net/sterning/JPA-P1.jpg" width="566" border="0" /><br />
图</span>1.JPA<span style="font-family: 宋体">的结构图</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">Sun<span style="font-family: 宋体">引入新的</span>JPA ORM<span style="font-family: 宋体">规范出于两个原因：其一，简化现有</span>Java EE<span style="font-family: 宋体">和</span>Java SE<span style="font-family: 宋体">应用的对象持久化的开发工作；其二，</span>Sun<span style="font-family: 宋体">希望整合对</span>ORM<span style="font-family: 宋体">技术，实现天下归一。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">由</span>EJB 3.0<span style="font-family: 宋体">软件专家组开发，作为</span>JSR-220<span style="font-family: 宋体">实现的一部分。但它不囿于</span>EJB 3.0<span style="font-family: 宋体">，你可以在</span>Web<span style="font-family: 宋体">应用、甚至桌面应用中使用。</span>JPA<span style="font-family: 宋体">的宗旨是为</span>POJO<span style="font-family: 宋体">提供持久化标准规范，由此可见，经过这几年的实践探索，能够脱离容器独立运行，方便开发和测试的理念已经深入人心了。目前</span>Hibernate 3.2<span style="font-family: 宋体">、</span>TopLink 10.1.3<span style="font-family: 宋体">以及</span>OpenJPA<span style="font-family: 宋体">都提供了</span>JPA<span style="font-family: 宋体">的实现。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">的总体思想和现有</span>Hibernate<span style="font-family: 宋体">、</span>TopLink<span style="font-family: 宋体">，</span>JDO<span style="font-family: 宋体">等</span>ORM<span style="font-family: 宋体">框架大体一致。总的来说，</span>JPA<span style="font-family: 宋体">包括以下</span>3<span style="font-family: 宋体">方面的技术：</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">ORM<span style="font-family: 宋体">映射元数据，</span>JPA<span style="font-family: 宋体">支持</span>XML<span style="font-family: 宋体">和</span>JDK 5.0<span style="font-family: 宋体">注解两种元数据的形式，元数据描述对象和表之间的映射关系，框架据此将实体对象持久化到数据库表中；</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA <span style="font-family: 宋体">的</span>API<span style="font-family: 宋体">，用来操作实体对象，执行</span>CRUD<span style="font-family: 宋体">操作，框架在后台替我们完成所有的事情，开发者从繁琐的</span>JDBC<span style="font-family: 宋体">和</span>SQL<span style="font-family: 宋体">代码中解脱出来。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">查询语言，这是持久化操作中很重要的一个方面，通过面向对象而非面向数据库的查询语言查询数据，避免程序的</span>SQL<span style="font-family: 宋体">语句紧密耦合。</span></span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; tab-stops: list 42.0pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><strong><span style="font-size: 14pt">三、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt">JPA</span></strong><strong><span style="font-size: 14pt; font-family: 宋体">的优势</span></strong></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">1 <span style="font-family: 宋体">标准化</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA <span style="font-family: 宋体">是</span> JCP <span style="font-family: 宋体">组织发布的</span> Java EE <span style="font-family: 宋体">标准之一，因此任何声称符合</span> JPA <span style="font-family: 宋体">标准的框架都遵循同样的架构，提供相同的访问</span> API<span style="font-family: 宋体">，这保证了基于</span>JPA<span style="font-family: 宋体">开发的企业应用能够经过少量的修改就能够在不同的</span>JPA<span style="font-family: 宋体">框架下运行。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">2 <span style="font-family: 宋体">对容器级特性的支持</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA <span style="font-family: 宋体">框架中支持大数据集、事务、并发等容器级事务，这使得</span> JPA <span style="font-family: 宋体">超越了简单持久化框架的局限，在企业应用发挥更大的作用。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">3 <span style="font-family: 宋体">简单易用，集成方便</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">的主要目标之一就是提供更加简单的编程模型：在</span>JPA<span style="font-family: 宋体">框架下创建实体和创建</span>Java <span style="font-family: 宋体">类一样简单，没有任何的约束和限制，只需要使用</span> javax.persistence.Entity<span style="font-family: 宋体">进行注释；</span>JPA<span style="font-family: 宋体">的框架和接口也都非常简单，没有太多特别的规则和设计模式的要求，开发者可以很容易的掌握。</span>JPA<span style="font-family: 宋体">基于非侵入式原则设计，因此可以很容易的和其它框架或者容器集成。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">4 <span style="font-family: 宋体">可媲美</span>JDBC<span style="font-family: 宋体">的查询能力</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="color: black; font-family: ˎ̥">JPA</span><span style="color: black; font-family: 宋体">的查询语言是</span><span style="font-family: 宋体">面向对象而非面向数据库的，它以面向对象的自然语法构造查询语句，可以看成是</span></span></span><a href="http://www.qqread.com/z/hibernate/index.html" target="_blank"><span style="color: windowtext; text-decoration: none; text-underline: none"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">Hibernate</span></span></a><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"> HQL</span></span></span><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">的等价物。</span>JPA<span style="font-family: 宋体">定义了独特的</span>JPQL<span style="font-family: 宋体">（</span>Java Persistence Query Language<span style="font-family: 宋体">），</span>JPQL<span style="font-family: 宋体">是</span>EJB QL<span style="font-family: 宋体">的一种扩展，它是针对实体的一种查询语言，操作对象是实体，而不是关系数据库的表，而且能够支持批量更新和修改、</span>JOIN<span style="font-family: 宋体">、</span>GROUP BY<span style="font-family: 宋体">、</span>HAVING <span style="font-family: 宋体">等通常只有</span> SQL <span style="font-family: 宋体">才能够提供的高级查询特性，甚至还能够支持子查询。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">5 <span style="font-family: 宋体">支持面向对象的高级特性</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA <span style="font-family: 宋体">中能够支持面向对象的高级特性，如类之间的继承、多态和类之间的复杂关系，这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用，而不需要自行处理这些特性在关系数据库的持久化。</span></span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; tab-stops: list 42.0pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><strong><span style="font-size: 14pt">四、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt">JPA</span></strong><strong><span style="font-size: 14pt; font-family: 宋体">的供应商</span></strong></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA <span style="font-family: 宋体">的目标之一是制定一个可以由很多供应商实现的</span>API<span style="font-family: 宋体">，并且开发人员可以编码来实现该</span>API<span style="font-family: 宋体">，而不是使用私有供应商特有的</span>API<span style="font-family: 宋体">。因此开发人员只需使用供应商特有的</span>API<span style="font-family: 宋体">来获得</span>JPA<span style="font-family: 宋体">规范没有解决但应用程序中需要的功能。尽可能地使用</span>JPA API<span style="font-family: 宋体">，但是当需要供应商公开但是规范中没有提供的功能时，则使用供应商特有的</span>API<span style="font-family: 宋体">。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">1 Hibernate</span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">是需要</span>Provider<span style="font-family: 宋体">来实现其功能的，</span>Hibernate<span style="font-family: 宋体">就是</span>JPA Provider<span style="font-family: 宋体">中很强的一个，目前来说应该无人能出其右。从功能上来说，</span>JPA<span style="font-family: 宋体">现在就是</span>Hibernate<span style="font-family: 宋体">功能的一个子集。</span>Hibernate <span style="font-family: 宋体">从</span>3.2<span style="font-family: 宋体">开始，就开始兼容</span>JPA<span style="font-family: 宋体">。</span>Hibernate3.2<span style="font-family: 宋体">获得了</span>Sun TCK<span style="font-family: 宋体">的</span>JPA(Java Persistence API) <span style="font-family: 宋体">兼容认证。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">只要熟悉</span>Hibernate<span style="font-family: 宋体">或者其他</span>ORM<span style="font-family: 宋体">框架，在使用</span>JPA<span style="font-family: 宋体">时会发现其实非常容易上手。例如实体对象的状态，在</span>Hibernate<span style="font-family: 宋体">有自由、持久、游离三种，</span>JPA<span style="font-family: 宋体">里有</span>new<span style="font-family: 宋体">，</span>managed<span style="font-family: 宋体">，</span>detached<span style="font-family: 宋体">，</span>removed<span style="font-family: 宋体">，明眼人一看就知道，这些状态都是一一对应的。再如</span>flush<span style="font-family: 宋体">方法，都是对应的，而其他的再如说</span>Query query = manager.createQuery(sql)<span style="font-family: 宋体">，它在</span>Hibernate<span style="font-family: 宋体">里写法上是</span>session<span style="font-family: 宋体">，而在</span>JPA<span style="font-family: 宋体">中变成了</span>manager<span style="font-family: 宋体">，所以从</span>Hibernate<span style="font-family: 宋体">到</span>JPA<span style="font-family: 宋体">的代价应该是非常小的</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">同样，</span>JDO<span style="font-family: 宋体">，也开始兼容</span>JPA<span style="font-family: 宋体">。在</span>ORM<span style="font-family: 宋体">的领域中，看来</span>JPA<span style="font-family: 宋体">已经是王道，规范就是规范。在各大厂商的支持下，</span>JPA<span style="font-family: 宋体">的使用开始变得广泛。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">2 Spring</span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">Spring&nbsp;+&nbsp;Hibernate&nbsp;<span style="font-family: 宋体">常常被称为</span>&nbsp;Java&nbsp;Web&nbsp;<span style="font-family: 宋体">应用人气最旺的框架组合。而在</span>&nbsp;JCP&nbsp;<span style="font-family: 宋体">通过的</span>&nbsp;Web&nbsp;Beans&nbsp;JSR&nbsp;<span style="font-family: 宋体">，却欲将</span>JSF&nbsp;+&nbsp;EJB&nbsp;+&nbsp;JPA&nbsp;<span style="font-family: 宋体">、来自</span>&nbsp;JBoss&nbsp;Seam<span style="font-family: 宋体">（</span>Spring&nbsp;<span style="font-family: 宋体">除外）的一些组件和</span>EJB&nbsp;3<span style="font-family: 宋体">（目前能够提供有基本拦截和依赖注入功能的简化</span>&nbsp;Session&nbsp;Bean&nbsp;<span style="font-family: 宋体">框架）的一个</span>&nbsp;Web&nbsp;<span style="font-family: 宋体">组合进行标准化。如今的</span>&nbsp;Spring&nbsp;2.0&nbsp;<span style="font-family: 宋体">为</span>&nbsp;JPA&nbsp;<span style="font-family: 宋体">提供了完整的</span>&nbsp;EJB&nbsp;<span style="font-family: 宋体">容器契约，允许</span>&nbsp;JPA<span style="font-family: 宋体">在任何环境内可以在</span>&nbsp;Spring&nbsp;<span style="font-family: 宋体">管理的服务层使用（包括</span>&nbsp;Spring&nbsp;<span style="font-family: 宋体">的所有</span>&nbsp;AOP&nbsp;<span style="font-family: 宋体">和</span>&nbsp;DI&nbsp;<span style="font-family: 宋体">增强）。同时，关于下一个</span>Web<span style="font-family: 宋体">应用组合会是</span>&nbsp;EJB<span style="font-family: 宋体">、</span>Spring&nbsp;+&nbsp;Hibernate&nbsp;<span style="font-family: 宋体">还是</span>&nbsp;Spring&nbsp;+&nbsp;JPA&nbsp;<span style="font-family: 宋体">的论战，早已充斥于耳。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">在</span>Spring 2.0.1<span style="font-family: 宋体">中，正式提供对</span>JPA<span style="font-family: 宋体">的支持，这也促成了</span>JPA<span style="font-family: 宋体">的发展，要知道</span>JPA<span style="font-family: 宋体">的好处在于可以分离于容器运行，变得更加的简洁。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">3 OpenJPA</span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">OpenJPA <span style="font-family: 宋体">是</span> Apache <span style="font-family: 宋体">组织提供的开源项目，它实现了</span> EJB 3.0 <span style="font-family: 宋体">中的</span> JPA <span style="font-family: 宋体">标准，为开发者提供功能强大、使用简单的持久化数据管理框架。</span>OpenJPA <span style="font-family: 宋体">封装了和关系型数据库交互的操作，让开发者把注意力集中在编写业务逻辑上。</span>OpenJPA <span style="font-family: 宋体">可以作为独立的持久层框架发挥作用，也可以轻松的与其它</span> Java EE <span style="font-family: 宋体">应用框架或者符合</span> EJB 3.0 <span style="font-family: 宋体">标准的容器集成。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">4 <span style="font-family: 宋体">其它</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">目前支持的实现包括</span>Toplink<span style="font-family: 宋体">、</span>Hibernate Entitymanager<span style="font-family: 宋体">等。</span>TopLink<span style="font-family: 宋体">以前需要收费，如今开源了。</span>OpenJPA<span style="font-family: 宋体">虽然免费，但功能、性能、普及性等方面更加需要加大力度。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">对于</span>EJB<span style="font-family: 宋体">来说，实体</span>Bean<span style="font-family: 宋体">一直是被批评的对象，由于其太复杂和庞大。</span>JPA<span style="font-family: 宋体">的出现，很大程度的分离了复杂性。这让</span>EJB<span style="font-family: 宋体">的推广也变得容易。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">总而言之，</span>JPA<span style="font-family: 宋体">规范主要关注的仅是</span>API<span style="font-family: 宋体">的行为方面，而由各种实现完成大多数性能有关的调优。尽管如此，所有可靠的实现都应该拥有某种数据缓存，以作为选择。但愿不久的将来，</span>JPA<span style="font-family: 宋体">能成为真正的标准。</span></span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; tab-stops: list 42.0pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><strong><span style="font-size: 14pt">五、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size: 14pt; font-family: 宋体">小结</span></strong></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">EJB 3.0<span style="font-family: 宋体">和</span>JPA <span style="font-family: 宋体">毫无疑问将是</span>Java EE 5<span style="font-family: 宋体">的主要卖点。在某些领域中，它们给</span>Java<span style="font-family: 宋体">社区带来了竞争优势，并使</span>Java <span style="font-family: 宋体">在其他领域与竞争对手不分伯仲（因为，不可否认，目前某些领域尚不存在基于标准的方法）。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">过去数年来，</span>Spring Framework<span style="font-family: 宋体">一直是</span>EJB<span style="font-family: 宋体">在企业领域的主要竞争对手。</span>EJB3.0<span style="font-family: 宋体">规范解决了很多促进</span>Spring<span style="font-family: 宋体">兴起的问题。随着它的出现，</span>EJB3.0<span style="font-family: 宋体">毫无疑问比</span>Spring<span style="font-family: 宋体">提供了更好的开发体验——最引人注目的优势是它不需要配置文件。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">提供一种标准的</span>OR<span style="font-family: 宋体">映射解决方案，该解决方案完全集成到</span>EJB3<span style="font-family: 宋体">。</span>0<span style="font-family: 宋体">兼容的容器中。</span>JPA<span style="font-family: 宋体">的前辈将会继续稳定发展，但是业务应用程序中的</span> raw <span style="font-family: 宋体">使用将可能会减少。实现</span> JPA <span style="font-family: 宋体">兼容的实体管理器似乎很可能是此类技术的发展方向。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">Java EE<span style="font-family: 宋体">系列规范的较大问题与</span>JPA<span style="font-family: 宋体">没有任何关系。</span>Java EE <span style="font-family: 宋体">系列规范的问题涉及到</span> Web<span style="font-family: 宋体">和</span>EJB<span style="font-family: 宋体">容器之间的集成。</span>Spring<span style="font-family: 宋体">在此领域仍然具有主要竞争优势。</span>JBoss<span style="font-family: 宋体">的</span>Seam<span style="font-family: 宋体">项目尝试使用自定义的方法来解决这一问题。</span>Caucho Resin<span style="font-family: 宋体">应用服务器试图扩展容器边界并支持在</span>Web<span style="font-family: 宋体">容器中使用</span>@EJB<span style="font-family: 宋体">注释。我们希望</span>Java EE 5.1<span style="font-family: 宋体">将解决层集成的问题，为我们提供一个全面而标准的依赖性注入方法。</span></span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">在不久的将来，</span>Sun<span style="font-family: 宋体">可能会将</span>JPA<span style="font-family: 宋体">作为一个单独的</span>JSR<span style="font-family: 宋体">对待，同时</span>JPA<span style="font-family: 宋体">还可能作为</span></span></span><a href="http://www.qqread.com/keys/java/index.html" target="_blank"><span style="color: windowtext; text-decoration: none; text-underline: none"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">Java</span></span></a><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"> SE</span></span></span><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">的一部分。不过这些都不太重要，重要的是，我们现在已经可以在脱离容器的情况下、在</span>Java SE<span style="font-family: 宋体">应用中使用</span>JPA<span style="font-family: 宋体">了。</span>&nbsp;</span></span></p>
<p style="text-indent: 21pt"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">JPA<span style="font-family: 宋体">已经作为一项对象持久化的标准，不但可以获得</span>Java EE<span style="font-family: 宋体">应用</span></span></span><a href="http://www.qqread.com/network/server/index.html" target="_blank"><span style="color: windowtext; font-family: 宋体; text-decoration: none; text-underline: none"><span style="font-size: 12pt"><span style="font-family: Comic Sans MS">服务器</span></span></a></span><span style="font-size: 12pt"><span style="font-family: Comic Sans MS"><span style="font-family: 宋体">的支持，还可以直接在</span>Java SE<span style="font-family: 宋体">中使用。开发者将无需在现有多种</span>ORM<span style="font-family: 宋体">框架中艰难地选择，按照</span>Sun<span style="font-family: 宋体">的预想，现有</span>ORM<span style="font-family: 宋体">框架头顶的光环将渐渐暗淡，不再具有以往的吸引力。</span></span></span></p>
<img src ="http://www.blogjava.net/supercrsky/aggbug/164123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-11-29 22:08 <a href="http://www.blogjava.net/supercrsky/articles/164123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在MyEclipse中构造新的jsp&amp;xml...etc模板(原创)</title><link>http://www.blogjava.net/supercrsky/articles/163648.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Wed, 28 Nov 2007 03:24:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/163648.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/163648.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/163648.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/163648.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/163648.html</trackback:ping><description><![CDATA[首先随便打开一个jsp页,在网页中单击右键选择:preferences<br />
打开后如图所示,找到jsp template选项.<br />
<img height="768" alt="" src="http://www.blogjava.net/images/blogjava_net/supercrsky/1.JPG" width="1024" border="0" /> 选择new,在弹出的提示框,输入如图所示内容,当然输入你想要的就可以了.我这里是 struts2. <br />
<img height="768" alt="" src="http://www.blogjava.net/images/blogjava_net/supercrsky/2.JPG" width="1024" border="0" /> 点击ok就可以了. 下一步注意在创建的时候,一定要选择Basic Jsp,如图所示: <br />
<img height="768" alt="" src="http://www.blogjava.net/images/blogjava_net/supercrsky/3.JPG" width="1024" border="0" /> 在接下来的页面里随便输入jsp的名字,然后next: <br />
<img height="768" alt="" src="http://www.blogjava.net/images/blogjava_net/supercrsky/4.JPG" width="1024" border="0" /> 选择你想要的模板(其中出现了刚才新添加的模板),点击Finish就ok了. 对于xml...etc其实都是一样的,比如xml,只需要打开一个xml文件,在上面右键找到相应属性,按上述类似步骤配置即可. 这样做可以简化我们的开发,提高效率. 
 <img src ="http://www.blogjava.net/supercrsky/aggbug/163648.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-11-28 11:24 <a href="http://www.blogjava.net/supercrsky/articles/163648.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>过滤器的工作方式</title><link>http://www.blogjava.net/supercrsky/articles/163358.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Mon, 26 Nov 2007 15:59:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/163358.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/163358.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/163358.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/163358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/163358.html</trackback:ping><description><![CDATA[<span style="font-size: 12pt"><span style="font-size: 12pt">&nbsp;从J2EE1.3开始，Servlet2.3规范中加入了对过滤器的支持。过滤器能够对目标资源的请求和响应进行截取。过滤器的工作方式分为四种，下面让我们分别来看看这四种过滤器的工作方式：<br />
1、request过滤器<br />
&nbsp;&nbsp;&nbsp; 这种过滤器的工作方式比较简单，大家也经常遇到，如下图所示：</span><br />
<img style="display: block; margin: 0px auto 10px; text-align: center" height="153" alt="" src="http://www.java3z.com/cwbwebhome/article/article2/img5/116d3251815.jpg" width="322" border="0" /></span><span style="font-size: 12pt">以下是web.xml文件配置方式：</span><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: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xx.MyFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源一</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<span style="font-size: 10.5pt; font-family: 'Times New Roman'"><font style="font-size: 12pt" size="2">下面我们更改一下web.xml文件的配置，如下方式：</font></span><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: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xx.MyFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源一</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源二</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
也就是说此过滤器对目标资源一和目标资源二<span style="color: rgb(255,0,0)">都</span>进行过滤，然后当目标资源一被访问的时候我们将请求<span style="color: rgb(255,0,0)">转发</span>给目标资源二，那么这个时候过滤器是怎么工作的呢？如下图所示：<br />
<br />
<img style="display: block; margin: 0px auto 10px; text-align: center" height="203" alt="" src="http://www.java3z.com/cwbwebhome/article/article2/img5/116d3278215.jpg" width="482" border="0" /><font size="2">&nbsp;&nbsp;&nbsp; <span style="font-size: 12pt">我们可以看到，当我们访问目标资源一时过滤器截取了请求，然后再转发给目标资源一，然后再转发给目标资源二，从图中我们可以看到过滤器<span style="color: rgb(255,0,0)">没有截取转发到目标资源二的请求，<span style="color: rgb(0,0,0)">但是我们已经在web.xml文件中配置了该过滤器对目标资源二的过滤，为什么又没有起到过滤作用呢？<br />
<br />
&nbsp;&nbsp;&nbsp; 答案就在于，目标资源一是客户端直接访问，而目标资源二是被转发过来的，这时过滤器就不能过滤目标资源二。如果你直接访问目标资源二，你会发现该过滤器起到了作用!<br />
&nbsp;&nbsp;&nbsp; 我们上面的web.xml文件配置与以下方式等价：</span></span></span><span style="color: rgb(255,0,0)"><span style="color: rgb(0,0,0)"><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: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xx.MyFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filte-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源一</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">REQUEST</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源二</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">REQUEST</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<span class="STYLE3"><span style="font-size: 12pt"><span class="STYLE3">这种方式的配置，说明只有<span style="color: rgb(255,0,0)">直接访问该目标资源时</span>该过滤器才会起作用，<span style="color: rgb(255,0,0)">对转发到该目标资源的请求将忽略不处理</span>。<br />
&nbsp;&nbsp;&nbsp; 那如果我想对转发到目标资源二的请求进行过滤，那怎么办呢？答案见，下一种过滤器，forward过滤器</span>。<br />
<br />
<font size="5"><span style="font-weight: bold">2、forward过滤器<br />
&nbsp;&nbsp;&nbsp; </span><font style="font-family: 宋体" size="4">我们将web.xml文件的配置修改如下：</font></font></span></span><font size="5"><span style="font-weight: bold"><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: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">xx.MyFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源一</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">REQUEST</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源二</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">FORWARD</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
工作方式如下图所示：<br />
<img style="display: block; margin: 0px auto 10px; width: 547px; height: 187px; text-align: center" height="187" alt="" src="http://www.java3z.com/cwbwebhome/article/article2/img5/116d34109da.jpg" width="500" border="0" /><font size="2"><span style="font-size: 12pt"><font size="2">&nbsp;&nbsp;&nbsp; <span style="color: rgb(255,0,0)">我们看对目标资源二过滤的配置方式，这时过滤方式为forward，也就是说对转发到目标资源二的请求过滤，如果直接访问目标资源二，过滤器将不起作用。<br />
<br />
<font style="font-weight: bold" size="5"><span style="color: rgb(0,0,0)">3、include过滤器</span></font><br />
&nbsp;&nbsp;&nbsp; <span style="color: rgb(0,0,0)">理解了forward过滤器之后，include过滤器就不难理解了。以下方式：</span></span></font></span><span style="color: rgb(255,0,0)"><span style="color: rgb(0,0,0)"><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: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">目标资源二</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">INCLUDE</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<span style="font-size: 12pt"><br />
<span class="STYLE3">&nbsp;<span style="color: rgb(255,0,0)"><span style="color: rgb(0,0,0)">此表示对包含了目标资源二的请求过滤，如果直接访问目标资源二，则此过滤器将不起作用。</span><br />
<span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp; include包含以下语句：</span><br />
<span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp; 在JSP页面中的动作：&lt;jsp:include page=.......</span></span></span><span style="color: rgb(255,0,0)"><br />
<span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp; 在Java代码中的request.getRequestDispatcher("....").include</span><br />
&nbsp;&nbsp;&nbsp; 注意：如果目标资源一通过&lt;%@ include file="目标资源二"%&gt;指令包含，这时此过滤器<span style="text-decoration: underline">不工作</span>。<br />
<br />
<font style="font-weight: bold; color: rgb(0,0,0); font-family: 宋体" size="5">4、error过滤器<br />
&nbsp;&nbsp;&nbsp; </font><font style="color: rgb(0,0,0); font-family: 宋体" size="5"><font size="2">当我们访问一个web目标资源时，如果服务器没有找到该目标资源，那么服务器就会给出一个404错误代码。如果我们给404错误代码定义一个页面，那么当404错误发生时就会调用该页面，请看以下web.xml文件的配置：</font></font></span></span><span style="color: rgb(255,0,0)"><font style="font-weight: bold; color: rgb(0,0,0); font-family: 宋体" size="5"><font size="2"><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: #0000ff">&lt;</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">myFilter</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/error.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">ERROR</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">dispatcher</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">error-page</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">error-code</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">404</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">error-code</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">location</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/error.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">location</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">error-page</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<span style="font-size: 12pt"><font style="color: rgb(0,0,0); font-family: 宋体"><font style="font-family: 宋体"><span class="STYLE2">当我们访问一个不存在的文件时，就会访问error.jsp，但是配置了过滤器对错误页面进行过滤，所以过滤器先接受到请求，然后再转发给error.jsp。</span></font></font> </span>
<p class="STYLE2"><span style="font-family: 'Times New Roman'"><span style="color: rgb(255,0,0)"><span style="font-size: 12pt">&nbsp;&nbsp;&nbsp; 如果我们访问一个已经存在的页面，会不会调用error.jsp呢？如果这个页面中有response.sendError(404,"出错了！");那么该错误页面仍然会被调用，过滤器也会工作。</span><font face="宋体" color="#000000"></font></span></span></p>
<br />
</font></font></span></span></span></font></span></font></span></span></font>
<img src ="http://www.blogjava.net/supercrsky/aggbug/163358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-11-26 23:59 <a href="http://www.blogjava.net/supercrsky/articles/163358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat布署web应用程序的两种方法</title><link>http://www.blogjava.net/supercrsky/articles/162780.html</link><dc:creator>々上善若水々</dc:creator><author>々上善若水々</author><pubDate>Sat, 24 Nov 2007 00:58:00 GMT</pubDate><guid>http://www.blogjava.net/supercrsky/articles/162780.html</guid><wfw:comment>http://www.blogjava.net/supercrsky/comments/162780.html</wfw:comment><comments>http://www.blogjava.net/supercrsky/articles/162780.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/supercrsky/comments/commentRss/162780.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/supercrsky/services/trackbacks/162780.html</trackback:ping><description><![CDATA[<span style="font-size: 14pt; color: #000000; font-family: Times New Roman">1.copy到tomcat安装目录webapps下.<br />
&nbsp;<br />
2.在tomcat安装目录下,找到tomcat/conf/server.xml,打开并编辑.<br />
在<br />
&lt;Host&gt;&lt;/Host&gt;<br />
之间加上如下代码:<br />
&nbsp;&lt;Context docBase="G:\eclipse\6.0\jsfConverter\WebRoot" path="/jsfConverter" reloadable="true" /&gt;<br />
&lt;!--WebRoot你的网站根路径，一般都是WebRoot或Webapp--&gt;<br />
其中docBase代表你的web程序源.<br />
path代表浏览器访问的根路径.<br />
reloadable表示你修改java代码时,服务器是否自动重启.<br />
一般在开发时设为true.<br />
在工程正式打包发布时设为false.<br />
&nbsp;</span>
<img src ="http://www.blogjava.net/supercrsky/aggbug/162780.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/supercrsky/" target="_blank">々上善若水々</a> 2007-11-24 08:58 <a href="http://www.blogjava.net/supercrsky/articles/162780.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>