﻿<?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-Cana-文章分类-jsp</title><link>http://www.blogjava.net/Cana/category/49300.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 23 Sep 2011 08:26:00 GMT</lastBuildDate><pubDate>Fri, 23 Sep 2011 08:26:00 GMT</pubDate><ttl>60</ttl><item><title>Css hacker for ie6、ie7、firefox </title><link>http://www.blogjava.net/Cana/articles/355767.html</link><dc:creator>Cana</dc:creator><author>Cana</author><pubDate>Thu, 04 Aug 2011 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/Cana/articles/355767.html</guid><wfw:comment>http://www.blogjava.net/Cana/comments/355767.html</wfw:comment><comments>http://www.blogjava.net/Cana/articles/355767.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cana/comments/commentRss/355767.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cana/services/trackbacks/355767.html</trackback:ping><description><![CDATA[<h3>区别不同浏览器，CSS hack写法：</h3>
<div>
区别
<span class="blue">IE6</span>与
<span class="orange">FF</span>：<br />
<br />
<pre class="brush:css; toolbar: false; auto-links: false;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #800000; ">&nbsp;&nbsp;&nbsp;&nbsp;background:orange;*background:blue;&nbsp;</span></div>
</pre>
<br />
</div>
<div>
区别
<span class="blue">IE6</span>与
<span class="green">IE7</span>：</div>
<pre class="brush:css; toolbar: false; auto-links: false;"> <span class="Apple-style-span" style="color: #800000; font-family: verdana, 'courier new'; font-size: 13px; white-space: normal; background-color: #eeeeee; ">&nbsp;&nbsp;background:green&nbsp;!important;background:blue;&nbsp;</span></pre>
<br />
<div>
区别
<span class="green">IE7</span>与
<span class="orange">FF</span>：&nbsp;&nbsp;&nbsp; </div>
<pre class="brush:css; toolbar: false; auto-links: false;">&nbsp;<span class="Apple-style-span" style="color: #800000; font-family: verdana, 'courier new'; font-size: 13px; white-space: normal; background-color: #eeeeee; ">&nbsp;&nbsp;&nbsp;background:orange;&nbsp;*background:green;</span> </pre>
<br />
<div>
区别
<span class="orange">FF</span>，
<span class="green">IE7</span>，
<span class="blue">IE6</span>：&nbsp; </div>
<pre class="brush:css; toolbar: false; auto-links: false;"> <span class="Apple-style-span" style="color: #800000; font-family: verdana, 'courier new'; font-size: 13px; white-space: normal; background-color: #eeeeee; ">background:orange;*background:green&nbsp;!important;*background:blue;&nbsp;</span></pre>
<br />
<div>
<strong>注：IE都能识别*;标准浏览器(如FF)不能识别*；</strong> </div>
<div>
<strong>IE6能识别*，但不能识别 !important,</strong> </div>
<div>
<strong>IE7能识别*，也能识别!important;</strong> </div>
<div>
<strong>FF不能识别*，但能识别!important;</strong>
<br />
</div>
<table border="1" cellpadding="4" cellspacing="1">
     <tbody>
         <tr>
             <td>&nbsp;</td>
             <td>IE6</td>
             <td>IE7</td>
             <td>FF</td>
         </tr>
         <tr>
             <td>*</td>
             <td>&#8730;</td>
             <td>&#8730;</td>
             <td>&#215;</td>
         </tr>
         <tr>
             <td>!important</td>
             <td>&#215;</td>
             <td>&#8730;</td>
             <td>&#8730;</td>
         </tr>
     </tbody>
