总结在servlet开发中的问题
1. 不要使用SingleThreadModel
SingleThreadModel保证servlet一次仅处理一个请求。如果一个servlet实现了这个接口
servlet引擎将为每个新的请求创建一个单独的servlet实例,这将引起大量的系统开销。
如果你需要解决线程安全问题,请使用其他的办法替代这个接口。SingleThreadModel
在Servlet 。
2. 注意GenericServlet的使用
此类提供了servlet接口的基本实现部分,其service()方法被申明为abstract,因此需
要被派生。init(ServletConfig conf)方法把servletConfig对象存储在一个private
transient(私有临时)实例变量里,getServletConfig()方法返回指向本对象的指针,
如果你重载此方法,将不能使用getServletConfig来获得ServletConfig对象,如果确
实想重载,
3. 为了保证servlet的同步,常使用synchronize,应该避免或最小化 Servlet 中的同步
在 servlet 中不出现同步是最佳选择,然而,如果应用程序设计无法避免同步,那么
请使用“锁对象(lock Object)”并且锁定可用性最小的代码路径。请不要同步 servlet
的 service 方法或 doGet 以及 doPost 方法,见下面代码,注意红色的部分:
public class XXXServletsextends HttpServlet
{
private int intvar = 0;
private ds = null;
public void doGet(HttpServletRequest request, HttpServletResponse response)throws .....
{
Connection conn = null;
ResultSet rs = null;
PreparedStatement pStmt = null;
int startingRows;
try
{
synchronized(this) // Locks out Most of the Servlet Processing
{
startingRows = intvar;
String employeeInformation = null;
conn = (usename, pwd);
pStmt =
("select * from employee");
rs = ();
}
}
catch (Exception es)
{
// E
SERVLET总结 来自淘豆网m.daumloan.com转载请标明出处.