﻿<?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-pengpenglin-随笔分类-J2EE基础</title><link>http://www.blogjava.net/pengpenglin/category/28488.html</link><description>成熟 稳重 乐观 自信 进取 责任 梦想 坚持</description><language>zh-cn</language><lastBuildDate>Sat, 17 Apr 2010 21:54:57 GMT</lastBuildDate><pubDate>Sat, 17 Apr 2010 21:54:57 GMT</pubDate><ttl>60</ttl><item><title>The JMS API Programming Model </title><link>http://www.blogjava.net/pengpenglin/archive/2010/04/17/318621.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Sat, 17 Apr 2010 14:39:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2010/04/17/318621.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/318621.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2010/04/17/318621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/318621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/318621.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 摘在SUN 的J2EE Tutoria 第33章的第3节《The JMS API Programming Model 》全面地介绍了JMS的编程模型&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2010/04/17/318621.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/318621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2010-04-17 22:39 <a href="http://www.blogjava.net/pengpenglin/archive/2010/04/17/318621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Java分布式专题】分布式缓存---Memcached 入门</title><link>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315439.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Mon, 15 Mar 2010 02:57:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315439.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/315439.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2010/03/15/315439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/315439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/315439.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 关于Memcached入门知识点&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2010/03/15/315439.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/315439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2010-03-15 10:57 <a href="http://www.blogjava.net/pengpenglin/archive/2010/03/15/315439.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/pengpenglin/archive/2008/01/19/176532.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Sat, 19 Jan 2008 14:24:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/01/19/176532.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/176532.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/01/19/176532.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/176532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/176532.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 《轻量级J2EE企业应用实战》一书的第2章有一个使用SerlvetResponse输出图像的例子，代码如下：&lt;%&nbsp;&nbsp;BufferedImage&nbsp;image&nbsp;=&nbsp;new&nbsp;BufferedImage(400,&nbsp;400,&nbsp;BufferedImage.TYPE_INT_RGB);&nbsp;&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/pengpenglin/archive/2008/01/19/176532.html'>阅读全文</a><img src ="http://www.blogjava.net/pengpenglin/aggbug/176532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-01-19 22:24 <a href="http://www.blogjava.net/pengpenglin/archive/2008/01/19/176532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java Web中涉及路径的若干问题</title><link>http://www.blogjava.net/pengpenglin/archive/2008/01/15/175566.html</link><dc:creator>Paul Lin</dc:creator><author>Paul Lin</author><pubDate>Tue, 15 Jan 2008 15:28:00 GMT</pubDate><guid>http://www.blogjava.net/pengpenglin/archive/2008/01/15/175566.html</guid><wfw:comment>http://www.blogjava.net/pengpenglin/comments/175566.html</wfw:comment><comments>http://www.blogjava.net/pengpenglin/archive/2008/01/15/175566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengpenglin/comments/commentRss/175566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengpenglin/services/trackbacks/175566.html</trackback:ping><description><![CDATA[<p><span style="font-family: Verdana"><span style="font-size: 10pt"><strong>一、Forward与Redirect与&lt;a href &gt;的路径区别</strong><br />
</span></span><span style="font-size: 10pt"><span style="font-family: Verdana"><br />
<span style="font-family: Verdana"><span style="font-size: 10pt">forward的路径如果是以"/"开头，则表示相对<span style="color: red"><strong>Web应用</strong></span>的context， 如果不是则表示相对于当前请求<br />
</span></span></span></span><span style="font-size: 10pt"><span style="font-family: Verdana"><span style="font-family: Verdana"><span style="font-size: 10pt">redirect的路径如果是以"/"开头，则表示相对于<strong style="color: red">主机</strong>， 如果不是则表示相对于当前请求<br />
&lt;a href&gt;的路径如果是"/"开头，则表示相对于<span style="color: red"><strong>主机</strong></span>，如果不是则表示相对于当前请求<br />
<br />
<strong>二、Forward与Redirect对HTML链接的影响</strong><br />
<br />
最近在写一个JSP页面时，碰到一个奇怪的问题，有一个页面(forward_from.jsp)根据一个随机数选择&#8220;转发&#8221;或&#8220;重定向&#8221;到第二个页面(forward_result.jsp)，在第二个页面有一个返回的链接：&lt;a href = "../forward_from.jsp"&gt;。<br />
<br />
测试时发现如果第一个页面是&#8220;重定向&#8221;到第二个页面的，则当用户点击第二个页面的返回链接时一切正常，当如果是以&#8220;转发&#8221;的方式访问第二个页面，当用户点击返回链接会出现&#8220;404: File not found&#8221;的错误。<br />
<br />
&#183;页面结构<br />
<br />
<img height="125" alt="" src="http://www.blogjava.net/images/blogjava_net/pengpenglin/path_error.jpg" width="224" border="0" /><br />
<br />
<br />
当从forward_from.jsp&#8220;重定向&#8221;到forward_result.jsp时，浏览器的地址栏的URL是：<br />
<br />
http://localhost:8081/j2eeTestProject<span style="color: red"><strong>/pages/forward/forward_result.jsp<br />
</strong></span><br />
当从forward_from.jsp&#8220;转发&#8221;到forward_result.jsp时，浏览器的地址栏的URL是：<br />
<br />
http://localhost:8081/j2eeTestProject<span style="color: red"><strong>/pages/forward_from.jsp<br />
</strong></span><br />
<br />
当从forward_from.jsp&#8220;重定向&#8221;到forward_result.jsp时，forward_result.jsp页面的返回链接&lt;a href = "<span style="color: red"><strong>..</strong></span>/forward_from.jsp"&gt;是：<br />
<br />
http://localhost:8081<strong style="color: red">/j2eeTestProject/pages/forward_from.jsp</strong><br />
<br />
当从forward_from.jsp&#8220;转发&#8221;到forward_result.jsp时，forward_result.jsp页面的返回链接&lt;a href ="<strong style="color: red">..</strong>/forward_from.jsp"&gt;是：<br />
<br />
http://localhost:8081<strong style="color: red">/j2eeTestProject/forward_from.jsp</strong><br />
<br />
从上面的浏览器URL和页面的链接写法我们就可以看出问题所在，<span style="background-color: #00ff00">因为&lt;a href = "../forward_result.jsp"&gt;参考的是<strong>Web浏览器中地址栏的URL</strong></span>，当&#8220;转发&#8221;时因为浏览器的URL地址保持不变，所以&#8220;../&#8221;就被浏览器解析成：/j2eeTestProject/，而&#8220;重发&#8221;时因为浏览器的URL地址是真正页面的地址(/pages/forward/forward_result.jsp)，所以../被浏览器解析成：/j2eeTestProject/pages/。而这个路径显然是不存在的。<br />
<br />
<span style="background-color: #00ff00">总结：以后在JSP中尽量不要使用"../"这样的写法，我们可以使用request.getServletContext()或request.getServletPath()来定位到Web应用的根目录或当前的请求对象。</span></span></span></span></span></p>
<img src ="http://www.blogjava.net/pengpenglin/aggbug/175566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengpenglin/" target="_blank">Paul Lin</a> 2008-01-15 23:28 <a href="http://www.blogjava.net/pengpenglin/archive/2008/01/15/175566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>