servlet接口如下
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
时期:默认是第一个请求该servlet的时候就初始化此servlet,该servlet实例便一直存在,直到长 时间不调用、服务器关闭才销毁 或者 类文件更新后重新载入 。也可手动设置:在服务器 启动时便加载此servlet 。
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>com.alicyu.ServletDemo</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
servlet实例一创建出来,便调用init(ServletConfig var1) 进行初始化, 其中的ServletConfig参数对象携带了该servlet的配置信息,比如初始化参数,此ServletConfig参数由服务器创建。
<servlet>
<servlet-name>ServletDemo</servlet-name>
<servlet-class>com.alicyu.ServletDemo</servlet-class>
<!--两个自定义的初始化参数-->
<init-param>
<param-name>value1</param-name>
<param-value>key1</param-value>
</init-param>
<init-param>
<param-name>value2</param-name>
<param-value>key2</param-value>
</init-param>
</servlet>
通过这种配置方式,就不需要在Servlet中添加、修改,直接修改xml文件即可。
public interface ServletConfig {
String getServletName();
ServletContext getServletContext();
String getInitParameter(String var1);
Enumeration<String> getInitParameterNames();
}
当web服务器认为此servlet没有存在的必要、类重新加载、服务器关闭、长时间未被访问,则可以从内存中销毁。而回收该Servlet内存前必须调用destroy(),web服务器保证该方法被调用时已经结束了请求调用的service()或等待剩余的请求执行完,并且不会再接收请求。当全部请求处理完并响应后,即可destroy() 并进行内存回收
通过上面的描述,其实我们对执行流程已有了大体的认知:
设置了容器启动时初始化 请求第一次请求此Servlet时初始化 Servlet类文件被更新后,重新装载Servlet
本文由 Alicyu 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://www.alicyu.com/archives/Servlet
最后更新:2019-10-18 14:20:27
Update your browser to view this website correctly. Update my browser now