</table>
<p>另外再补充一个，下划线"_",<br />
<strong>IE6支持下划线，IE7和firefox均不支持下划线。</strong><br />
于是大家还可以这样来区分IE6，IE7，firefox</p>
<pre class="brush:css; toolbar: false; auto-links: false;"> <span class="Apple-style-span" style="color: #800000; font-family: verdana, 'courier new'; font-size: 13px; white-space: normal; background-color: #eeeeee; ">&nbsp;&nbsp;background:orange;*background:green;_background:blue;&nbsp;</span></pre>
<p> 注：不管是什么方法，书写的顺序都是firefox的写在前面，IE7的写在中间，IE6的写在最后面。</p>
<p>&nbsp;</p><img src ="http://www.blogjava.net/Cana/aggbug/355767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cana/" target="_blank">Cana</a> 2011-08-04 14:21 <a href="http://www.blogjava.net/Cana/articles/355767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp常见乱码问题解决办法</title><link>http://www.blogjava.net/Cana/articles/355766.html</link><dc:creator>Cana</dc:creator><author>Cana</author><pubDate>Thu, 04 Aug 2011 06:17:00 GMT</pubDate><guid>http://www.blogjava.net/Cana/articles/355766.html</guid><wfw:comment>http://www.blogjava.net/Cana/comments/355766.html</wfw:comment><comments>http://www.blogjava.net/Cana/articles/355766.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cana/comments/commentRss/355766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cana/services/trackbacks/355766.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13px; line-height: 19px; background-color: #ffffff; ">&nbsp; &nbsp; &nbsp; &nbsp;1、表单get方法提交参数乱码,由于默认的tomcat按照iso-8859-1对url进行编码所以要进行相应转换：
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @首先在接受参数页面或者servlet设置request的编码方式例如：request.setCharacterEncoding("utf-8");</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; @对接受到的参数改变编码，和上面的characterencoding的编码相同，new&nbsp; String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8");</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @修改tomcat的server.xml文件，<span class="m">&lt;</span><span class="t">Connector</span>&nbsp;<span class="t">URIEncoding</span><span class="m">="</span><strong>utf-8</strong><span class="m">"</span><span class="t">&nbsp;connectionTimeout</span><span class="m">="</span><strong>20000</strong><span class="m">"</span><span class="t">&nbsp;port</span><span class="m">="</span><strong>8080</strong><span class="m">"</span><span class="t">protocol</span><span class="m">="</span><strong>HTTP/1.1</strong><span class="m">"</span><span class="t">&nbsp;redirectPort</span><span class="m">="</span><strong>8443</strong><span class="m">"</span><span class="m">&nbsp;/&gt;</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "><span class="m">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @以上方法对ie6好像是如果有多个参数的话，会把参数之间的&amp;符号变为??，不知道怎么解决，求解。<br />
</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; "></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">&nbsp;</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">&nbsp; &nbsp; &nbsp;&nbsp; 2、表单post方法提交参数乱码，这个很简单，有两种简单的办法；</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @首先在接受参数页面或者servlet设置request的编码方式例如：request.setCharacterEncoding("utf- 8");这里的utf-8编码和你传递参数的页面的contentType或者pageEncoding一致。</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-indent: 2em; ">&nbsp; &nbsp; &nbsp;&nbsp; @编写过滤器，方法略。</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-indent: 2em; ">3、<span class="tcnt">javascript通过url向jsp页面传递中文参数乱码解决方法（转载）</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-indent: 2em; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @解决方法：在传递参数前将中文参数进行两次编码，jsp页面获取参数后对中文参数进行一次解码，中文参数就不会 变为乱码了！<br />
<br />
</p>
</span><span class="Apple-style-span" style="font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13px; line-height: 19px; background-color: #ffffff; ">&nbsp; &nbsp; &nbsp; 参考例子：<br />
</span>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<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;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;contentType</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">text/html;&nbsp;charset=UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;pageEncoding</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;%</span><span style="color: #000000; ">@&nbsp;page&nbsp;</span><span style="color: #0000FF; ">import</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">java.net.*</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">%&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;%</span><span style="color: #000000; "><br />
<br />
String&nbsp;str0</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; ">;<br />
<br />
String&nbsp;str1</span><span style="color: #000000; ">=</span><span style="color: #000000; ">""</span><span style="color: #000000; ">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(request.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">param0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)</span><span style="color: #000000; ">!=</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str0</span><span style="color: #000000; ">=</span><span style="color: #000000; ">request.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">param0</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);</span><span style="color: #008000; ">//</span><span style="color: #008000; ">直接获取中文参数</span><span style="color: #008000; "><br />
</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(request.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">param1</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)</span><span style="color: #000000; ">!=</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str1</span><span style="color: #000000; ">=</span><span style="color: #000000; ">URLDecoder.decode(request.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">param1</span><span style="color: #000000; ">"</span><span style="color: #000000; ">),</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);</span><span style="color: #008000; ">//</span><span style="color: #008000; ">对中文参数进行解码</span><span style="color: #008000; "><br />
</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">(Exception&nbsp;e){<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
<br />
&nbsp;&nbsp;}<br />
<br />
</span><span style="color: #000000; ">%&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;!</span><span style="color: #000000; ">DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">html</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">head</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">meta&nbsp;http</span><span style="color: #000000; ">-</span><span style="color: #000000; ">equiv</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Content-Type</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;content</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">text/html;&nbsp;charset=UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">script&nbsp;type</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">text/javascript</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
var&nbsp;str</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; ">;<br />
<br />
function&nbsp;test0(){<br />
<br />
window.location</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Test.jsp?param0=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">str;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">直接传递中文参数</span><span style="color: #008000; "><br />
</span><span style="color: #000000; "><br />
}<br />
<br />
function&nbsp;test1(){<br />
<br />
window.location</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Test.jsp?param1=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">encodeURI(encodeURI(str));</span><span style="color: #008000; ">//</span><span style="color: #008000; ">对中文参数进行双层编码后再传递</span><span style="color: #008000; "><br />
</span><span style="color: #000000; "><br />
}<br />
<br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">script</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">head</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">body</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;value</span><span style="color: #000000; ">=&lt;%=</span><span style="color: #000000; ">str0&nbsp;</span><span style="color: #000000; ">%&gt;&gt;</span><span style="color: #000000; "><br />
<br />
</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; ">button</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; ">乱码</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;onclick</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">test0()</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;&lt;</span><span style="color: #000000; ">br</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">input&nbsp;value</span><span style="color: #000000; ">=&lt;%=</span><span style="color: #000000; ">str1&nbsp;</span><span style="color: #000000; ">%&gt;&gt;</span><span style="color: #000000; "><br />
<br />
</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; ">button</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; ">正常</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;onclick</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">test1()</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">body</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
<br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">html</span><span style="color: #000000; ">&gt;</span></div>
<span class="Apple-style-span" style="font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13px; line-height: 19px; background-color: #ffffff; ">
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; text-indent: 2em; "><br />
</p>
</span>
<p>&nbsp;</p><img src ="http://www.blogjava.net/Cana/aggbug/355766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cana/" target="_blank">Cana</a> 2011-08-04 14:17 <a href="http://www.blogjava.net/Cana/articles/355766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>js跳转路径问题</title><link>http://www.blogjava.net/Cana/articles/355765.html</link><dc:creator>Cana</dc:creator><author>Cana</author><pubDate>Thu, 04 Aug 2011 06:16:00 GMT</pubDate><guid>http://www.blogjava.net/Cana/articles/355765.html</guid><wfw:comment>http://www.blogjava.net/Cana/comments/355765.html</wfw:comment><comments>http://www.blogjava.net/Cana/articles/355765.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cana/comments/commentRss/355765.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cana/services/trackbacks/355765.html</trackback:ping><description><![CDATA[在项目中用window.location做跳转，发现ff和ie中出现不一致现象。
<p>&nbsp;&nbsp;&nbsp; @ie中跳转以当前路径开始跳转 </p>
<p>&nbsp;&nbsp;&nbsp; @ff中跳转以根目录开始</p>
<p>所以，跳转要根据浏览器分别执行</p>
<p>&nbsp;</p>
<pre class="brush:js; toolbar: false; auto-links: false;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(navigator.userAgent.indexOf(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Firefox</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)</span><span style="color: #000000; ">!=-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">ff浏览器，从根目录开始拼接&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">ie浏览器,从当前目录开始</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;}</span></div>
</pre><img src ="http://www.blogjava.net/Cana/aggbug/355765.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cana/" target="_blank">Cana</a> 2011-08-04 14:16 <a href="http://www.blogjava.net/Cana/articles/355765.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jsp 防止二次提交(重复提交)</title><link>http://www.blogjava.net/Cana/articles/355764.html</link><dc:creator>Cana</dc:creator><author>Cana</author><pubDate>Thu, 04 Aug 2011 06:14:00 GMT</pubDate><guid>http://www.blogjava.net/Cana/articles/355764.html</guid><wfw:comment>http://www.blogjava.net/Cana/comments/355764.html</wfw:comment><comments>http://www.blogjava.net/Cana/articles/355764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Cana/comments/commentRss/355764.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Cana/services/trackbacks/355764.html</trackback:ping><description><![CDATA[<span class="Apple-style-span" style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; line-height: normal; -webkit-text-size-adjust: none; background-color: #f9f9f9; ">
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; line-height: 20px; "><span style="font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13px; line-height: 19px; ">servlet页面代码：</span>@每次请求时产生一个token(一般为时间戳),存于session中并随之用hidden提交，在servlet中判断接收到的token和session中的是否一致来判断是否重复提交，如果不是则重新产生一个 &nbsp; token存于session中覆盖原来的token。</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; line-height: 20px; ">@当用户返回或者刷新重复请求servlet时，servlet判断token是否一致，由于请求方没有产生新的token，所以和servlet新产生的token不一致，认为重复提交。</p>
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; line-height: 20px; ">@当用户在请求页面刷新也就是重新在请求页面产生token，这时新的token覆盖servlet产生的token，这时token一致，认为是一个新的请求。</p>
</span><span class="Apple-style-span" style="font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13px; line-height: 19px; background-color: #ffffff; ">@请求的jsp页面代码:<br />
</span>
<div style="font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; 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; ">body</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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;token</span><span style="color: #000000; ">=</span><span style="color: #000000; ">System.currentTimeMillis();&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">产生时间戳的token</span><span style="color: #008000; "><br />
</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">token</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,token);&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</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; ">form&nbsp;&nbsp;action</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">isRepeat</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;method</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">post</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; ">text</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">username</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; ">text</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;name</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">password</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; ">hidden</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;%=token&nbsp;%&gt;</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; ">token</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;</span><span style="color: #000000; ">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; ">&lt;!--</span><span style="color: #000000; ">&nbsp;作为hidden提交&nbsp;</span><span style="color: #000000; ">--&gt;</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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; ">submit</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; ">提交</span><span style="color: #000000; ">"</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; ">form</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br />
</span><span style="color: #000000; ">&lt;/</span><span style="color: #000000; ">body</span><span style="color: #000000; ">&gt;<br />
</span></div>
<span class="Apple-style-span" style="font-family: 微软雅黑, Verdana, sans-serif, 宋体; line-height: normal; -webkit-text-size-adjust: none; background-color: #f9f9f9; ">
<p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; line-height: 20px; "><br /></p>
</span><span class="Apple-style-span" style="font-family: 'sans serif', tahoma, verdana, helvetica; font-size: 13px; line-height: 19px; background-color: #ffffff; ">@servlet页面代码：<br />
</span>
<p>&nbsp;<span class="Apple-style-span" style="font-size: 13px; background-color: #eeeeee; "><span style="color: #0000FF; ">protected</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;doPost(HttpServletRequest&nbsp;req,&nbsp;HttpServletResponse&nbsp;resp)</span></span></p>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">throws</span><span style="color: #000000; ">&nbsp;ServletException,&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;req.setCharacterEncoding(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resp.setCharacterEncoding(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resp.setContentType(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">text/html,charset=utf-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;username</span><span style="color: #000000; ">=</span><span style="color: #000000; ">req.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">username</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;password</span><span style="color: #000000; ">=</span><span style="color: #000000; ">req.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">password</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;token</span><span style="color: #000000; ">=</span><span style="color: #000000; ">Long.parseLong(req.getParameter(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">token</span><span style="color: #000000; ">"</span><span style="color: #000000; ">));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">long</span><span style="color: #000000; ">&nbsp;tokenInSession</span><span style="color: #000000; ">=</span><span style="color: #000000; ">Long.parseLong(req.getSession().getAttribute(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">token</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; ">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(token</span><span style="color: #000000; ">==</span><span style="color: #000000; ">tokenInSession){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resp.getWriter().println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ok&nbsp;</span><span style="color: #000000; ">"</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;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">//</span><span style="color: #008000; ">如果是第一次请求，则产生新的token&nbsp;</span><span style="color: #008000; "><br />
</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;req.getSession().setAttribute(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">token</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;System.currentTimeMillis());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&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;resp.getWriter().println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">do&nbsp;not&nbsp;repeat&nbsp;submit</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></div><img src ="http://www.blogjava.net/Cana/aggbug/355764.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Cana/" target="_blank">Cana</a> 2011-08-04 14:14 <a href="http://www.blogjava.net/Cana/articles/355764.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>