Java WEB开发实战 之 第三部分:Servlet开发(2)【私塾在线原创】
视频配套PPT,视频地址【 Java WEB开发实战视频课程 】
Servlet接口中定义了Servlet基本的回调方法,如下:
init(ServletConfig config)
destroy()
service(ServletRequest request,ServletResponse response)
Web容器管理servlet实例的生命周期,用户不能调用这些方法
我们可提供这些方法的实现,来操纵servlet实例及资源
这三个回调方法构成了Servlet的生命周期的控制方法
init方法
1:init方法在servlet实例首次创建时由Web容器调用
2:Servlet规范确保init方法完成之前该servlet不会处理任何请求
3:需覆盖init方法的情况:创建或打开任何与servlet相关的资源、初始化servlet的状态
service方法
1:service方法由Web容器调用,处理用户请求
2:MyServlet类的父类实现了service方法,根据HTTP请求方法(GET、POST等),将请求分发到doGet、doPost等方法
destroy方法
1:destroy方法在servlet实例被销毁时由Web容器调用
2:Servlet规范确保在destroy方法调用之前所有请求的处理均完成
3:需要覆盖destroy方法的情况:释放任何在init方法中打开的与servlet相关的资源、存储servlet的状态
Servlet接口
init(config:ServletConfig)
service(request,responce)
destroy()
nServletConfig接口
getInitParameter(name:String) : String
getInitParameterNames() : Enumeration
getServletName() : String
1:GenericServlet类实现ServletConfig接口,可直接访问配置
2:Web容器调用GenericServlet类的init(config)方法,存储config对象,然后调用init()方法
3:可在自己的servlet类中覆盖init()方法,不要覆盖init(config)方法
4:getInitParameter方法提供servlet访问servlet实例初始化参数的功能
GenericServlet抽象类
java代码:
nit(config:ServletConfig) init() service(request,responce) destroy() getInitParameter(name:String) : String getInitParameterNames() : Enumeration getServletName() : String HttpServlet init() doPost(request,responce) doGet(request,responce)
示例:在线投票计数,演示Servlet生命周期的功能,并体会Tomcat对Servlet生命周期的控制和基本实现方式——单实例多线程运行。
要注意这种方式是线程不安全的。
初始化参数的部署描述符
java代码:
<servlet>
<servlet-name>EnglishHello</servlet-name>
<servlet-class>examples.web.HelloServlet</servlet-class>
<init-param>
<param-name>greetingText</param-name>
<param-value>Hello</param-value>
</init-param>
</servlet>
说明:初始化参数存储在与Servlet实例相关的ServletConfig对象中,由容器在初始化Servlet实例时自动传入
在Servlet类里面,使用如下语句就可以访问到初始化参数:
参数值 = this. getInitParameter(“参数名称”);
注意:从配置文件读出来的数据都是文本型的,如果需要其他类型,需要做转换
视频配套PPT,视频地址【 Java WEB开发实战视频课程 】
浙公网安备 33010602011771号