servlet
servlet是sun公司为开发动态web资源而设计的技术
servlet接口的两个默认实现类:GenericServlet和HttpServlet
HttpServlet在实现servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式
如果是GET请求,则调用httpServlet的doGet方法
如果是POST请求,则调用httpServlet的doPost
因此,在编写servlet时,通常只要覆写doGet或doPost等方法,而不用覆写service方法
一个servlet可以被映射到多个URL上,即多个<servlet-mapping>中<servlet-name>的值可以是同一个servlet注册名
<servlet-mapping>中<url-pattern>的值可以使用通配符( * )来定义路径,但只能有两种固定格式:
1. *.拓展名,例:*.do
2. 以/开头,以/*结尾,例:/action/*
<servlet>中的<load-on-startup> :
若没配置则在servlet被请求时才装载并创建servlet实例对象
若配置了<load-on-startup>,当其值为0或大于0,在web应用程序启动时就会装载并创建servlet实例对象,并且调用servlet实例对象的init方法,其值越小,装载并创建该servlet的优先级越高,若值为负数则相当于没配置
即使<load-on-startup>的值设置重复也不会报错,服务器会自己决定初始化顺序
servlet是供servlet引擎调用的Java类,不能独立运行
针对客户端的多次servlet请求,通常,服务器只会创建一个servlet实例对象
servlet实例对象一旦创建,就会驻留在内存中,为后续的请求服务,直至web容器退出,servlet实例对象才销毁
在servlet的整个生命周期内,servlet的init方法只被调用一次
每次请求servlet,servlet引擎都会调用servlet的service方法
每次请求,servlet引擎都会创建一个新的httpServletRequest请求对象和一个新的httpServletResponse响应对象,
然后将这两个对象作为参数传递给servlet引擎调用的servlet的service方法,service方法再根据请求方式调用doGet等方法
缺省servlet:<servlet-mapping>中<url-pattern>为<url-pattern>/</url-pattern>
缺省servlet用于处理其他servlet都不处理的请求

浙公网安备 33010602011771号