﻿<?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-liuzheng-文章分类-JSP and Servlet</title><link>http://www.blogjava.net/liuzheng/category/25554.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 09 Nov 2007 16:11:45 GMT</lastBuildDate><pubDate>Fri, 09 Nov 2007 16:11:45 GMT</pubDate><ttl>60</ttl><item><title>Session的生命周期的设置</title><link>http://www.blogjava.net/liuzheng/articles/159321.html</link><dc:creator>刘铮 </dc:creator><author>刘铮 </author><pubDate>Fri, 09 Nov 2007 03:47:00 GMT</pubDate><guid>http://www.blogjava.net/liuzheng/articles/159321.html</guid><wfw:comment>http://www.blogjava.net/liuzheng/comments/159321.html</wfw:comment><comments>http://www.blogjava.net/liuzheng/articles/159321.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuzheng/comments/commentRss/159321.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuzheng/services/trackbacks/159321.html</trackback:ping><description><![CDATA[第一种：<br />
在web.xml<br />
加入<br />
&lt;session-config&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;session-timeout&gt;15&lt;/session-timeout&gt;<br />
&lt;/session-config&gt;<br />
第二种针对专门的一个session设计<br />
session.setMaxInactiveInterval(XXX)<br />
<br />
在web.xml中的&lt;servlet&gt;加入<br />
&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;<br />
可以使servlet在容器启动时得到加载，而不用等到第一个request的到达<br />
<br />
<img src ="http://www.blogjava.net/liuzheng/aggbug/159321.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuzheng/" target="_blank">刘铮 </a> 2007-11-09 11:47 <a href="http://www.blogjava.net/liuzheng/articles/159321.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在URL跳转中有关绝对地址和相对地址的确定</title><link>http://www.blogjava.net/liuzheng/articles/159262.html</link><dc:creator>刘铮 </dc:creator><author>刘铮 </author><pubDate>Fri, 09 Nov 2007 01:20:00 GMT</pubDate><guid>http://www.blogjava.net/liuzheng/articles/159262.html</guid><wfw:comment>http://www.blogjava.net/liuzheng/comments/159262.html</wfw:comment><comments>http://www.blogjava.net/liuzheng/articles/159262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuzheng/comments/commentRss/159262.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuzheng/services/trackbacks/159262.html</trackback:ping><description><![CDATA[最初是<br />
http://localhost:8080/app/cool.do<br />
如果是sendRedirect("foo/stuff.html")<br />
那么the Container builds the full URL :<br />
http://localhost:8080/app/cool/foo/stuff.html<br />
<br />
如果是sendRedirect("/foo/stuff.html")<br />
那么the Container builds the full URL :<br />
http://localhost:8080/app/foo/stuff.html<br />
<img src ="http://www.blogjava.net/liuzheng/aggbug/159262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuzheng/" target="_blank">刘铮 </a> 2007-11-09 09:20 <a href="http://www.blogjava.net/liuzheng/articles/159262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用serlvet提供下载</title><link>http://www.blogjava.net/liuzheng/articles/157536.html</link><dc:creator>刘铮 </dc:creator><author>刘铮 </author><pubDate>Thu, 01 Nov 2007 08:57:00 GMT</pubDate><guid>http://www.blogjava.net/liuzheng/articles/157536.html</guid><wfw:comment>http://www.blogjava.net/liuzheng/comments/157536.html</wfw:comment><comments>http://www.blogjava.net/liuzheng/articles/157536.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuzheng/comments/commentRss/157536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuzheng/services/trackbacks/157536.html</trackback:ping><description><![CDATA[例子如下：<br />
&nbsp;pulic class CodeReturn extends HttpServlet{<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException , ServletException {<br />
&nbsp;&nbsp;&nbsp;&nbsp;response.setContentType("application/jar");<br />
&nbsp;&nbsp;&nbsp;&nbsp;ServletContext ctx=getServletContext();<br />
&nbsp;&nbsp;&nbsp;&nbsp;InputStream is=ctx.getResourceAsStream("/bookCode.jar")&nbsp;;//&nbsp;<span style="color: red">Returns the resource located at <br />
the&nbsp;named path as an <code>InputStream</code> object.<br />
<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;int read=0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;byte[] bytes=new byte[1024];&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;OutputStream os=response.getOuputStream<span style="color: #000000">();</span><span style="color: red">//&nbsp;Returns a <span style="color: #ff6600"><code>ServletOutputStream</code> </span>suitable for </span><span style="color: #ff6600">writing binary data in the response,Provides an output stream for sending binary data to the client. A <code>ServletOutputStream</code> object is normally retrieved via the <span style="color: #ff6600"><code>ServletResponse.getOutputStream()</code> </span>method.&nbsp;</span><br />
&nbsp;while((read=is.read(bytes)!=-1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;os.write(bytes,0,read);<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;os.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;os.close();<br />
}<br />
}
<img src ="http://www.blogjava.net/liuzheng/aggbug/157536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuzheng/" target="_blank">刘铮 </a> 2007-11-01 16:57 <a href="http://www.blogjava.net/liuzheng/articles/157536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于原页面与弹出页面之间进行交互的问题的设计</title><link>http://www.blogjava.net/liuzheng/articles/153034.html</link><dc:creator>刘铮 </dc:creator><author>刘铮 </author><pubDate>Mon, 15 Oct 2007 09:32:00 GMT</pubDate><guid>http://www.blogjava.net/liuzheng/articles/153034.html</guid><wfw:comment>http://www.blogjava.net/liuzheng/comments/153034.html</wfw:comment><comments>http://www.blogjava.net/liuzheng/articles/153034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuzheng/comments/commentRss/153034.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuzheng/services/trackbacks/153034.html</trackback:ping><description><![CDATA[web开发过程中，经常会遇到原页面与弹出页面之间进行交互的问题，如果只是简单的变量传递，还是不难的，而我们经常遇到的一个实际场景是：例如有一个用户列表页面，点击&#8220;新建&#8221;按钮，弹出一个创建用户的页面，填写完信息后要提交表单并关闭窗口，同时列表页面中要列出新建的用户，这个时候我们一些开发人员喜欢使用的方式为：<br />
userForm.submit();<br />
opener.location.reload();//或者有些开发人员喜欢用opener.location=列表页面的请求url<br />
window.close();<br />
上面的代码有一个很明显的问题，就是如果表单提交给后台，后台还在处理，而此时原页面已经执行了重载，那么等新用户在后台存储后了，也不会反映到列表页面中了，当然刷新一个就有了，但是就达不到我们所要的效果了。下面给你介绍一种比较稳妥的方式（ajax方式就不介绍了）：<br />
先让表单提交，提交后还是回到弹出的那个页面，或者一个其它的页面，然后在该页面中做判断，如果后台信息处理成功，那么就执行原页面的重载，然后关闭窗口。<br />
当然有些开发人员说，前面的那种方式，一直在项目中使用没有发现什么问题，那我告诉你，那是因为你比较幸运，后台处理速度很快，列表重载的时候，后台已经处理完了，但是一旦后台处理慢了，客户就该找麻烦了。<br />
<br />
<br />
所以常用的设计是：<br />
1。<br />
原来界面中加入<br />
if(showModalDialog(弹出的新的界面))<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;原来界面的query()<br />
}<br />
2。<br />
新的弹出的界面中加入<br />
function init()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(提交成功)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;windows.retrunValue=true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
}<br />
<br />
对于读取后台的处理还是提交后还是回到弹出的那个页面<br />
<img src ="http://www.blogjava.net/liuzheng/aggbug/153034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuzheng/" target="_blank">刘铮 </a> 2007-10-15 17:32 <a href="http://www.blogjava.net/liuzheng/articles/153034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在表现层和业务层之间传递数据减少参数的方法</title><link>http://www.blogjava.net/liuzheng/articles/147127.html</link><dc:creator>刘铮 </dc:creator><author>刘铮 </author><pubDate>Fri, 21 Sep 2007 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/liuzheng/articles/147127.html</guid><wfw:comment>http://www.blogjava.net/liuzheng/comments/147127.html</wfw:comment><comments>http://www.blogjava.net/liuzheng/articles/147127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuzheng/comments/commentRss/147127.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuzheng/services/trackbacks/147127.html</trackback:ping><description><![CDATA[可以使用String 中的split的方法<br />
<br />
<br />
例如：<br />
var parm = '&lt;%=infotype%&gt;'+'@'+'&lt;%=pos%&gt;'+'@'+'&lt;%=arrivetime%&gt;'+'@'+'&lt;%=messageid%&gt;'+'@'+&lt;%=stlist%&gt;<br />
document.all.form[0].action="/XXX.do?"+"parm"=parm<br />
<br />
<br />
<br />
最后解析的时候为<br />
<br />
<br />
&nbsp;&nbsp;String parm = request.getParameter("parm");<br />
&nbsp;&nbsp;String [] par = parm.split("@");<br />
<br />
<br />
这样便可以得到多个参数内容了<br />
<br />
<br />
<img src ="http://www.blogjava.net/liuzheng/aggbug/147127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuzheng/" target="_blank">刘铮 </a> 2007-09-21 15:32 <a href="http://www.blogjava.net/liuzheng/articles/147127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp页面定时刷新的方法</title><link>http://www.blogjava.net/liuzheng/articles/146739.html</link><dc:creator>刘铮 </dc:creator><author>刘铮 </author><pubDate>Thu, 20 Sep 2007 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/liuzheng/articles/146739.html</guid><wfw:comment>http://www.blogjava.net/liuzheng/comments/146739.html</wfw:comment><comments>http://www.blogjava.net/liuzheng/articles/146739.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuzheng/comments/commentRss/146739.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuzheng/services/trackbacks/146739.html</trackback:ping><description><![CDATA[1.利用Javascript对整个页面的刷新<br />
function init(){<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp;var t=120; //定义刷新频率，单位：秒<br />
&nbsp; &nbsp;var t1 = t * 1000;<br />
&nbsp; &nbsp;window.setInterval("refreshY()",t1);－－－－－这里的t1为毫秒<br />
}<br />
function refreshY()<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp; document.forms[0].action=&lt;select:link page="/sysmain.do?method=init_head" /&gt;;<br />
&nbsp; document.forms[0].submit(); <br />
&nbsp; }<br />
然后&lt;body onload="init()"&gt;<br />
这样就可以达到对整个页面的刷新<br />
<br />
2.利用<br />
&lt;%<br />
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<br />
%&gt;<br />
&lt;meta http-equiv="refresh"&nbsp;&nbsp; content="1;url=&lt;%=basePath%&gt;again.do?method=init"&gt; <br />
也可以对页面的刷新　－－－－这里的1为秒<br />
<img src ="http://www.blogjava.net/liuzheng/aggbug/146739.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuzheng/" target="_blank">刘铮 </a> 2007-09-20 11:52 <a href="http://www.blogjava.net/liuzheng/articles/146739.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>