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()中发送的流。