文档章节

super.init(config)调用的原理

o
 osc_fmg49rzg
发布于 2019/03/20 12:49
字数 483
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

注明出处,作者:李佳

https://blog.csdn.net/feijianxia/article/details/1711762

 

servlet的init(ServletConfig config)方法中会有一个super.init(config);其原理如下:
1.如果用户不需要设置一些初始化操作,那么init()方法的实现可有可无,因为可以从父类GenericServlet中继承得到.

2.如果用户需要servlet通过<init-param>从web.xml中读取initialization parameters或者configuration data,那么就需要显式实现init()方法.

3.GenericServlet 提供两个overloaded形式的方法如下:
  public void init() throws ServletException
  public void init(ServletConfig) throws ServletException

4.Servlet interface只定义一个init(ServletConfig)方法,而且servlet加载时必须被调用,但只在第一次加载被调用一次.

5.GenericServlet实现了这个init(ServletConfig)方法,这个方法先保存ServletConfig reference,然后调用init()方法.

6.如果用户servlet实现init()方法并在其中填充自己需要初始化的信息,这个init()会被GenericServlet中的init(ServletConfig)方法调用.因为ServletConfig reference已经

被保存,所以你可以访问web.xml中的<init-param>.

7.如果用户servlet实现init(ServletConfig),那么就覆盖了GenericServlet(父类)的init(ServletConfig)方法,因此,GenericServlet会调用子类的方法,而不会保存

ServletConfig reference,必须执行super.init(config);才能保存ServletConfig reference访问web.xml中的<init-param>.

8.所以你有两种方法初始化,如下:
第一种方法是
public class LoginServlet extends HttpServlet {
 public void init() throws ServletException {
 
 }
  //...Rest of Servlet
}
第二中方法是
public class LoginServlet extends HttpServlet {
 public void init(ServletConfig config) throws ServletException {
   super.init(config);
   // ...Remainder of init() method
 }
  //...Rest of Servlet
}

9.servlet初始化正常结束,才能处理处理用户的请求,如果在初始化方法init()中出现错误,那么需要throw a ServletException或者父类的UnavailableException.这会告诉

servlet容器初始化失败,不能处理任何请求.
---------------------
作者:feijianxia
来源:CSDN
原文:https://blog.csdn.net/feijianxia/article/details/1711762
版权声明:本文为博主原创文章,转载请附上博文链接!

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Pycharm文件打开方式

Pycharm修改文件默认打开方式 新下载了一个Pycharm,建了个小demo,期间产生了一个sqlite3文件,由于是第一次打开,就弹出选择打开方式的对话框,手一块直接点了个Text,然后就乱码了: 那我...

osc_fi9eaftu
4分钟前
0
0
微信域名检测中反应速度的重要性

随着微信域名检测的普及,越来越多的人重视这方面有个客户是这样跟我说的,他现在用的那个检测有频率限制 最快只能一秒检测一个, 并发多的时候是不能边跳转边检测的, 只能写到计划任务里面...

mkapi01
5分钟前
0
0
状压dp大总结1 [洛谷]

前言 状态压缩是一种\(dp\)里的暴力,但是非常优秀,状态的转移,方程的转移和定义都是状压\(dp\)的难点,本人在次总结状压dp的几个题型和例题,便于自己以后理解分析状态和定义方式 状态压缩...

osc_s28jz759
6分钟前
0
0
aspnet core 2.1中使用jwt从原理到精通一

目录 原理; 根据原理使用C#语言,生成jwt; 自定义验证jwt; 使用aspnetcore 中自带的类生成jwt; 学有所得 了解jwt原理; 使用C#轻松实现jwt生成和验证 原理 jwt对所有语言都是通用的,只要...

osc_1ls4yaq1
8分钟前
0
0
github上DQN代码的环境搭建,及运行(Human-Level Control through Deep Reinforcement Learning)conda配置

最近师弟在做DQN的实验,由于是强化学习方面的东西,正好和我现在的研究方向一样于是我便帮忙跑了跑实验,于是就有了今天的这个内容。 首先在github上进行搜寻,如下图: 发现第一个星数最多...

osc_252iaxru
9分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部