Servlet技巧ABC

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. <淘宝热门商品:
 

35.00 元  

08新款泰迪熊出口日本 1米超大号 抱抱熊/趴趴

 

2.35 元  

露连泉百货超级市场

阿尔卑斯喜缘喜糖 全市最低价


来源:程序员网

小小豆叮

0 Responses to "Servlet技巧ABC"

发表评论