Servlet学习笔记
if(method.equals("get")){
doGet(hreq,hres);
}else if(method.equals("post")){
doPost(hreq,hres);
}
void doPost(HttpServletRequest hreq,HttpServletResponse hres){ }
void doGet(HttpServletRequest hreq,HttpServletResponse hres){
}
}
}
servlet的多线程问题:
解决方式:1.将servlet类做成单例模式;
a.私有的构造器;
b.私有的本类的引用;
c.公有的提供初始化的方法--->调用私有构造器,返回本类的引用;
每有一个用户的请求,我们就产生一个servlet实例。这种方式效
率极低,最不推荐使用!
2.给调用的方法加锁:synchronized
doGet(){
method();
}
synchronized void method(){
}
使用条件:在某些效率要求不高的情况下使用。
3.使用类似于使用局部变量代替实例变量等公用的资源,使用私有的
代替。
4)销毁servlet;
container去调用destroy()方法结束servlet的生命,并且记录操作日志。
1)应用程序手动调用
2)webServer正常关闭时调用
注意:在执行此方法关闭servlet的时候,其过程是等待所有的请求处理完毕, 再关闭,这时候不再分配线程给其他的请求。
clear shutdown
kill -9 processnum
tomcat:
shutdown.sh--->正常关闭
eclipse:点击shutdown--->正常关闭
强制关闭:不会调用destroy()方法
ps -ef | grep tomcat
kill -9 tomacatpronum
eclipse:点击控制台的小红点
3、循环者的新娘/循环者的儿子:一种编程的现象
第四章 资源访问
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库Servlet学习笔记(11)在线全文阅读。
相关推荐: