Servlet的最佳实践

1、定义公共servlet类
   首先,在创建servlet时,要确保将该servlet的类定义为public。Weblogic

Server(或其他任何应用服务器)需要以这种指定方式来访问类。应用服务器可

能显示缺乏访问的错误,这类错误极难诊断。
2、使用定义的响应代码
   HttpServletresponse为所有HTTP响应代码提供公共的、静态的、最终的定义

。使用它们而不是数字状态代码值,可以提高代码的可读性,减少出错的可能。

例如,与其使用response.sendError("503");不如使用
response.sendError(response.SC_SERVICE_UNAVAILABLE);
3、使用无参数的init()方法
   与其重写HttpServlet方法init(),不如重写init(ServletConfig config)。

在出现servlet2.3规范之前,init()方法必须调用super.init(config)。如果开

发人员忘记进行这项必须得调用,那么servlet就有可能会出错。新的init()方法

更安全一些,因为它不要求开发人员进行任何特殊的调用。
4、使用web应用程序生命周期事件
   可以使用ServletContextListener.contextInitialized()回调来完成初始化

任务,所产生的效果比使用servletgenghsevlet.init()方法将这些初始化任务捆

绑到某一特定的servlet,可以再配置web应用程序方面限制将来的灵活性。监听

器提供了作为整体捆绑到web应用程序的一个初始化机制。
5、牢记可伸缩性
   应避免做一些抑制可伸缩性的事,比如对servlet使用单线程模型。回顾一下

前面的知识就会知道,该模型一次只能允许对servlet执行一个线程。如果可能的

话,不要使用该模型。
6、支持RequestDispatcher
   不要对本地url使用HttpResponse.sendRedirect()。在可以内部地处理请求时

,重定向带来了一些不必要的开销。可以使用RequestDispatcher.forword()方法

将用户重定向到另一个页面(不如,如果用户会话无效的话就重定向到登陆页面

)。
7、调用include()来重用公共组件
   可以使用RequestDispatcher.include()方法来重用公共HTML组件,以便有计

划地包括服务器端。例如,一个应用程序可以包括每一页上的体育部分。编写一

个响应体育得分的servlet,并使每个生成页面上都包含该servlet。
8、不要关闭/终止响应流
   正如前面所提到的,在Weblogic Server不需要多次创建并毁坏servlet来处理

单个客户端会话时,性能就会获得提高。为了避免破坏Keep—Alive优化,不要关

闭或刷新在servic()中发送的流。
   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章