开发者社区> 问答> 正文

servlet继承中InitParam的关系问题

一个abstract的FatherServlet,继承自HttpServlet,

web.xml定义如下:

<servlet>
    <servlet-name>FatherServlet</servlet-name>
    <servlet-class>test.bll.FatherServlet</servlet-class>
    <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
    </init-param>
  </servlet>

其init方法如下:

public void init() throws ServletException {
        debug = getInitParameter("debug");
        super.init();
    }
一个SonServlet继承自FatherServlet,web.xml定义如下:

<servlet>
    <servlet-name>SonServlet</servlet-name>
    <servlet-class>test.bll.son.SonServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>SonServlet</servlet-name>
    <url-pattern>/son</url-pattern>
  </servlet-mapping>

其init方法如下:

    public void init() throws ServletException {
        // TODO Auto-generated method stub
        super.init();
    }

页面请求/son,具体处理都在FatherServlet里,但是总是提示debug为空。

我知道只要在SonServlet的web.xml里定义Init-Param就可以解决,想问能不能不在子类里定义参数即可解决该问题。

拜谢了

展开
收起
小旋风柴进 2016-02-29 17:36:51 2207 0
1 条回答
写回答
取消 提交回答
  • 你在 web.xml 中定义了两个 Servlet ,尽管都是 FatherServlet 类的实例,但这是两个不同的实例。

    第一个 FatherServlet 可以获取到 debug 参数,而第二个SonServlet则获取不到。

    2019-07-17 18:50:41
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载