接触了一小段时间的servlet,下面就总结一下关于servlet的两个方面的知识,一个是模板方法的应用。另外一个是servlet多线程产生的原因。
1. 模板方法设计模式
定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。
2. Servlet中模板方法的应用
模板方法在servlet中的应用的类图
当客户端请求一个servlet的时候首先被调用的是service方法。Service方法就是定义骨架的方法,在service方法中会根据HTTP请求的类型(GET,POST还是其他)来调用具体的doGet和doPost等方法;即实际的处理委派给了doGet和doPost等方法,这些子类的方法来最终处理浏览器的请求。下面是HttpServlet对service方法的具体实现。
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String method = req.getMethod();
if (method.equals(METHOD_GET)) {
long lastModified = getLastModified(req);
if (lastModified =