Servlet技巧ABC
来源:互联网 发布:类似于xmind的软件 编辑:程序博客网 时间:2024/06/05 06:37
<script type="text/javascript">google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";google_ad_width = 336;google_ad_height = 280;//</script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>Servlet技巧ABC1.利用StringBuffer提高速度.Servlets经常需要显示HTML标记,我们很自然想到println()和String串联起来,但是String是很慢的,但是我们用StringBuffer它快很多. 比较这两例:用String,
for (int i=0; i<100; i ) { out.println("Data for " i " is " method1() " , " method2() ".<br>"); } out.close();
用StringBuffer,可发这样: StringBuffer buf = new StringBuffer(); for (int i=0; i<100; i ) { buf.append("Data for ").append(i).append(" is ").append(method1()); buf.append(" , ").append(method2()).append(".<br>"); } response.setContentLength(buf.length()); out.println(buf.toString()); out.close();
我们用StringBuffer实现我个问题减少了对像的创建个数,所以它比out.println()更有效. 2.利用HTTP Status Codes显示出错信息.比如我们常用类似下面的处理public void openFile( String fileName ) { try { someOtherMethodToOpenAFile( fileName ); } catch( FileNotFoundException e ) { out.println( "Sorry... File not found." ); }}
为了得用status codes,我们可以这样得用HTTP出错信息: /* 'response' variable is an object of the HttpServletResponse class.*/public void openFile( String fileName ) { try { someOtherMethodToOpenAFile( fileName ); } catch( FileNotFoundException e ) { response.sendError( response.SC_NOT_FOUND ); }}
3.在Frame调用Servlet动态生成页面.在静态页内包含Frame,使"src"指向你希望的Servlet,如: <frameset rows="20%,*" cols="80%,*"> <frame name="Frame1" src="/servlet/someServlet"> <frame name="Frame2" src="/servlet/anotherServlet"></frameset>
Frame的src属性可以指向静态页或是servlet.