Servlet技巧ABC

本文介绍了三个Servlet编程技巧:使用StringBuffer提升输出效率;利用HTTP状态码优化错误处理;通过Frames调用Servlet动态生成页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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技巧ABC 1.利用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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值