﻿<?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-DreamAngel-随笔分类-JSP</title><link>http://www.blogjava.net/dreamangel/category/24120.html</link><description>如果你希望成功，以恒心为良友，以经验为参谋，以小心为兄弟，以希望为哨兵。</description><language>zh-cn</language><lastBuildDate>Mon, 02 Sep 2013 13:04:31 GMT</lastBuildDate><pubDate>Mon, 02 Sep 2013 13:04:31 GMT</pubDate><ttl>60</ttl><item><title>JSP上传图片并自动生成缩略图</title><link>http://www.blogjava.net/DreamAngel/archive/2013/09/02/403575.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Mon, 02 Sep 2013 12:43:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2013/09/02/403575.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/403575.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2013/09/02/403575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/403575.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/403575.html</trackback:ping><description><![CDATA[1、uploadimage.jsp 
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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;language</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*,cn.oof.database.*,cn.oof.house.*</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />SmartUpload&nbsp;mySmartUpload&nbsp;</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SmartUpload();<br /></span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;file_size_max</span><span style="color: #000000">=</span><span style="color: #000000">4000000</span><span style="color: #000000">;<br />String&nbsp;fileName2</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">,ext</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">,testvar</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">;<br />String&nbsp;url</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">uploadfile/images/</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">应保证在根目录中有此目录的存在<br /></span><span style="color: #008000">//</span><span style="color: #008000">初始化</span><span style="color: #008000"><br /></span><span style="color: #000000">mySmartUpload.initialize(pageContext);<br /></span><span style="color: #008000">//</span><span style="color: #008000">只允许上载此类文件</span><span style="color: #008000"><br /></span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;{<br />&nbsp;mySmartUpload.setAllowedFilesList(</span><span style="color: #000000">"</span><span style="color: #000000">jpg,gif</span><span style="color: #000000">"</span><span style="color: #000000">);<br /></span><span style="color: #008000">//</span><span style="color: #008000">上载文件&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;mySmartUpload.upload();<br />}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e){<br /></span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">SCRIPT&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">javascript</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">只允许上传.jpg和.gif类型图片文件</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;window.location</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">upfile.jsp</span><span style="color: #000000">'</span><span style="color: #000000">;<br />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />}<br /></span><span style="color: #0000ff">try</span><span style="color: #000000">{<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;com.jspsmart.upload.File&nbsp;myFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;mySmartUpload.getFiles().getFile(</span><span style="color: #000000">0</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(myFile.isMissing()){</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">SCRIPT&nbsp;language</span><span style="color: #000000">=</span><span style="color: #000000">javascript</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;alert(</span><span style="color: #000000">"</span><span style="color: #000000">请先选择要上传的文件</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;window.location</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">upfile.jsp</span><span style="color: #000000">'</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;%</span><span style="color: #000000">}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">String&nbsp;myFileName=myFile.getFileName();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取得上载的文件的文件名</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;ext</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myFile.getFileExt();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取得后缀名</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;file_size</span><span style="color: #000000">=</span><span style="color: #000000">myFile.getSize();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">取得文件的大小&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;String&nbsp;saveurl</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(file_size</span><span style="color: #000000">&lt;</span><span style="color: #000000">file_size_max){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">更改文件名，取得当前上传时间的毫秒数值</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Calendar&nbsp;calendar&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Calendar.getInstance();<br />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;filename&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;String.valueOf(calendar.getTimeInMillis());&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;saveurl</span><span style="color: #000000">=</span><span style="color: #000000">request.getRealPath(</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">url;<br />&nbsp;&nbsp;&nbsp;&nbsp;saveurl</span><span style="color: #000000">+=</span><span style="color: #000000">filename</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">ext;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">保存路径</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">out.print(filename);<br /></span><span style="color: #008000">//</span><span style="color: #008000">-----------------------上传完成，开始生成缩略图-------------------------&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;java.io.File&nbsp;file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;java.io.File(saveurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">读入刚才上传的文件</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;newurl</span><span style="color: #000000">=</span><span style="color: #000000">request.getRealPath(</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">url</span><span style="color: #000000">+</span><span style="color: #000000">filename</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">_min.</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">ext;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">新的缩略图保存地址</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Image&nbsp;src&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;javax.imageio.ImageIO.read(file);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">构造Image对象</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;tagsize</span><span style="color: #000000">=</span><span style="color: #000000">200</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;old_w</span><span style="color: #000000">=</span><span style="color: #000000">src.getWidth(</span><span style="color: #0000ff">null</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得到源图宽</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;old_h</span><span style="color: #000000">=</span><span style="color: #000000">src.getHeight(</span><span style="color: #0000ff">null</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;new_w</span><span style="color: #000000">=</span><span style="color: #000000">0</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;new_h</span><span style="color: #000000">=</span><span style="color: #000000">0</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">得到源图长</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;tempsize;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">float</span><span style="color: #000000">&nbsp;tempdouble;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(old_w</span><span style="color: #000000">&gt;</span><span style="color: #000000">old_h){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tempdouble</span><span style="color: #000000">=</span><span style="color: #000000">old_w</span><span style="color: #000000">/</span><span style="color: #000000">tagsize;<br />&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tempdouble</span><span style="color: #000000">=</span><span style="color: #000000">old_h</span><span style="color: #000000">/</span><span style="color: #000000">tagsize;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;new_w</span><span style="color: #000000">=</span><span style="color: #000000">Math.round(old_w</span><span style="color: #000000">/</span><span style="color: #000000">tempdouble);<br />&nbsp;&nbsp;&nbsp;&nbsp;new_h</span><span style="color: #000000">=</span><span style="color: #000000">Math.round(old_h</span><span style="color: #000000">/</span><span style="color: #000000">tempdouble);</span><span style="color: #008000">//</span><span style="color: #008000">计算新图长宽</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;tag&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);<br />&nbsp;&nbsp;&nbsp;&nbsp;tag.getGraphics().drawImage(src,</span><span style="color: #000000">0</span><span style="color: #000000">,</span><span style="color: #000000">0</span><span style="color: #000000">,new_w,new_h,</span><span style="color: #0000ff">null</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">绘制缩小后的图</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;newimage</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(newurl);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">输出到文件流</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;JPEGImageEncoder&nbsp;encoder&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;JPEGCodec.createJPEGEncoder(newimage);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;encoder.encode(tag);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">近JPEG编码</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;newimage.close();&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br />&nbsp;&nbsp;&nbsp;&nbsp;out.print(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;SCRIPT&nbsp;language='javascript'&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;out.print(</span><span style="color: #000000">"</span><span style="color: #000000">alert('上传文件大小不能超过</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">(file_size_max</span><span style="color: #000000">/</span><span style="color: #000000">1000</span><span style="color: #000000">)</span><span style="color: #000000">+</span><span style="color: #000000">"</span><span style="color: #000000">K');</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;out.print(</span><span style="color: #000000">"</span><span style="color: #000000">window.location='upfile.jsp;'</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;out.print(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/SCRIPT&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />}</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e){<br /><br />e.toString();<br /><br />}<br /></span><span style="color: #000000">%&gt;</span><span style="color: #000000">&nbsp;</span></div>2、upload.htm
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">请选择上传的图片</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">table&nbsp;</span><span style="color: #ff0000">border</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;cellpadding</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;cellspacing</span><span style="color: #0000ff">="0"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">height</span><span style="color: #0000ff">="45"</span><span style="color: #ff0000">&nbsp;align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;valign</span><span style="color: #0000ff">="middle"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">form&nbsp;</span><span style="color: #ff0000">action</span><span style="color: #0000ff">="uploadimage.jsp"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #ff0000">&nbsp;enctype</span><span style="color: #0000ff">="multipart/form-data"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="form1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />请选择上传的图片<br />&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">="file"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="file"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></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;name</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 />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">form</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div><img src ="http://www.blogjava.net/DreamAngel/aggbug/403575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2013-09-02 20:43 <a href="http://www.blogjava.net/DreamAngel/archive/2013/09/02/403575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jspSmartUpload上传下载全攻略（2012.8.30最新版）</title><link>http://www.blogjava.net/DreamAngel/archive/2012/08/30/386613.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Thu, 30 Aug 2012 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2012/08/30/386613.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/386613.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2012/08/30/386613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/386613.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/386613.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 安装篇jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件，适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点：1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载，方便。2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法，可以获得全部上传文件的信息（包括文件...&nbsp;&nbsp;<a href='http://www.blogjava.net/DreamAngel/archive/2012/08/30/386613.html'>阅读全文</a><img src ="http://www.blogjava.net/DreamAngel/aggbug/386613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2012-08-30 17:26 <a href="http://www.blogjava.net/DreamAngel/archive/2012/08/30/386613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP获取CPU使用率、系统内存、虚拟机内存等情况(不用JNI)</title><link>http://www.blogjava.net/DreamAngel/archive/2012/08/24/386227.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Fri, 24 Aug 2012 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2012/08/24/386227.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/386227.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2012/08/24/386227.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/386227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/386227.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在Java中，可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息，下面例子可以取得这些信息，并且获得在Windows下的内存使用率。首先编写一个MonitorInfoBean类，用来装载监控的一些信息，包括物理内存、剩余的物理内存、已使用的物理内存、内存使用率等字段，该类的代码如下： Code highlighting produced by Actipro CodeHighligh...&nbsp;&nbsp;<a href='http://www.blogjava.net/DreamAngel/archive/2012/08/24/386227.html'>阅读全文</a><img src ="http://www.blogjava.net/DreamAngel/aggbug/386227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2012-08-24 16:48 <a href="http://www.blogjava.net/DreamAngel/archive/2012/08/24/386227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于多标签浏览器中session共享引发的问题</title><link>http://www.blogjava.net/DreamAngel/archive/2012/06/08/380306.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Fri, 08 Jun 2012 01:33:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2012/06/08/380306.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/380306.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2012/06/08/380306.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/380306.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/380306.html</trackback:ping><description><![CDATA[问题描述：<br />当在标签a中使用用户A登录后，再打开标签b，进入登录界面使用用户B再次进行登录。那么标签a中的登录信息就变成了用户B的登录信息。这种情况显示不是用户希望得到的。<br />两个标签页共用一个session。后一个把前一个的同名attribute域覆盖了，致使数据混乱。 <br />
<p>解决办法：<br />办法一：<br />目标：实现多标签中登录多个用户而互不影响。<br />思路：将用户登录信息，比如用户编号、登录ip等封装到一个对象，然后以一个唯一值（比如登录时间）为key放入HashMap，再将HashMap放入session。<br />首先action中attribute的名字不能重复。</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;避免同一PC多浏览器窗口不同账户共用session</span><span style="color: #008000"><br /></span><span style="color: #000000">Random&nbsp;random&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Random();<br />StringBuffer&nbsp;sid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer();<br />sid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sid.append(System.currentTimeMillis());&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;取系统时间<br /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;加上10为0-9随机数确保sid不重复</span><span style="color: #008000"><br /></span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;sid&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sid.append(random.nextInt(</span><span style="color: #000000">10</span><span style="color: #000000">));<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;把所有需要放进session的attribute放进一个Mapbar&lt;String,&nbsp;Object&gt;<br /></span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;一是便于el中取值、二是便于统一管理</span><span style="color: #008000"><br /></span><span style="color: #000000">Map&nbsp;sessionMap&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HashMap();&nbsp;<br />sessionMap.put(</span><span style="color: #000000">"</span><span style="color: #000000">session_urname</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;urname);<br />session.setAttribute(sid.toString(),&nbsp;sessionMap);<br /><br />String&nbsp;rd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">detail.jsp?sid=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;sid.toString();<br />request.getRequestDispatcher(rd).forward(request,&nbsp;response);</span></div>然后在jsp中用EL取值：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">${sessionScope[param.sid].session_urname}</span></div>给session_urname加上一层Map，看似多余，其实不然。有两点考虑，一是便于EL取值，如果有多个变量需要放到session里，如果不用Map，势必要这样写：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">session.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">name</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;sid.toString(),&nbsp;urname);<br />session.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">pwd</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;sid.toString(),&nbsp;urpassword);</span></div>你也许会想EL中取值时加上前缀呗：
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">${sessionScope[</span><span style="color: #000000">'</span><span style="color: #000000">name</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;param.sid]}</span></div>很可惜EL并不支持+号的字符串连接操作，这样写就不能用EL了；二是把所有需要放入session的变量都放入Map里便于管理，特别是在字段很多的情况下。<br />办法二：<br />目标：退而求其次，打开新标签页进行登录，再切换到旧标签页时，提示页面已失效。如果打开新标签页，地址栏中直接输入主页面地址，则以同一用户进行登录。2个标签页的内容都有效。<br />思路：服务器在创建session时会为每个session分配一个唯一的sessionId，因此我们可以根据它来想办法。首先定义一个public static 类型的HashMap:checkMap。假设我的登录页面为login.jsp，主页面为main.jsp。后台执行登录检查的方法为checkLogin()。当执行登录检查的时候： 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">//</span><span style="color: #008000">获得sessionId</span><span style="color: #008000"><br /></span><span style="color: #000000">String&nbsp;sessionId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;session.getId;<br /></span><span style="color: #008000">//</span><span style="color: #008000">标示页面是否有效的值</span><span style="color: #008000"><br /></span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;checkVal;<br /></span><span style="color: #0000ff">if</span><span style="color: #000000">(checkMap.containsKey(sessionId))&nbsp;{<br />&nbsp;checkVal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Integer)checkMap.get(sessionId)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />}&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;{<br />&nbsp;&nbsp;checkVal&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />}<br />checkMap.put(sessionId,checkVal);</span></div>
<p>当登录成功，进入main.jsp页面时，首先根据sessionId获得checkVal并存入一个页面级的变量。下面就开始判断了，每次标签页获得焦点时（window.onfocus）就将页面中的变量与后台根据sessionId从checkMap中得到的checkVal进行比较，如果不想同，说明该页面已经失效，提示信息并关闭该页面。<br />但是仍有一个问题，window.onfocus不知道为什么在页面获得焦点时会执行很多次?<br /></p><img src ="http://www.blogjava.net/DreamAngel/aggbug/380306.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2012-06-08 09:33 <a href="http://www.blogjava.net/DreamAngel/archive/2012/06/08/380306.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp导出为office文档</title><link>http://www.blogjava.net/DreamAngel/archive/2011/12/23/367050.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Fri, 23 Dec 2011 01:27:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2011/12/23/367050.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/367050.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2011/12/23/367050.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/367050.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/367050.html</trackback:ping><description><![CDATA[<h3>导出word文档</h3>
<p>第一步：编辑好word模版，然后另存为*.htm，比如：liukun.htm。<br />技巧：在需要填写数据的地方最好预填入一些易识别的数据，这样方便后面填写jsp代码。<br />第二步：把htm后缀改为jsp，比如：liukun.jsp。<br />第三步：添加jsp的头，比如：<br />&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#37;&#64;&#112;&#97;&#103;&#101;">%@page</a> contentType="application/msword;charset=GBK"%&gt;<br />如果有import，也要在这里导入。<br />技巧：application/msword;这个参数很重要，有了这个参数，调用这个页面时，就会把页面内容存为word。当然，本地必须安装office。<br />
<h3>导出Excel文档</h3>
<p>只需要在jsp的最上面加上一句话</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"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&lt;%</span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;response.reset();&nbsp;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;response.setContentType(</span><span style="color: #000000">"</span><span style="color: #000000">application/vnd.ms-excel;charset=GBK</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">%&gt;</span></div>
<p>就可以将网页的内容导出为Excel。<br />目前给出的例子为了方便起见，就是使用了纯粹的静态页面，一个table其中有一行是标题，一行是内容，但是实际使用中不可能这么简单，都是保持静态的内容，如果需要保存的内容是从数据库中取出，则只需要循环遍历取出的内容，添加行就行了，假如从数据库中取出的数据存入UserList中，可以使用struts标签进行遍历如下：</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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">table&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="common1"</span><span style="color: #ff0000">&nbsp;cellpadding</span><span style="color: #0000ff">="5"</span><span style="color: #ff0000">&nbsp;cellspacing</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">colspan</span><span style="color: #0000ff">="4"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">CENTER</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;清单</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">CENTER</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">姓名</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">年龄</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">性别</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">住址</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">logic:present&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="UserList"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">logic:iterate&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="user"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="UserList"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean:write&nbsp;</span><span style="color: #ff0000">name&nbsp;</span><span style="color: #0000ff">=&nbsp;"user"</span><span style="color: #ff0000">,property</span><span style="color: #0000ff">="name"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean:write&nbsp;</span><span style="color: #ff0000">name&nbsp;</span><span style="color: #0000ff">=&nbsp;"user"</span><span style="color: #ff0000">,property</span><span style="color: #0000ff">="age"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean:write&nbsp;</span><span style="color: #ff0000">name&nbsp;</span><span style="color: #0000ff">=&nbsp;"user"</span><span style="color: #ff0000">,property</span><span style="color: #0000ff">="sex"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean:write&nbsp;</span><span style="color: #ff0000">name&nbsp;</span><span style="color: #0000ff">=&nbsp;"user"</span><span style="color: #ff0000">,property</span><span style="color: #0000ff">="address"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">logic:iterate</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">logic:present</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;下面是完整的例子，新建一个index.jsp，里面只需要一个超链接&lt;a href = 'DownLoadExcel.jsp'&gt;导出Excel&lt;/a&gt;<br />再新建一个DownLoadExcel.jsp，内容如下：</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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;response.reset();&nbsp;<br />&nbsp;&nbsp;&nbsp;response.setContentType(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">application/vnd.ms-excel;charset=GBK</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);<br /></span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br /><br /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&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 /><br />&nbsp;&nbsp;&nbsp;&nbsp;&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">刷卡消费情况</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">style&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/css"</span><span style="color: #0000ff">&gt;</span><span style="color: #800000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.common1&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">{</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">&nbsp;100%</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-size</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">&nbsp;9pt</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;style-align</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">&nbsp;center</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background-color</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">&nbsp;#ffffff</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">}</span><span style="color: #800000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.formtitle&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">{</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;font-size</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">&nbsp;9pt</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">#a480b2</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">#ffffff</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">30px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text-align</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">&nbsp;center</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">}</span><span style="color: #800000; background-color: #f5f5f5"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">style</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><br />&nbsp;&nbsp;&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 /><br />&nbsp;&nbsp;&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 /><br />&nbsp;&nbsp;&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">="fm"</span><span style="color: #ff0000">&nbsp;method</span><span style="color: #0000ff">="post"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">table&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="common1"</span><span style="color: #ff0000">&nbsp;cellpadding</span><span style="color: #0000ff">="5"</span><span style="color: #ff0000">&nbsp;cellspacing</span><span style="color: #0000ff">="1"</span><span style="color: #ff0000">&nbsp;align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">colspan</span><span style="color: #0000ff">="4"</span><span style="color: #0000ff">&gt;&lt;</span><span style="color: #800000">CENTER</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;清单</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">CENTER</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">姓名</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">年龄</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">性别</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">=formtitle&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">家庭住址</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">张三</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">25</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">男</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">td&nbsp;</span><span style="color: #ff0000">align</span><span style="color: #0000ff">="center"</span><span style="color: #ff0000">&nbsp;nowrap&nbsp;style</span><span style="color: #0000ff">="width:13%"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">北京中关村</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">td</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">tr</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">table</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&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 /><br />&nbsp;&nbsp;&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 /><br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div>
<p>&nbsp;</p>部署好程序，在index.jsp中点击超链接就可以完成导出了！<img src ="http://www.blogjava.net/DreamAngel/aggbug/367050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2011-12-23 09:27 <a href="http://www.blogjava.net/DreamAngel/archive/2011/12/23/367050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP网站访问计数器</title><link>http://www.blogjava.net/DreamAngel/archive/2011/11/18/364242.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Fri, 18 Nov 2011 07:07:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2011/11/18/364242.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/364242.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2011/11/18/364242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/364242.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/364242.html</trackback:ping><description><![CDATA[<p>counter.java 读写文件的一个bean，用于网站读写txt格式计数器</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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;fiombean;<br /><br /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.io.</span><span style="color: #000000">*</span><span style="color: #000000">;<br /><br /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Counter&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Object&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;currentRecord&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;保存文本的变量</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;BufferedReader&nbsp;file;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;BufferedReader对象，用于读取文件数据</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;path;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;文件完整路径名</span><span style="color: #008000"><br /></span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Counter()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;ReadFile方法用来读取文件filePath中的数据，并返回这个数据</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;ReadFile(String&nbsp;filePath)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;FileNotFoundException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filePath;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;创建新的BufferedReader对象</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedReader(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileReader(path));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;returnStr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;读取一行数据并保存到currentRecord变量中</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentRecord&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;file.readLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IOException&nbsp;e)&nbsp;{</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;错误处理</span><span style="color: #008000"><br /></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">读取数据错误.</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(currentRecord&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;如果文件为空</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnStr&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 />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;{</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;文件不为空</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnStr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;currentRecord;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;返回读取文件的数据</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;returnStr;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;ReadFile方法用来将数据counter+1后写入到文本文件filePath中<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;以实现计数增长的功能</span><span style="color: #008000"><br /></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">void</span><span style="color: #000000">&nbsp;WriteFile(String&nbsp;filePath,&nbsp;String&nbsp;counter)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;FileNotFoundException&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filePath;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;将counter转换为int类型并加一</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;Writestr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Integer.parseInt(counter)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;创建PrintWriter对象，用于写入数据到文件中</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintWriter&nbsp;pw&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;PrintWriter(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileOutputStream(filePath));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;用文本格式打印整数Writestr</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.println(Writestr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;清除PrintWriter对象</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pw.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(IOException&nbsp;e)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">错误处理</span><span style="color: #008000"><br /></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">写入文件错误</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;e.getMessage());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div>
<p>&nbsp;Counter.jsp文件&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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&lt;</span><span style="color: #000000">jsp:useBean&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">counter</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;scope</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">session</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">fiombean.Counter</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">调用counter对象的ReadFile方法来读取文件count.txt中的计数</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getRealPath(</span><span style="color: #000000">"</span><span style="color: #000000">count.txt</span><span style="color: #000000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;count&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;counter.ReadFile(url);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">调用counter对象的ReadFile方法来将计数器加一后写入到文件count.txt中</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(session.isNew())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;counter.WriteFile(url,&nbsp;count);<br /></span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />您是第</span><span style="color: #000000">&lt;</span><span style="color: #000000">font&nbsp;color</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">red</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;%=</span><span style="color: #000000">count</span><span style="color: #000000">%&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">font</span><span style="color: #000000">&gt;</span><span style="color: #000000">位访问者<br /></span></div>
<p>&nbsp;注意：在网站根目录下建立一个count.txt文件，初始数字为0 。</p><img src ="http://www.blogjava.net/DreamAngel/aggbug/364242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2011-11-18 15:07 <a href="http://www.blogjava.net/DreamAngel/archive/2011/11/18/364242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp实现数据备份还原（使用定时器）</title><link>http://www.blogjava.net/DreamAngel/archive/2011/11/04/362720.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Fri, 04 Nov 2011 14:32:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2011/11/04/362720.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/362720.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2011/11/04/362720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/362720.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/362720.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/DreamAngel/archive/2011/11/04/362720.html'>阅读全文</a><img src ="http://www.blogjava.net/DreamAngel/aggbug/362720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2011-11-04 22:32 <a href="http://www.blogjava.net/DreamAngel/archive/2011/11/04/362720.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp常见问题（总结中）</title><link>http://www.blogjava.net/DreamAngel/archive/2011/11/02/362564.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Wed, 02 Nov 2011 12:12:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2011/11/02/362564.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/362564.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2011/11/02/362564.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/362564.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/362564.html</trackback:ping><description><![CDATA[<p><strong>tomcat提示jdbc出现ResultSet can not re-read row data for column错误<br /></strong>解决方案如下：<br />（1）如果采用jdbc-odbc驱动，那么就必须按照查询顺序来一次读取（不论有没有image或text类型）。<br />（2）如果采用微软提供的ms sql server jdbc driver，如果查询语句中，不存在image或text类型字段，那么可以按照无序获取。<br />（3）如果采用微软提供的ms sql server jdbc driver，如果查询语句中，存在image或text类型字段，那么就必须按照顺序读取，否则就会报告Driver]ResultSet can not re-read row data for column之类的错误。<br />（4）如果想不查询语句中有没有image或text类型字段，都可以不按照顺序获取，或重复获取。那么就必须更换驱动，改用第三方的。 
<hr />
<strong>SQL Server 2000 :Underlying input stream returned zero bytes <br /></strong>解决办法：<br />1、将Text类型的字段增加默认值""<br />2、在JavaBean中增加处理，确保在Text类型的字段中不会保存Null值 
<p>
<hr />
<strong>如何能够访问WEB-INF文件夹下的页面<br /></strong>在WEB-INF下会有一个web.xml文件，此文件是属于整个web站点的配置文件，只需要在此配置就可以了。<br />WEB-INF里面需要访问的文件为login.jsp，打开web.xml 在&lt;/web-app&gt;上面加入一下代码：&nbsp; 
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">xyy</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;&nbsp;&nbsp;--&gt;此行的xyy是用于标识的和下面的一致<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/login.jsp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">jsp-file</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;--&gt;需要访问的页面的路径<br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><br /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">xyy</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;&nbsp;&nbsp;&nbsp;--&gt;此行的xyy是用于标识的和上面的一致<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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">/login</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;----&gt;此行的/login时是需要访问的页面的映射名称<br /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">servlet-mapping</span><span style="color: #0000ff">&gt;</span></div>
<p>修改之后重新启动服务器，就能读取到该文件了。 
<hr />
<strong>读取数据库完整日期时间</strong> 
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleDateFormat(</span><span style="color: #000000">"</span><span style="color: #000000">yyyy-MM-dd&nbsp;hh:mm:ss</span><span style="color: #000000">"</span><span style="color: #000000">).format(rs.getTimestamp(</span><span style="color: #000000">"</span><span style="color: #000000">time</span><span style="color: #000000">"</span><span style="color: #000000">));&nbsp;</span></div>
<p>
<hr />
<strong>ClientAbortException 异常解决办法<br /></strong>ClientAbortException&nbsp; Caused by: java.net.SocketException: Connection reset by peer: socket write error 的原因是由于处理http连接时，正在输出内容时，用户关闭了IE，会出现一个"ClientAbortException"，属于I/O处理中出现的一个异常，应用服务器应该会捕捉。 <br />Connection reset by peer的原因：<br />经常出现的Connection reset by peer: 原因可能是多方面的，不过更常见的原因是：<br />&#9312;：服务器的并发连接数超过了其承载量，服务器会将其中一些连接Down掉；<br />&#9313;：客户关掉了浏览器，而服务器还在给客户端发送数据；<br />&#9314;：浏览器端按了Stop<br />很多人都说是客户端造成的，没有办法控制，而且后台会记录这个异常，日志也会疯狂爆满，时间长了,肯定会DOWN掉的。<br />如果是原因&#9312;，而且该异常的日志级别为warn，不影响正常运行，只要提高服务器的日志级别即可。 
<hr />
<strong>Character decoding failed. Parameter skipped.java.io.CharConversionException: isHexDigit.<br /></strong>escapse在中文编码时会出现的问题。<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;url&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">b.jsp?name=</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">u_name;<br />url</span><span style="color: #000000">=</span><span style="color: #000000">encodeURI(url);</span></div>服务端获取&nbsp;
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">String&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">request.getParameter(</span><span style="color: #000000">"</span><span style="color: #000000">name</span><span style="color: #000000">"</span><span style="color: #000000">);<br />name&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;java.net.URLDecoder.decode(name,</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">);</span></div>
<p>&nbsp;</p><img src ="http://www.blogjava.net/DreamAngel/aggbug/362564.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2011-11-02 20:12 <a href="http://www.blogjava.net/DreamAngel/archive/2011/11/02/362564.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp中UTF-8乱码解决方案</title><link>http://www.blogjava.net/DreamAngel/archive/2011/10/26/362122.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Wed, 26 Oct 2011 12:46:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2011/10/26/362122.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/362122.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2011/10/26/362122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/362122.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/362122.html</trackback:ping><description><![CDATA[<p><font face="Verdana">一、确保jsp页面中&lt;%@ page language="java" contentType="text/html; charset=UTF-8"<br />pageEncoding="UTF-8"%&gt;和&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;编码为UTF-8；</font></p>
<p><font face="Verdana">二、post方式</font></p>
<p><font face="Verdana">配置字符过滤器</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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><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.util.filter;<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;java.io.IOException;<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.Filter;<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.FilterChain;<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.FilterConfig;<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.ServletException;<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.ServletRequest;<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.ServletResponse;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_268_342_Open_Image" onclick="this.style.display='none'; Codehighlighter1_268_342_Open_Text.style.display='none'; Codehighlighter1_268_342_Closed_Image.style.display='inline'; Codehighlighter1_268_342_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_268_342_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_268_342_Closed_Text.style.display='none'; Codehighlighter1_268_342_Open_Image.style.display='inline'; Codehighlighter1_268_342_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"></span><span id="Codehighlighter1_268_342_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_268_342_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" />*&nbsp;采用Filter统一设置处理字符集&nbsp;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />*&nbsp;</span><span style="color: #808080">@author</span><span style="color: #008000">&nbsp;songfeng<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />*&nbsp;</span><span style="color: #808080">@version</span><span style="color: #008000">&nbsp;1.0<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />*&nbsp;Apr&nbsp;1,&nbsp;2010<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 id="Codehighlighter1_397_866_Open_Image" onclick="this.style.display='none'; Codehighlighter1_397_866_Open_Text.style.display='none'; Codehighlighter1_397_866_Closed_Image.style.display='inline'; Codehighlighter1_397_866_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"><img id="Codehighlighter1_397_866_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_397_866_Closed_Text.style.display='none'; Codehighlighter1_397_866_Open_Image.style.display='inline'; Codehighlighter1_397_866_Open_Text.style.display='inline';" 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;CharsetEncodingFilter&nbsp;</span><span style="color: #0000ff">implements</span><span style="color: #000000">&nbsp;Filter&nbsp;</span><span id="Codehighlighter1_397_866_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_397_866_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String&nbsp;encoding&nbsp;</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">;<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_458_460_Open_Image" onclick="this.style.display='none'; Codehighlighter1_458_460_Open_Text.style.display='none'; Codehighlighter1_458_460_Closed_Image.style.display='inline'; Codehighlighter1_458_460_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_458_460_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_458_460_Closed_Text.style.display='none'; Codehighlighter1_458_460_Open_Image.style.display='inline'; Codehighlighter1_458_460_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;destroy()&nbsp;</span><span id="Codehighlighter1_458_460_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_458_460_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;doFilter(ServletRequest&nbsp;servletRequest,&nbsp;ServletResponse&nbsp;servletResponse,<br /><img id="Codehighlighter1_614_729_Open_Image" onclick="this.style.display='none'; Codehighlighter1_614_729_Open_Text.style.display='none'; Codehighlighter1_614_729_Closed_Image.style.display='inline'; Codehighlighter1_614_729_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_614_729_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_614_729_Closed_Text.style.display='none'; Codehighlighter1_614_729_Open_Image.style.display='inline'; Codehighlighter1_614_729_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top">&nbsp;&nbsp;&nbsp;&nbsp;FilterChain&nbsp;filterChain)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;IOException,&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_614_729_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_614_729_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;servletRequest.setCharacterEncoding(</span><span style="color: #0000ff">this</span><span style="color: #000000">.encoding);<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;filterChain.doFilter(servletRequest,&nbsp;servletResponse);<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_800_864_Open_Image" onclick="this.style.display='none'; Codehighlighter1_800_864_Open_Text.style.display='none'; Codehighlighter1_800_864_Closed_Image.style.display='inline'; Codehighlighter1_800_864_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"><img id="Codehighlighter1_800_864_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_800_864_Closed_Text.style.display='none'; Codehighlighter1_800_864_Open_Image.style.display='inline'; Codehighlighter1_800_864_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;init(FilterConfig&nbsp;filterConfig)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;ServletException&nbsp;</span><span id="Codehighlighter1_800_864_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_800_864_Open_Text"><span style="color: #000000">{<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.encoding&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;filterConfig.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">encoding</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span></div>
<p></font></p>
<p><font face="Verdana">配置web.xml</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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetEncodingFilter</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.util.filter.CharsetEncodingFilter</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">init-param</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">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">encoding</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&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">UTF-8</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">init-param</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">filter</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">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetEncodingFilter</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">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"><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">filter-mapping</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">filter-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">CharsetEncodingFilter</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/servlet/*</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 alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">&gt;</span></div>
<p></font></p>
<p><font face="Verdana">三、get方法</font></p>
<p><font face="Verdana">1、配置tomcat中server.xml</font></p>
<p><font face="Verdana">&lt;Connector port="80" protocol="HTTP/1.1" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connectionTimeout="20000" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; redirectPort="8443" disableUploadTimeout="true" URIEncoding="UTF-8"/&gt;</font></p>
<p><font face="Verdana">2、在要传递参数的时候进行转码（如不转码奇数中文字符最后一个字符乱码）<br /></font></p>
<p><font face="Verdana"></font><font face="Verdana">（1）JSP传值方式：<br />跳转页：<br />&lt;a href=info.jsp?info="&lt;%= java.net.URLEncoder.encode("中文汉字","GBK") %&gt;"&gt;跳转&lt;/a&gt;<br />接收页<br />&lt;%<br />&nbsp;&nbsp;&nbsp;&nbsp; String info_str = new String(request.getParameter("info"),"ISO8859-1");<br />&nbsp;&nbsp;&nbsp;&nbsp; out.print(info_str); //输出接收值<br />%&gt;<br />（2）JS传值方式：<br />先用encodeURI()进行编码 <br />var p = "你好吗？";<br />var url = "aaa.jsp?param=" + encodeURI(p);<br />然后在服务器端要解码<br />&lt;%<br />String param = request.getParameter("p");<br />param = new String(param.getBytes("ISO-8859-1"),"UTF-8");<br />%&gt;<br />四、ajax乱码</font></p>
<p><font face="Verdana">在要传递中文参数的js中转码：encodeURIComponent(&#8220;&#215;&#215;&#215;&#8221;)</font></p><img src ="http://www.blogjava.net/DreamAngel/aggbug/362122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2011-10-26 20:46 <a href="http://www.blogjava.net/DreamAngel/archive/2011/10/26/362122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>web.xml不认taglib解决办法</title><link>http://www.blogjava.net/DreamAngel/archive/2011/10/23/361826.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Sun, 23 Oct 2011 12:49:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2011/10/23/361826.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/361826.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2011/10/23/361826.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/361826.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/361826.html</trackback:ping><description><![CDATA[如果头是这样的&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "<a href="http://java.sun.com/dtd/web-app_2_3.dtd">http://java.sun.com/dtd/web-app_2_3.dtd</a>"&gt;&nbsp;，直接在后面加
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">taglib</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">taglib-uri</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/struts-logic.tld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">taglib-uri</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">taglib-location</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/struts-logic.tld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">taglib-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">taglib</span><span style="color: #0000ff">&gt;</span></div><br />如果头是这样的&lt;web-app xmlns="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>" xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" version="2.4" xsi:schemaLocation="<a href="http://java.sun.com/xml/ns/j2ee">http://java.sun.com/xml/ns/j2ee</a>&nbsp;&nbsp; <a href="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd</a>"&gt;，直接在后面加
<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"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">jsp-config</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">taglib</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">taglib-uri</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/validator-user.tld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">taglib-uri</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">taglib-location</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">/WEB-INF/validator-user.tld</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">taglib-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">taglib</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">jsp-config</span><span style="color: #0000ff">&gt;</span></div>   <img src ="http://www.blogjava.net/DreamAngel/aggbug/361826.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2011-10-23 20:49 <a href="http://www.blogjava.net/DreamAngel/archive/2011/10/23/361826.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些页面自动跳转的实现</title><link>http://www.blogjava.net/DreamAngel/archive/2009/03/31/263057.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Tue, 31 Mar 2009 02:41:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/03/31/263057.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/263057.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/03/31/263057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/263057.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/263057.html</trackback:ping><description><![CDATA[<div>功能：5秒后，自动跳转到同目录下的02view.html文件</div>
<div>&nbsp;</div>
<div>1）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="file:///F:/My%20Documents/jsp-file/一些页面自动跳转的实现%20-%20J2EE社区%20-%20BlogJava.files/None.gif" align="top" /><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="file:///F:/My%20Documents/jsp-file/一些页面自动跳转的实现%20-%20J2EE社区%20-%20BlogJava.files/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">meta&nbsp;</span><span style="color: #ff0000">http-equiv</span><span style="color: #0000ff">="refresh"</span><span style="color: #ff0000">&nbsp;content</span><span style="color: #0000ff">="5;url=02view.html"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="file:///F:/My%20Documents/jsp-file/一些页面自动跳转的实现%20-%20J2EE社区%20-%20BlogJava.files/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">head</span><span style="color: #0000ff">&gt;</span></div>
<br />
优点：简单<br />
缺点：Struts Tiles中无法使用</div>
<div>&nbsp;</div>
<div>2）javascript的实现<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"><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: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_53_114_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp; setTimeout(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">javascript:location.href='02view.html'</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">5000</span><span style="color: #000000; background-color: #f5f5f5">);&nbsp;<br />
</span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<br />
优点：灵活，可以结合更多的其他功能<br />
缺点：受到不同浏览器的影响</div>
<div>&nbsp;</div>
<div>3）结合了倒数的javascript实现（IE）<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"><span style="color: #0000ff">&lt;</span><span style="color: #800000">span&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="totalSecond"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
</span><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: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;totalSecond.innerText;<br />
setInterval(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">redirect()</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">1000</span><span style="color: #000000; background-color: #f5f5f5">);<br />
</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;redirect(){&nbsp;<br />
totalSecond.innerText</span><span style="color: #000000; background-color: #f5f5f5">=--</span><span style="color: #000000; background-color: #f5f5f5">second;&nbsp;<br />
</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(second</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;location.href</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">'02view.html';<br />
}<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<br />
优点：更人性化<br />
缺点：firefox不支持（firefox不支持span、div等的innerText属性）</div>
<div>&nbsp;</div>
<div>3'）结合了倒数的javascript实现（firefox）<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"><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: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.getElementById('totalSecond').textContent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;setInterval(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">redirect()</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">1000</span><span style="color: #000000; background-color: #f5f5f5">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;redirect()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('totalSecond').textContent&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">second;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;location.href&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;'02view.html';<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<br />
</div>
<div>4）解决Firefox不支持innerText的问题<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"><span style="color: #0000ff">&lt;</span><span style="color: #800000">span&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="totalSecond"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
</span><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: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">(navigator.appName.indexOf(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">Explorer</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">&gt;</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">1</span><span style="color: #000000; background-color: #f5f5f5">){<br />
&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('totalSecond').innerText&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">my&nbsp;text&nbsp;innerText</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">;<br />
}&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('totalSecond').textContent&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">my&nbsp;text&nbsp;textContent</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">;<br />
}<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
<br />
</div>
<div>5）整合3）和3'）<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"><span style="color: #0000ff">&lt;</span><span style="color: #800000">span&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="totalSecond"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">5</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">span</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
</span><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: #ff0000">&nbsp;type</span><span style="color: #0000ff">="text/javascript"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.getElementById('totalSecond').textContent;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(navigator.appName.indexOf(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">Explorer</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">&gt;</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">1</span><span style="color: #000000; background-color: #f5f5f5">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.getElementById('totalSecond').innerText;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;document.getElementById('totalSecond').textContent;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;setInterval(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">redirect()</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">1000</span><span style="color: #000000; background-color: #f5f5f5">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;redirect()<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(second&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location.href&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;'02view.html';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">if</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(navigator.appName.indexOf(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">Explorer</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">&gt;</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">1</span><span style="color: #000000; background-color: #f5f5f5">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('totalSecond').innerText&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;second</span><span style="color: #000000; background-color: #f5f5f5">--</span><span style="color: #000000; background-color: #f5f5f5">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">else</span><span style="color: #000000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.getElementById('totalSecond').textContent&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;second</span><span style="color: #000000; background-color: #f5f5f5">--</span><span style="color: #000000; background-color: #f5f5f5">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
</div>
 <img src ="http://www.blogjava.net/DreamAngel/aggbug/263057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-03-31 10:41 <a href="http://www.blogjava.net/DreamAngel/archive/2009/03/31/263057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP内建对象</title><link>http://www.blogjava.net/DreamAngel/archive/2009/03/26/262033.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Thu, 26 Mar 2009 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/03/26/262033.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/262033.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/03/26/262033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/262033.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/262033.html</trackback:ping><description><![CDATA[<p><font face="Courier New"><strong>① out - javax.servlet.jsp.jspWriter</strong><br />
&nbsp;&nbsp; out对象用于把结果输出到网页上。</font></p>
<p><font face="Courier New">方法：<br />
1. void clear() ;<br />
&nbsp;&nbsp; 清除输出缓冲区的内容，但是不输出到客户端。</font></p>
<p><font face="Courier New">2. void clearBuffer() ;<br />
&nbsp;&nbsp; 清除输出缓冲区的内容，并输出到客户端。</font></p>
<p><font face="Courier New">3. void close() ;<br />
&nbsp;&nbsp; 关闭输出流，清除所有内容。</font></p>
<p><font face="Courier New">4. void flush() ;<br />
&nbsp;&nbsp; 输出缓冲区里面的数据。</font></p>
<p><font face="Courier New">5. int getBufferSize() ;<br />
&nbsp;&nbsp; 获取以kb为单位的目前缓冲区大小。</font></p>
<p><font face="Courier New">6. int getRemaining() ;<br />
&nbsp;&nbsp; 获取以kb为单位的缓冲区中未被占用的空间大小。</font></p>
<p><font face="Courier New">7. boolean isAutoFlush() ;<br />
&nbsp;&nbsp; 是否自动刷新缓冲区。</font></p>
<p><font face="Courier New">8. void newLine() ;<br />
&nbsp;&nbsp; 输出一个换行字符。</font></p>
<p><font face="Courier New">9. void print( boolean b ) ;<br />
&nbsp;&nbsp; void print( char c ) ;<br />
&nbsp;&nbsp; void print( char[] s ) ;<br />
&nbsp;&nbsp; void print( double d ) ;<br />
&nbsp;&nbsp; void print( float f ) ;<br />
&nbsp;&nbsp; void print( int i ) ;<br />
&nbsp;&nbsp; void print( long l ) ;<br />
&nbsp;&nbsp; void print( Object obj ) ;<br />
&nbsp;&nbsp; void print( String s ) ;<br />
&nbsp;&nbsp; 将指定类型的数据输出到Http流，不换行。</font></p>
<p><font face="Courier New">10. void println( boolean b ) ;<br />
&nbsp;&nbsp;&nbsp; void println( char c ) ;<br />
&nbsp;&nbsp;&nbsp; void println( char[] s ) ;<br />
&nbsp;&nbsp;&nbsp; void println( double d ) ;<br />
&nbsp;&nbsp;&nbsp; void println( float f ) ;<br />
&nbsp;&nbsp;&nbsp; void println( int i ) ;<br />
&nbsp;&nbsp;&nbsp; void println( long l ) ;<br />
&nbsp;&nbsp;&nbsp; void println( Object obj ) ;<br />
&nbsp;&nbsp;&nbsp; void println( String s ) ;<br />
&nbsp;&nbsp;&nbsp; 将指定类型的数据输出到Http流，并输出一个换行符。<br />
&nbsp;&nbsp;&nbsp; <br />
11. Appendable append( char c ) ;<br />
&nbsp;&nbsp;&nbsp; Appendable append( CharSequence cxq, int start, int end ) ;<br />
&nbsp;&nbsp;&nbsp; Appendable append( CharSequence cxq ) ;<br />
&nbsp;&nbsp;&nbsp; 将一个字符或者实现了CharSequence接口的对象添加到输出流的后面。</font></p>
<p><font face="Courier New">成员：<br />
int DEFAULT_BUFFER = 0&nbsp;&nbsp;&nbsp; - 缺省缓冲区大小<br />
int NO_BUFFER = -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - writer是否处于缓冲输出状态<br />
int UNBOUNDED_BUFFER = -2 - 是否限制缓冲区大小</font></p>
<p><br />
<font face="Courier New"><strong>② request - javax.servlet.http.HttpServletRequest<br />
</strong>&nbsp;&nbsp; request对象包含所有请求的信息，如请求的来源、标头、cookies和请求相关的参数值等。</font></p>
<p><font face="Courier New">方法：<br />
1. Object getAttribute( String name ) ;<br />
&nbsp;&nbsp; 返回由name指定的属性值，该属性不存在时返回null。</font></p>
<p><font face="Courier New">2. Enumeration getAttributeNames() ;<br />
&nbsp;&nbsp; 返回request对象的所有属性名称的集合。</font></p>
<p><font face="Courier New">3. String getAuthType() ;<br />
&nbsp;&nbsp; 返回用来保护servlet的认证方法的名称，未受保护时返回null。</font></p>
<p><font face="Courier New">4. String getCharacterEncoding() ;<br />
&nbsp;&nbsp; 返回请求中的字符编码方法，可以在response对象中设置。</font></p>
<p><font face="Courier New">5. int getContentLength() ;<br />
&nbsp;&nbsp; 返回请求的BODY的长度，不能确定长度时返回-1。可以在response中设置。</font></p>
<p><font face="Courier New">6. String getContentType() ;<br />
&nbsp;&nbsp; 返回在response中定义的内容类型。</font></p>
<p><font face="Courier New">7. String getContentPath() ;<br />
&nbsp;&nbsp; 返回请求的路径。</font></p>
<p><font face="Courier New">8. Cookie[] getCookies() ;<br />
&nbsp;&nbsp; 返回客户端所有的Cookie的数组。</font></p>
<p><font face="Courier New">9. Enumeration getHeaderNames() ;<br />
&nbsp;&nbsp; 返回所有HTTP头的名称的集合。</font></p>
<p><font face="Courier New">10. Enumeration getHeaders( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 返回指定HTTP头的所有值的集合。</font></p>
<p><font face="Courier New">11. String getHeader( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 返回指定名称的HTTP头的信息。</font></p>
<p><font face="Courier New">12. long getDateHeader( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 返回指定名称的Data类型的HTTP头的信息。</font></p>
<p><font face="Courier New">13. int getIntHeader( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 返回指定名称的Int类型的HTTP头的信息。</font></p>
<p><font face="Courier New">14. ServletInputStream getInputStream() ;<br />
&nbsp;&nbsp;&nbsp; 返回请求的输入流。</font></p>
<p><font face="Courier New">15. Locale getLocale() ;<br />
&nbsp;&nbsp;&nbsp; 返回当前页的Locale对象，可以在response中设定。</font></p>
<p><font face="Courier New">16. Enumeration getLocales() ;<br />
&nbsp;&nbsp;&nbsp; 返回请求中所有的Locale对象的集合。</font></p>
<p><font face="Courier New">17. String getLocalName() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应请求的服务器端主机名。</font></p>
<p><font face="Courier New">18. String getLocalAddr() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应请求的服务器端地址。</font></p>
<p><font face="Courier New">19. int getLocalPort() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应请求的服务器端端口</font></p>
<p><font face="Courier New">20. String getMethod() ;<br />
&nbsp;&nbsp;&nbsp; 获取客户端向服务器端发送请求的方法(GET、POST)。</font></p>
<p><font face="Courier New">21. String getParameter( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 获取客户端发送给服务器端的参数值。</font></p>
<p><font face="Courier New">22. Map getParameterMap() ;<br />
&nbsp;&nbsp;&nbsp; 该方法返回包含请求中所有参数的一个Map对象。</font></p>
<p><font face="Courier New">23. Enumeration getParameterNames() ;<br />
&nbsp;&nbsp;&nbsp; 返回请求中所有参数的集合。</font></p>
<p><font face="Courier New">24. String[] getParameterValues( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 获得请求中指定参数的所有值。</font></p>
<p><font face="Courier New">25. String getQueryString() ;<br />
&nbsp;&nbsp;&nbsp; 返回get方法传递的参数字符串，该方法不分解出单独的参数。</font></p>
<p><font face="Courier New">26. String getPathInfo() ;<br />
&nbsp;&nbsp;&nbsp; 取出请求中处于ServletPath和QueryString之间的额外信息。</font></p>
<p><font face="Courier New">27. String getPathTranslated() ;<br />
&nbsp;&nbsp;&nbsp; 返回用getPathInfo()方法取得的路径信息的实际路径。</font></p>
<p><font face="Courier New">28. String getProtocol() ;<br />
&nbsp;&nbsp;&nbsp; 返回请求使用的协议。可以是HTTP1.1或者HTTP1.0。</font></p>
<p><font face="Courier New">29. BufferedReader getReader() ;<br />
&nbsp;&nbsp;&nbsp; 返回请求的输入流对应的Reader对象，该方法和getInputStream()方法在一个页面中只能调用一个。</font></p>
<p><font face="Courier New">30. String getRemoteAddr() ;<br />
&nbsp;&nbsp;&nbsp; 获取发出请求的客户端IP地址。</font></p>
<p><font face="Courier New">31. String getRemoteHost() ;<br />
&nbsp;&nbsp;&nbsp; 获取发出请求的客户端主机名</font></p>
<p><font face="Courier New">32. String getRemoteUser() ;<br />
&nbsp;&nbsp;&nbsp; 返回经过客户端验证的用户名，未经验证返回null。</font></p>
<p><font face="Courier New">33. int getRemotePort() ;<br />
&nbsp;&nbsp;&nbsp; 返回发出请求的客户端主机端口。</font></p>
<p><font face="Courier New">34. String getRealPath( String path ) ;<br />
&nbsp;&nbsp;&nbsp; 返回给定虚拟路径的物理路径。</font></p>
<p><font face="Courier New">35. RequestDispatcher getRequestDispatcher( String path ) ;<br />
&nbsp;&nbsp;&nbsp; 按给定的路径生成资源转向处理适配器对象。</font></p>
<p><font face="Courier New">36. String getRequestedSessionId() ;<br />
&nbsp;&nbsp;&nbsp; 返回请求的session的标识。</font></p>
<p><font face="Courier New">37. String RequestURI() ;<br />
&nbsp;&nbsp;&nbsp; 返回发出请求的客户端地址，但是不包括请求的参数字符串。</font></p>
<p><font face="Courier New">38. StringBuffer getRequestURI() ;<br />
&nbsp;&nbsp;&nbsp; 返回响应请求的服务器端地址</font></p>
<p><font face="Courier New">39. String getScheme() ;<br />
&nbsp;&nbsp;&nbsp; 获取协议名称，缺省值为HTTP协议。</font></p>
<p><font face="Courier New">40. String getServerName() ;<br />
&nbsp;&nbsp;&nbsp; 返回响应请求的服务器名称。</font></p>
<p><font face="Courier New">41. String getServletPath() ;<br />
&nbsp;&nbsp;&nbsp; 获取客户端所请求的脚本文件的文件路径。</font></p>
<p><font face="Courier New">42. int getServerPort() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应请求的服务器端主机端口号。</font></p>
<p><font face="Courier New">43. void removeAttribute( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 在属性列表中删除指定名称的属性。</font></p>
<p><font face="Courier New">44. void setAttribute( String name, Object value ) ;<br />
&nbsp;&nbsp;&nbsp; 在属性列表中添加/删除指定的属性。</font></p>
<p><font face="Courier New">45. void setCharacterEncoding( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 设置请求的字符编码格式。</font></p>
<p><font face="Courier New">46. HttpSession getSession() ;<br />
&nbsp;&nbsp;&nbsp; HttpSession getSession( boolean create ) ;<br />
&nbsp;&nbsp;&nbsp; 获取session，如果create为true，在无session的情况下创建一个。<br />
&nbsp;&nbsp;&nbsp; <br />
47. boolean isRequestedSessionIdFromCookie() ;<br />
&nbsp;&nbsp;&nbsp; 检查请求的会话ID是否为通过Cookie传入。</font></p>
<p><font face="Courier New">48. boolean isRequestedSessionIdFromURL() ;<br />
&nbsp;&nbsp;&nbsp; 检查请求的会话ID是否为通过URL传入。</font></p>
<p><font face="Courier New">49. boolean isRequestedSessionIdValid() ;<br />
&nbsp;&nbsp;&nbsp; 检查请求的会话ID是否仍然有效。</font></p>
<p><font face="Courier New">50. boolean isSecure() ;<br />
&nbsp;&nbsp;&nbsp; 检查请求是否使用安全链接，如果HTTPS等。</font></p>
<p><font face="Courier New">51. boolean isUserInRole( String role ) ;<br />
&nbsp;&nbsp;&nbsp; 检查已经通过验证的用户是否在是role所指定的角色。</font></p>
<p><font face="Courier New">52. Principal getUserPrincipal() ;<br />
&nbsp;&nbsp;&nbsp; 返回包含用户登陆名的一个java.security.Principal对象。</font></p>
<p><font face="Courier New">成员：<br />
String BASIC_AUTH = "BASIC"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <br />
String CLIENT_CERT_AUTH = "CLIENT_CERT" - <br />
String DIGEST_AUTH = "DIGEST"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - <br />
String FORM_AUTH = "FORM"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - </font></p>
<p><br />
<font face="Courier New"><strong>③ response - javax.servlet.http.HttpServletResponse</strong><br />
&nbsp;&nbsp; response对象主要将JSP容器处理后的结果传回到客户端。</font></p>
<p><font face="Courier New">方法：<br />
1. void addCookie( Cookie cookie ) ;<br />
&nbsp;&nbsp; 添加一个Cookie对象，保存客户端信息。</font></p>
<p><font face="Courier New">2. void addDateHeader( String name, long value ) ;<br />
&nbsp;&nbsp; 添加一个日期类型的HTTP头信息，覆盖同名的HTTP头信息。</font></p>
<p><font face="Courier New">3. void addHeader( String name, String value ) ;<br />
&nbsp;&nbsp; 添加一个HTTP头，覆盖同名的旧HTTP头。</font></p>
<p><font face="Courier New">4. void addIntHeader( String name, int value ) ;<br />
&nbsp;&nbsp; 添加一个整型的HTTP头，覆盖同名的旧HTTP头。</font></p>
<p><font face="Courier New">5. boolean containsHeader( String name ) ;<br />
&nbsp;&nbsp; 判断指定的HTTP头是否存在。</font></p>
<p><font face="Courier New">6. String encodeRedirectURL( String url ) ;<br />
&nbsp;&nbsp; 对sendRedirect()方法使用的URL进行编码。</font></p>
<p><font face="Courier New">7. String encodeURL( String url ) ;<br />
&nbsp;&nbsp; 将URL予以编码，回传包含session ID的URL。<br />
&nbsp;&nbsp; <br />
8. void flushBuffer() ;<br />
&nbsp;&nbsp; 强制把当前缓冲区的内容发送到客户端。</font></p>
<p><font face="Courier New">9. int getBufferSize() ;<br />
&nbsp;&nbsp; 取得以kb为单位的缓冲区大小。</font></p>
<p><font face="Courier New">10. String getCharacterEncoding() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应的字符编码格式。</font></p>
<p><font face="Courier New">11. String getContentType() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应的类型。</font></p>
<p><font face="Courier New">12. Locale getLocale() ;<br />
&nbsp;&nbsp;&nbsp; 获取响应的Locale对象。</font></p>
<p><font face="Courier New">13. ServletOutputStream getOutputStream() ;<br />
&nbsp;&nbsp;&nbsp; 返回客户端的输出流对象。</font></p>
<p><font face="Courier New">14. PrintWriter getWriter() ;<br />
&nbsp;&nbsp;&nbsp; 获取输出流对应的writer对象。</font></p>
<p><font face="Courier New">15. boolean isCommitted() ;<br />
&nbsp;&nbsp;&nbsp; 判断服务器端是否已经将数据输出到客户端。</font></p>
<p><font face="Courier New">16. void reset() ;<br />
&nbsp;&nbsp;&nbsp; 清空buffer中的所有内容。</font></p>
<p><font face="Courier New">17. void resetBuffer() ;<br />
&nbsp;&nbsp;&nbsp; 情况buffer中所有的内容，但是保留HTTP头和状态信息。</font></p>
<p><font face="Courier New">18. void sendError( int xc, String msg ) ;<br />
&nbsp;&nbsp;&nbsp; void sendError( int xc ) ;<br />
&nbsp;&nbsp;&nbsp; 发送错误，包括状态码和错误信息。</font></p>
<p><font face="Courier New">19. void sendRedirect( String locationg ) ;<br />
&nbsp;&nbsp;&nbsp; 把响应发送到另外一个位置进行处理。</font></p>
<p><font face="Courier New">20. void setBufferSize( int size ) ;<br />
&nbsp;&nbsp;&nbsp; 设置以kb为单位的缓冲区大小。</font></p>
<p><font face="Courier New">21. void setCharacterEncoding( String charset ) ;<br />
&nbsp;&nbsp;&nbsp; 设置响应使用的字符编码格式。</font></p>
<p><font face="Courier New">22. void setContentLength( int length ) ;<br />
&nbsp;&nbsp;&nbsp; 设置响应的BODY长度。</font></p>
<p><font face="Courier New">23. void setContentType( String type ) ;<br />
&nbsp;&nbsp;&nbsp; 设置响应的类型。</font></p>
<p><font face="Courier New">24. void setDateHeader( String name, long value ) ;<br />
&nbsp;&nbsp;&nbsp; 设置指定名称的Data类型的HTTP头的值。</font></p>
<p><font face="Courier New">25. void setHeader( String name, String value ) ;<br />
&nbsp;&nbsp;&nbsp; 设置指定名称的HTTP头的值。</font></p>
<p><font face="Courier New">26. void setIntHeader( String name, int value ) ;<br />
&nbsp;&nbsp;&nbsp; 设置指定名称的int类型的HTTP头的值。</font></p>
<p><font face="Courier New">27. void setStatus( int xc ) ;<br />
&nbsp;&nbsp;&nbsp; 设置响应状态码，新值会覆盖当前值。</font></p>
<p><font face="Courier New">成员(HTTP状态码)：<br />
int SC_CONTINUE = 100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_SWITCHING_PROTOCOLS = 101<br />
int SC_OK = 200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_NON_AUTHORITATIVE_INFORMATION = 203<br />
int SC_ACCEPTED = 202&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_CREATED = 201<br />
int SC_NO_CONTENT = 204&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_RESET_CONTENT = 205<br />
int SC_PARTIAL_CONTENT = 206&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_MULTIPLE_CHOICES = 300<br />
int SC_MOVED_PERMANENTLY = 301&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_MOVED_TEMPORARILY = 302<br />
int SC_FOUND = 302&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_SEE_OTHER = 303<br />
int SC_NOT_MODIFIED = 304&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_USE_PROXY = 305<br />
int SC_TEMPORARY_REDIRECT = 307&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_BAD_REQUEST = 400<br />
int SC_UNAUTHORIZED = 401&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_PAYMENT_REQUIRED = 402<br />
int SC_FORBIDDEN = 403&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_NOT_FOUND = 404<br />
int SC_METHOD_NOT_ALLOWED = 405&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_NOT_ACCEPTABLE = 406<br />
int SC_PROXY_AUTHENTICATION_REQUIRED = 407 int SC_REQUEST_TIMEOUT = 408<br />
int SC_CONFLICT = 409&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_GONE = 410<br />
int SC_LENGTH_REQUIRED = 411&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_PRECONDITION_FAILED = 412<br />
int SC_REQUEST_ENTITY_TOO_LARGE = 413&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_REQUEST_URI_TOO_LONG = 414<br />
int SC_UNSUPPORTED_MEDIA_TYPE = 415&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416<br />
int SC_EXPECTATION_FAILED = 417&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_INTERNAL_SERVER_ERROR = 500<br />
int SC_NOT_IMPLEMENTED = 501&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_BAD_GATEWAY = 502<br />
int SC_SERVICE_UNAVAILABLE = 503&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int SC_GATEWAY_TIMEOUT = 504<br />
int SC_HTTP_VERSION_NOT_SUPPORTED = 505</font></p>
<p><br />
<font face="Courier New"><strong>④ session - javax.servlet.http.HttpSession</strong><br />
&nbsp;&nbsp; session对象表示目前个别用户的会话状态，用来识别每个用户。</font></p>
<p><font face="Courier New">方法：<br />
1. Object getAttribute( String name ) ;<br />
&nbsp;&nbsp; 获取与指定名字相关联的session属性值。</font></p>
<p><font face="Courier New">2. Enumeration getAttributeNames() ;<br />
&nbsp;&nbsp; 取得session内所有属性的集合。</font></p>
<p><font face="Courier New">3. long getCreationTime() ;<br />
&nbsp;&nbsp; 返回session的创建时间，最小单位千分之一秒。</font></p>
<p><font face="Courier New">4. String getId() ;<br />
&nbsp;&nbsp; 取得session标识。</font></p>
<p><font face="Courier New">5. long getLastAccessedTime() ;<br />
&nbsp;&nbsp; 返回与当前session相关的客户端最后一次访问的时间，由1970-01-01算起，单位毫秒。</font></p>
<p><font face="Courier New">6. int getMaxInactiveInterval( int interval ) ;<br />
&nbsp;&nbsp; 返回总时间，以秒为单位，表示session的有效时间(session不活动时间)。-1为永不过期。</font></p>
<p><font face="Courier New">7. ServletContext getServletContext() ;<br />
&nbsp;&nbsp; 返回一个该JSP页面对应的ServletContext对象实例。</font></p>
<p><font face="Courier New">8. HttpSessionContext getSessionContext() ;<br />
&nbsp;&nbsp; </font></p>
<p><font face="Courier New">9. Object getValue( String name ) ;<br />
&nbsp;&nbsp; 取得指定名称的session变量值，不推荐使用。</font></p>
<p><font face="Courier New">10. String[] getValueNames() ;<br />
&nbsp;&nbsp;&nbsp; 取得所有session变量的名称的集合，不推荐使用。</font></p>
<p><font face="Courier New">11. void invalidate() ;<br />
&nbsp;&nbsp;&nbsp; 销毁这个session对象。</font></p>
<p><font face="Courier New">12. boolean isNew() ;<br />
&nbsp;&nbsp;&nbsp; 判断一个session是否由服务器产生，但是客户端并没有使用。</font></p>
<p><font face="Courier New">13. void pubValue( String name, Object value ) ;<br />
&nbsp;&nbsp;&nbsp; 添加一个session变量，不推荐使用。</font></p>
<p><font face="Courier New">14. void removeValue( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 移除一个session变量的值，不推荐使用。</font></p>
<p><font face="Courier New">15. void setAttribute( String name, String value ) ;<br />
&nbsp;&nbsp;&nbsp; 设置指定名称的session属性值。</font></p>
<p><font face="Courier New">16. void setMaxInactiveInterval( int interval ) ;<br />
&nbsp;&nbsp;&nbsp; 设置session的有效期。</font></p>
<p><font face="Courier New">17. void removeAttribute( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 移除指定名称的session属性。</font></p>
<p><br />
<font face="Courier New"><strong>⑤ pageContext - javax.servlet.jsp.PageContext</strong><br />
&nbsp;&nbsp; pageContext对象存储本JSP页面相关信息，如属性、内建对象等。</font></p>
<p><font face="Courier New">方法：<br />
1. void setAttribute( String name, Object value, int scope ) ;<br />
&nbsp;&nbsp; void setAttribute( String name, Object value ) ;<br />
&nbsp;&nbsp; 在指定的共享范围内设置属性。</font></p>
<p><font face="Courier New">2. Object getAttribute( String name, int scope ) ;<br />
&nbsp;&nbsp; Object getAttribute( String name ) ;<br />
&nbsp;&nbsp; 取得指定共享范围内以name为名字的属性值。</font></p>
<p><font face="Courier New">3. Object findAttribute( String name ) ;<br />
&nbsp;&nbsp; 按页面、请求、会话和应用程序共享范围搜索已命名的属性。</font></p>
<p><font face="Courier New">4. void removeAttribute( String name, int scope ) ;<br />
&nbsp;&nbsp; void removeAttribute( String name ) ;<br />
&nbsp;&nbsp; 移除指定名称和共享范围的属性。</font></p>
<p><font face="Courier New">5. void forward( String url ) ;<br />
&nbsp;&nbsp; 将页面导航到指定的URL。</font></p>
<p><font face="Courier New">6. Enumeration getAttributeNamesScope( int scope ) ;<br />
&nbsp;&nbsp; 取得指定共享范围内的所有属性名称的集合。</font></p>
<p><font face="Courier New">7. int getAttributeScope( String name ) ;<br />
&nbsp;&nbsp; 取得指定属性的共享范围。</font></p>
<p><font face="Courier New">8. ErrorData getErrorDate() ;<br />
&nbsp;&nbsp; 取得页面的errorData对象。</font></p>
<p><font face="Courier New">9. Exception getException() ;<br />
&nbsp;&nbsp; 取得页面的exception对象。</font></p>
<p><font face="Courier New">10. ExpressionEvaluator getExpressionEvaluator() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的expressionEvaluator对象。</font></p>
<p><font face="Courier New">11. JspWriter getOut() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的out对象。</font></p>
<p><font face="Courier New">12. Object getPage() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的page对象。</font></p>
<p><font face="Courier New">13. ServletRequest getRequest() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的request对象。</font></p>
<p><font face="Courier New">14. ServletResponse getResponse() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的response对象。</font></p>
<p><font face="Courier New">15. ServletConfig getConfig() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的config对象。</font></p>
<p><font face="Courier New">16. ServletContext getServletContext() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的servletContext对象。</font></p>
<p><font face="Courier New">17. HttpSession getSession() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的session对象。</font></p>
<p><font face="Courier New">18. VariableResolver getVariableResolver() ;<br />
&nbsp;&nbsp;&nbsp; 取得页面的variableResolver对象。</font></p>
<p><font face="Courier New">19. void include( String url, boolean flush ) ;<br />
&nbsp;&nbsp;&nbsp; void include( String url ) ;<br />
&nbsp;&nbsp;&nbsp; 包含其他的资源，并指定是否自动刷新。</font></p>
<p><font face="Courier New">20. void release() ;<br />
&nbsp;&nbsp;&nbsp; 重置pageContext内部状态，释放所有内部引用。</font></p>
<p><font face="Courier New">21. void initialize( Servlet servlet, ServletRequest request, ServletResponse response,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String errorPageURL, boolean needSession, int bufferSize, boolean autoFlush ) ;<br />
&nbsp;&nbsp;&nbsp; 初始化未经初始化的pageContext对象。</font></p>
<p><font face="Courier New">22. BodyContext pushBody() ;<br />
&nbsp;&nbsp;&nbsp; BodyContext pushBody( Writer writer ) ;<br />
&nbsp;&nbsp;&nbsp; 保存当前的out对象，并更新pageContext中page范围内的out对象。</font></p>
<p><font face="Courier New">23. JspWrite popBody() ;<br />
&nbsp;&nbsp;&nbsp; 取出由pushBody()方法保存的out对象。</font></p>
<p><font face="Courier New">24. void handlePageException( Exception e ) ;<br />
&nbsp;&nbsp;&nbsp; void handlePageException( Thrwoable t ) ;<br />
&nbsp;&nbsp;&nbsp; </font></p>
<p><font face="Courier New">成员：<br />
int PAGE_SCOPE = 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - 页面共享范围<br />
int REQUEST_SCOPE = 2&nbsp;&nbsp;&nbsp;&nbsp; - 请求共享范围<br />
int SESSION_SCOPE = 3&nbsp;&nbsp;&nbsp;&nbsp; - 会话共享范围<br />
int APPLICATION_SCOPE = 4 - 应用程序共享范围<br />
String PAGE = "javax.servlet.jsp.jspPage"<br />
String PAGECONTEXT = "javax.servlet.jsp.jspPageContext"<br />
String REQUEST = "javax.servlet.jsp.jspRequest"<br />
String RESPONSE = "javax.servlet.jsp.jspResponse"<br />
String CONFIG = "javax.servlet.jsp.jspConfig"<br />
String SESSION = "javax.servlet.jsp.jspSession"<br />
String OUT = "javax.servlet.jsp.jspOut"<br />
String APPLICATION = "javax.servlet.jsp.jspApplication"<br />
String EXCEPTION = "javax.servlet.jsp.jspException"</font></p>
<p><br />
<font face="Courier New"><strong>⑥ application - javax.servlet.ServletContext</strong><br />
&nbsp;&nbsp; application主要功用在于取得或更改Servlet的设定。</font></p>
<p><font face="Courier New">方法：<br />
1. Object getAttribute( String name ) ;<br />
&nbsp;&nbsp; 返回由name指定的application属性。</font></p>
<p><font face="Courier New">2. Enumeration getAttributes() ;<br />
&nbsp;&nbsp; 返回所有的application属性。</font></p>
<p><font face="Courier New">3. ServletContext getContext( String uripath ) ;<br />
&nbsp;&nbsp; 取得当前应用的ServletContext对象。</font></p>
<p><font face="Courier New">4. String getInitParameter( String name ) ;<br />
&nbsp;&nbsp; 返回由name指定的application属性的初始值。</font></p>
<p><font face="Courier New">5. Enumeration getInitParameters() ;<br />
&nbsp;&nbsp; 返回所有的application属性的初始值的集合。</font></p>
<p><font face="Courier New">6. int getMajorVersion() ;<br />
&nbsp;&nbsp; 返回servlet容器支持的Servlet API的版本号。</font></p>
<p><font face="Courier New">7. String getMimeType( String file ) ;<br />
&nbsp;&nbsp; 返回指定文件的类型，未知类型返回null。一般为"text/html"和"image/gif"。</font></p>
<p><font face="Courier New">8. int getMinorVersion() ;<br />
&nbsp;&nbsp; 返回servlet容器支持的Servlet API的副版本号。</font></p>
<p><font face="Courier New">9. String getRealPath( String path ) ;<br />
&nbsp;&nbsp; 返回给定虚拟路径所对应物理路径。</font></p>
<p><font face="Courier New">10. RequestDispatcher getNamedDispatcher( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 为指定名字的Servlet对象返回一个RequestDispatcher对象的实例。</font></p>
<p><font face="Courier New">11. RequestDispatcher getRequestDispatcher( String path ) ;<br />
&nbsp;&nbsp;&nbsp; 返回一个RequestDispatcher对象的实例。</font></p>
<p><font face="Courier New">12. URL getResource( String path ) ;<br />
&nbsp;&nbsp;&nbsp; 返回指定的资源路径对应的一个URL对象实例，参数要以"/"开头。</font></p>
<p><font face="Courier New">13. InputStream getResourceAsStream( String path ) ;<br />
&nbsp;&nbsp;&nbsp; 返回一个由path指定位置的资源的InputStream对象实例。</font></p>
<p><font face="Courier New">14. Set getResourcePaths( String path ) ;<br />
&nbsp;&nbsp;&nbsp; 返回存储在web-app中所有资源路径的集合。</font></p>
<p><font face="Courier New">15. String getServerInfo() ;<br />
&nbsp;&nbsp;&nbsp; 取得应用服务器版本信息。</font></p>
<p><font face="Courier New">16. Servlet getServlet( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 在ServletContext中检索指定名称的servlet。</font></p>
<p><font face="Courier New">17. Enumeration getServlets() ;<br />
&nbsp;&nbsp;&nbsp; 返回ServletContext中所有servlet的集合。</font></p>
<p><font face="Courier New">18. String getServletContextName() ;<br />
&nbsp;&nbsp;&nbsp; 返回本web应用的名称。</font></p>
<p><font face="Courier New">19. Enumeration getServletContextNames() ;<br />
&nbsp;&nbsp;&nbsp; 返回ServletContext中所有servlet的名称集合。</font></p>
<p><font face="Courier New">20. void log( Exception ex, String msg ) ;<br />
&nbsp;&nbsp;&nbsp; void log( String msg, Throwable t ) ;<br />
&nbsp;&nbsp;&nbsp; void log( String msg ) ;<br />
&nbsp;&nbsp;&nbsp; 把指定的信息写入servlet log文件。</font></p>
<p><font face="Courier New">21. void removeAttribute( String name ) ;<br />
&nbsp;&nbsp;&nbsp; 移除指定名称的application属性。</font></p>
<p><font face="Courier New">22. void setAttribute( String name, Object value ) ;<br />
&nbsp;&nbsp;&nbsp; 设定指定的application属性的值。</font></p>
<p><br />
<font face="Courier New"><strong>⑦ config - javax.servlet.ServletConfig<br />
</strong>&nbsp;&nbsp; config对象用来存放Servlet初始的数据结构。</font></p>
<p><font face="Courier New">方法：<br />
1. String getInitParameter( String name ) ;<br />
&nbsp;&nbsp; 返回名称为name的促使参数的值。</font></p>
<p><font face="Courier New">2. Enumeration getInitParameters() ;<br />
&nbsp;&nbsp; 返回这个JSP所有的促使参数的名称集合。</font></p>
<p><font face="Courier New">3. ServletContext getContext() ;<br />
&nbsp;&nbsp; 返回执行者的servlet上下文。</font></p>
<p><font face="Courier New">4. String getServletName() ;<br />
&nbsp;&nbsp; 返回servlet的名称。</font></p>
<p><br />
<font face="Courier New"><strong>⑧ exception - java.lang.Throwable</strong><br />
&nbsp;&nbsp; 错误对象，只有在JSP页面的page指令中指定isErrorPage="true"后，才可以在本页面使用exception对象。</font></p>
<p><font face="Courier New">方法：<br />
1. Throwable fillInStackTrace() ;<br />
&nbsp;&nbsp; 将当前stack信息记录到exception对象中。</font></p>
<p><font face="Courier New">2. String getLocalizedMessage() ;<br />
&nbsp;&nbsp; 取得本地语系的错误提示信息。</font></p>
<p><font face="Courier New">3. String getMessage()<br />
&nbsp;&nbsp; 取得错误提示信息。</font></p>
<p><font face="Courier New">4. StackTrackElement[] getStackTrace() ;<br />
&nbsp;&nbsp; 返回对象中记录的call stack track信息。</font></p>
<p><font face="Courier New">5. Throwable initCause( Throwable cause ) ;<br />
&nbsp;&nbsp; 将另外一个异常对象嵌套进当前异常对象中。<br />
&nbsp;&nbsp; <br />
6. Throwable getCause() ;<br />
&nbsp;&nbsp; 取出嵌套在当前异常对象中的异常。</font></p>
<p><font face="Courier New">7. void printStackTrace() ;<br />
&nbsp;&nbsp; void printStackTrace( printStream s ) ;<br />
&nbsp;&nbsp; void printStackTrace( printWriter s ) ;<br />
&nbsp;&nbsp; 打印出Throwable及其call stack trace信息。</font></p>
<p><font face="Courier New">8. void setStackTrace( StackTraceElement[] stackTrace )<br />
&nbsp;&nbsp; 设置对象的call stack trace信息。</font></p>
<p><br />
<font face="Courier New"><strong>⑨ page - javax.servlet.jsp.HttpJspPage</strong><br />
&nbsp;&nbsp; page对象代表JSP对象本身，或者说代表编译后的servlet对象，<br />
&nbsp;&nbsp; 可以用( (javax.servlet.jsp.HttpJspPage)page )来取用它的方法和属性。</font></p>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/262033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-03-26 10:15 <a href="http://www.blogjava.net/DreamAngel/archive/2009/03/26/262033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP环境基于Session的在线用户统计深入分析</title><link>http://www.blogjava.net/DreamAngel/archive/2009/03/19/260893.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Thu, 19 Mar 2009 12:45:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/03/19/260893.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/260893.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/03/19/260893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/260893.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/260893.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JSP作为后起之秀能够在服务器编程环境中占据一定地位，是和它良好支持一系列业界标准密切相关的。Session就是它提供的基础设施之一。作为一个程序员，你可以不介意具体在客户端是如何实现，就方便的实现简单的基于session的用户管理。现在对于处理在线用户，有几种不同的处理方法。一种是页面刷新由用户控制，服务器端控制一个超时时间比如30分钟，到了时间之后用户没有动作就被踢出。这种方法的优点是，如果用...&nbsp;&nbsp;<a href='http://www.blogjava.net/DreamAngel/archive/2009/03/19/260893.html'>阅读全文</a><img src ="http://www.blogjava.net/DreamAngel/aggbug/260893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-03-19 20:45 <a href="http://www.blogjava.net/DreamAngel/archive/2009/03/19/260893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Forward与Redirect区别</title><link>http://www.blogjava.net/DreamAngel/archive/2009/03/12/259278.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Thu, 12 Mar 2009 02:21:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/03/12/259278.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/259278.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/03/12/259278.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/259278.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/259278.html</trackback:ping><description><![CDATA[<p><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共同点：</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">都实现了根据自己的条件实现的页面得跳转。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">区别</span></p>
<p>
<table class="MsoNormalTable" style="margin-left: 41.4pt; border-collapse: collapse; mso-padding-alt: 0cm 0cm 0cm 0cm" cellspacing="0" cellpadding="0" border="0">
    <tbody>
        <tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 54pt; padding-top: 0cm; border-bottom: windowtext 1pt solid" valign="top" width="72">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类别</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 108pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt" valign="top" width="144">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">概念</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 108pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt" valign="top" width="144">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">共享数据</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: windowtext 1pt solid; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 114.7pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt" valign="top" width="153">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用</span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 1">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 54pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="72">
            <p class="MsoNormal"><span lang="EN-US">Redirect</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 108pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="144">
            <p class="MsoNormal"><span lang="EN-US">URL</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">重新定向：可以是任意的</span><span lang="EN-US">URL</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 108pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="144">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">不能共享</span><span lang="EN-US">request</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的数据</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 114.7pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="153">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一般用于用户注销登录时返回主页面和跳转到其它的网站等等</span></p>
            </td>
        </tr>
        <tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes">
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: windowtext 1pt solid; width: 54pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="72">
            <p class="MsoNormal"><span lang="EN-US">Forward</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 108pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="144">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面的转发：只能是同一个</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">应用程序的其他</span><span lang="EN-US">Web</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">组件</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 108pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="144">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">转发页面和转发到的页面可以共性</span><span lang="EN-US">request</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">里面的数据</span></p>
            </td>
            <td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0cm; border-left: medium none; width: 114.7pt; padding-top: 0cm; border-bottom: windowtext 1pt solid; mso-border-left-alt: inset #D4D0C8 .75pt; mso-border-top-alt: inset #D4D0C8 .75pt" valign="top" width="153">
            <p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一般用于用户登录的时候根据角色转发到相应的模块等等</span></p>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">3.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例子：</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">譬如：</span><span lang="EN-US">client </span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过</span><span lang="EN-US">XXX\index.jsp?name=gauss&amp;pwd=123</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">访问</span><span lang="EN-US">index.jsp,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">而</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中有</span><span lang="EN-US">&lt;jsp:forward page="login.jsp"/&gt;,</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">则在</span><span lang="EN-US">login.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中可以通过</span><span lang="EN-US">request.getParameter()</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">得到</span><span lang="EN-US">name</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">pwd</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，而</span><span lang="EN-US">&lt;%response.sendRedirect("login.jsp");%&gt;</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">得不到。</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><span lang="EN-US" style="mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">4.<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">注意</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一般在</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面之前有个提交数据的页面</span><span lang="EN-US">default.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，则</span><span lang="EN-US">defautl.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面提交的数据就可以在</span><span lang="EN-US">login.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面得到，而不是得到</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面提交的数据，</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">页面只是执行的都是一个转发操作当然在里面可以增加也写业务操作，他可以得到</span><span lang="EN-US">request</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的数据，用</span><span lang="EN-US">XXX\index.jsp?name=gauss&amp;pwd=123</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这种方式登录就是省略了</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">前面的一个页面提交数据而已。</span></p>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/259278.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-03-12 10:21 <a href="http://www.blogjava.net/DreamAngel/archive/2009/03/12/259278.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>getOutputStream() has already been called for this response异常的原因和解决方法</title><link>http://www.blogjava.net/DreamAngel/archive/2009/03/11/259213.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Wed, 11 Mar 2009 13:07:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/03/11/259213.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/259213.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/03/11/259213.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/259213.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/259213.html</trackback:ping><description><![CDATA[&nbsp;
<p class="MsoNormal" style="text-indent: 21pt"><span lang="EN-US">tomcat5</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">出现</span><span lang="EN-US">getOutputStream() has already been called for this response</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">异常的原因和解决方法在</span><span lang="EN-US">tomcat5</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中出现此错误一般都是在</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用了输出流（如输出图片验证码，文件下载等），没有妥善处理好的原因。具体的原因就是在</span><span lang="EN-US">tomcat</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编译成</span><span lang="EN-US">servlet</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">之后在函数</span><span lang="EN-US">_jspService(HttpServletRequest request, HttpServletResponse response)</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的最后有一段这样的代码</span></p>
<p class="MsoNormal"><span lang="EN-US">finally {</span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);</span></p>
<p class="MsoNormal"><span lang="EN-US">}</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这里是在释放在</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用的对象，会调用</span><span lang="EN-US">response.getWriter(),</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">因为这个方法是和</span><span lang="EN-US">response.getOutputStream()</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">相冲突的！所以会出现以上这个异常。然后当然是要提出解决的办法，其实挺简单的（并不是和某些朋友说的那样</span><span lang="EN-US">--</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将</span><span lang="EN-US">jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内的所有空格和回车符号所有都删除掉），在使用完输出流以后调用以下两行代码即可：</span></p>
<p class="MsoNormal"><span lang="EN-US">out.clear();</span></p>
<p class="MsoNormal"><span lang="EN-US">out = pageContext.pushBody();</span></p>
&nbsp;
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">附：产生验证码图片的文件</span><span lang="EN-US">image.jsp</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><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">image/jpeg</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*</span><span style="color: #000000">"</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;pageEncoding</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">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_160_414_Open_Image" onclick="this.style.display='none'; Codehighlighter1_160_414_Open_Text.style.display='none'; Codehighlighter1_160_414_Closed_Image.style.display='inline'; Codehighlighter1_160_414_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_160_414_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_160_414_Closed_Text.style.display='none'; Codehighlighter1_160_414_Open_Image.style.display='inline'; Codehighlighter1_160_414_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%!</span><span style="color: #000000">Color&nbsp;getRandColor(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;fc,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;bc)&nbsp;</span><span id="Codehighlighter1_160_414_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_160_414_Open_Text"><span style="color: #000000">{</span><span style="color: #008000">//</span><span style="color: #008000">给定范围获得随机颜色</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #008000"><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;Random&nbsp;random&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Random();<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><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">&nbsp;(fc&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">255</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><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;fc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">255</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><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">&nbsp;(bc&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">255</span><span style="color: #000000">)<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><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;bc&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">255</span><span style="color: #000000">;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><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;r&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fc&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random.nextInt(bc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;fc);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><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;g&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fc&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random.nextInt(bc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;fc);<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><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;b&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;fc&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random.nextInt(bc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;fc);<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><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">new</span><span style="color: #000000">&nbsp;Color(r,&nbsp;g,&nbsp;b);<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置页面不缓存</span><span style="color: #008000"><br />
</span><span style="color: #008080">17</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Pragma</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">No-cache</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;response.setHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Cache-Control</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">no-cache</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;response.setDateHeader(</span><span style="color: #000000">"</span><span style="color: #000000">Expires</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">);<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.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 />
</span><span style="color: #008080">21</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;width&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">,&nbsp;height&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">;<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;image&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BufferedImage(width,&nbsp;height,<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><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;BufferedImage.TYPE_INT_RGB);<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.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 />
</span><span style="color: #008080">25</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Graphics&nbsp;g&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;image.getGraphics();<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">生成随机类</span><span style="color: #008000"><br />
</span><span style="color: #008080">27</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Random&nbsp;random&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Random();<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.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 />
</span><span style="color: #008080">29</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(getRandColor(</span><span style="color: #000000">200</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">250</span><span style="color: #000000">));<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;g.fillRect(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;width,&nbsp;height);<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设定字体</span><span style="color: #008000"><br />
</span><span style="color: #008080">32</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;g.setFont(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Font(</span><span style="color: #000000">"</span><span style="color: #000000">Times&nbsp;New&nbsp;Roman</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;Font.PLAIN,&nbsp;</span><span style="color: #000000">18</span><span style="color: #000000">));<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">画边框<br />
</span><span style="color: #008080">34</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">g.setColor(new&nbsp;Color());<br />
</span><span style="color: #008080">35</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">g.drawRect(0,0,width-1,height-1);<br />
</span><span style="color: #008080">36</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;随机产生155条干扰线，使图象中的认证码不易被其它程序探测到</span><span style="color: #008000"><br />
</span><span style="color: #008080">37</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;g.setColor(getRandColor(</span><span style="color: #000000">160</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">200</span><span style="color: #000000">));<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img id="Codehighlighter1_1103_1271_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1103_1271_Open_Text.style.display='none'; Codehighlighter1_1103_1271_Closed_Image.style.display='inline'; Codehighlighter1_1103_1271_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1103_1271_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1103_1271_Closed_Text.style.display='none'; Codehighlighter1_1103_1271_Open_Image.style.display='inline'; Codehighlighter1_1103_1271_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">155</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_1103_1271_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_1103_1271_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><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;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;random.nextInt(width);<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><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;y&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;random.nextInt(height);<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><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;xl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;random.nextInt(</span><span style="color: #000000">12</span><span style="color: #000000">);<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><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;yl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;random.nextInt(</span><span style="color: #000000">12</span><span style="color: #000000">);<br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.drawLine(x,&nbsp;y,&nbsp;x&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;xl,&nbsp;y&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;yl);<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;取随机产生的认证码(4位数字)</span><span style="color: #008000"><br />
</span><span style="color: #008080">46</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sRand&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img id="Codehighlighter1_1342_1610_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1342_1610_Open_Text.style.display='none'; Codehighlighter1_1342_1610_Closed_Image.style.display='inline'; Codehighlighter1_1342_1610_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_1342_1610_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1342_1610_Closed_Text.style.display='none'; Codehighlighter1_1342_1610_Open_Image.style.display='inline'; Codehighlighter1_1342_1610_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">4</span><span style="color: #000000">;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_1342_1610_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_1342_1610_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;rand&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;String.valueOf(random.nextInt(</span><span style="color: #000000">10</span><span style="color: #000000">));<br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sRand&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;rand;<br />
</span><span style="color: #008080">50</span><span style="color: #000000"><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: #008000">//</span><span style="color: #008000">&nbsp;将认证码显示到图象中</span><span style="color: #008000"><br />
</span><span style="color: #008080">51</span><span style="color: #008000"><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;g.setColor(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Color(</span><span style="color: #000000">20</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random.nextInt(</span><span style="color: #000000">110</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random<br />
</span><span style="color: #008080">52</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.nextInt(</span><span style="color: #000000">110</span><span style="color: #000000">),&nbsp;</span><span style="color: #000000">20</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;random.nextInt(</span><span style="color: #000000">110</span><span style="color: #000000">)));<br />
</span><span style="color: #008080">53</span><span style="color: #000000"><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: #008000">//</span><span style="color: #008000">调用函数出来的颜色相同，可能是因为种子太接近，所以只能直接生成</span><span style="color: #008000"><br />
</span><span style="color: #008080">54</span><span style="color: #008000"><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;g.drawString(rand,&nbsp;</span><span style="color: #000000">13</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">6</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">16</span><span style="color: #000000">);<br />
</span><span style="color: #008080">55</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">56</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;将认证码存入SESSION</span><span style="color: #008000"><br />
</span><span style="color: #008080">57</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">rand</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;sRand);<br />
</span><span style="color: #008080">58</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.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 />
</span><span style="color: #008080">59</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;g.dispose();<br />
</span><span style="color: #008080">60</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.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 />
</span><span style="color: #008080">61</span><span style="color: #008000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;ImageIO.write(image,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">JPEG</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;response.getOutputStream());<br />
</span><span style="color: #008080">62</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out.clear();<br />
</span><span style="color: #008080">63</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;out&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pageContext.pushBody();<br />
</span><span style="color: #008080">64</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></div>
<p class="MsoNormal"></span></p>
<p class="MsoNormal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</span><span lang="EN-US">html</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用验证码图片：</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">1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">img&nbsp;</span><span style="color: #ff0000">src</span><span style="color: #0000ff">="image.jsp"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="src"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="18"</span><span style="color: #ff0000">&nbsp;alt</span><span style="color: #0000ff">="看不清楚?请点击刷新"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="this.src=this.src+'?'+Math.random();"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span></div>
</span>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/259213.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-03-11 21:07 <a href="http://www.blogjava.net/DreamAngel/archive/2009/03/11/259213.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jbuilder 2006的一个Bug</title><link>http://www.blogjava.net/DreamAngel/archive/2009/01/22/252348.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Thu, 22 Jan 2009 07:02:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/01/22/252348.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/252348.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/01/22/252348.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/252348.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/252348.html</trackback:ping><description><![CDATA[&nbsp;
<p class="MsoNormal" style="text-indent: 21pt"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有</span><span lang="EN-US">3</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">张网页：</span><span lang="EN-US">login.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（登陆界面）、</span><span lang="EN-US">check.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（验证界面）和</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（主页），在</span><span lang="EN-US">check.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中判断登陆的信息如果在数据库中存在，就在</span><span lang="EN-US">2</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">秒后进入</span><span lang="EN-US">index.jsp</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，使用如下语句：</span></p>
<p class="MsoNormal" style="text-indent: 21pt"><span lang="EN-US">response.setHeader("Refresh","2;URL=index.jsp");</span></p>
<span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">我们在</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">Jbuilder 2006</span><span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的内置浏览器运行该程序时，即使输入的信息正确，在</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">check.jsp</span><span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">页面也不会产生</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">2</span><span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">秒的延迟效果，而在</span><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">IE</span><span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">或其他浏览器中均可实现延迟效果。</span>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/252348.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-01-22 15:02 <a href="http://www.blogjava.net/DreamAngel/archive/2009/01/22/252348.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>动态生成checkbox的值并获取值</title><link>http://www.blogjava.net/DreamAngel/archive/2009/01/10/250825.html</link><dc:creator>飞翔天使</dc:creator><author>飞翔天使</author><pubDate>Sat, 10 Jan 2009 12:36:00 GMT</pubDate><guid>http://www.blogjava.net/DreamAngel/archive/2009/01/10/250825.html</guid><wfw:comment>http://www.blogjava.net/DreamAngel/comments/250825.html</wfw:comment><comments>http://www.blogjava.net/DreamAngel/archive/2009/01/10/250825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/DreamAngel/comments/commentRss/250825.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/DreamAngel/services/trackbacks/250825.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><strong>第一页：</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">1</span><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img id="Codehighlighter1_26_108_Open_Image" onclick="this.style.display='none'; Codehighlighter1_26_108_Open_Text.style.display='none'; Codehighlighter1_26_108_Closed_Image.style.display='inline'; Codehighlighter1_26_108_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_26_108_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_26_108_Closed_Text.style.display='none'; Codehighlighter1_26_108_Open_Image.style.display='inline'; Codehighlighter1_26_108_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;k</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000">;k</span><span style="color: #000000">&lt;=</span><span style="color: #000000">20</span><span style="color: #000000">;k</span><span style="color: #000000">++</span><span style="color: #000000">)</span><span id="Codehighlighter1_26_108_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_26_108_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">input&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">checkbox</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;name</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">colname</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;value</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">列&lt;%=k%&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">k</span><span style="color: #000000">%&gt;</span><span style="color: #000000">]<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></div>
<p></strong></span><span style="font-size: 10.5pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-font-kerning: 1.0pt; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
<hr />
<strong>第二页：</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><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;request.setCharacterEncoding(</span><span style="color: #000000">"</span><span style="color: #000000">gb2312</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;String[]&nbsp;picked&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;request.getParameterValues(</span><span style="color: #000000">"</span><span style="color: #000000">colname</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;String[]&nbsp;a</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String[</span><span style="color: #000000">20</span><span style="color: #000000">];<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img id="Codehighlighter1_159_255_Open_Image" onclick="this.style.display='none'; Codehighlighter1_159_255_Open_Text.style.display='none'; Codehighlighter1_159_255_Closed_Image.style.display='inline'; Codehighlighter1_159_255_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_159_255_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_159_255_Closed_Text.style.display='none'; Codehighlighter1_159_255_Open_Image.style.display='inline'; Codehighlighter1_159_255_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(picked&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_159_255_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_159_255_Open_Text"><span style="color: #000000">{&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img id="Codehighlighter1_206_250_Open_Image" onclick="this.style.display='none'; Codehighlighter1_206_250_Open_Text.style.display='none'; Codehighlighter1_206_250_Closed_Image.style.display='inline'; Codehighlighter1_206_250_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_206_250_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_206_250_Closed_Text.style.display='none'; Codehighlighter1_206_250_Open_Image.style.display='inline'; Codehighlighter1_206_250_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;picked.length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_206_250_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_206_250_Open_Text"><span style="color: #000000">{&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.println(</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">picked[i]);<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><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 />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img id="Codehighlighter1_264_293_Open_Image" onclick="this.style.display='none'; Codehighlighter1_264_293_Open_Text.style.display='none'; Codehighlighter1_264_293_Closed_Image.style.display='inline'; Codehighlighter1_264_293_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_264_293_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_264_293_Closed_Text.style.display='none'; Codehighlighter1_264_293_Open_Image.style.display='inline'; Codehighlighter1_264_293_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_264_293_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_264_293_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;out.println&nbsp;(</span><span style="color: #000000">"</span><span style="color: #000000">none</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></div>
<p></strong></span>&nbsp;</p>
<img src ="http://www.blogjava.net/DreamAngel/aggbug/250825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/DreamAngel/" target="_blank">飞翔天使</a> 2009-01-10 20:36 <a href="http://www.blogjava.net/DreamAngel/archive/2009/01/10/250825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>