WEB开发网
开发学院WEB开发Jsp Servlet技巧ABC 阅读

Servlet技巧ABC

 2008-01-05 08:46:07 来源:WEB开发网   
核心提示:Servlet技巧ABC1.利用StringBuffer提高速度.Servlets经常需要显示Html标记,我们很自然想到PRintln()和String串联起来,但是String是很慢的,但是我们用StringBuffer它快很多. 比较这两例:用String, for (int i=0; i<100; i+

  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.

Tags:Servlet 技巧 ABC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接