servlet的init方法中的参数

时间:2012-01-31 09:43:43

标签: java java-ee servlets init

public class initCounter extends HttpServlet {
     int count;
     public void init(ServletConfig config) throws ServletException {
        super.init(config); // purpose of this method ?
        String initial = config.getInitialParameter("initial");
     }
}

在方法init中,参数ServletConfig表示什么?它是为了什么?电话super.init(config)做了什么?这个陈述的目的是什么?

我读到方法getInitialparameter返回初始参数,但什么是初始参数

5 个答案:

答案 0 :(得分:3)

它由容器传递给servlet,以便servlet能够存储它,并调用它的任何方法。

super.init(config)的目的是确保尽管覆盖了该方法,但仍然会调用基本实现。

请参阅the javadoc of the method

  

由servlet容器调用,以向servlet指示servlet正在投入使用。请参阅Servlet #init。

     

此实现存储从servlet容器接收的ServletConfig对象供以后使用。当覆盖这种形式时   方法,调用super.init(config)。

     

指定人:      接口Servlet中的init

     

参数:      config - 包含此servlet的配置信息的ServletConfig对象

由于Web应用程序的部署描述符(web.xml文件),init参数是可以设置为servlet的参数:

<init-param>
    <param-name>foo</param-name>
    <param-value>bar</param-value>
</init-param>

答案 1 :(得分:3)

ServletConfig是您在web.xml中配置的配置,其中定义了servlet。

e.g。

<servlet>
    <servlet-name>redteam</servlet-name>
    <servlet-class>mysite.server.TeamServlet</servlet-class>
    <init-param>
        <param-name>teamColor</param-name>
        <param-value>red</param-value>
    </init-param>
    <init-param>
        <param-name>bgColor</param-name>
        <param-value>#CC0000</param-value>
    </init-param>
</servlet>

getInitParameter(“teamColor”)将返回字符串“red”。

super.init(config)将确保您的超类也正确配置;良好的做法。

答案 2 :(得分:0)

  

参数ServletConfig confg意味着 - ServletConfig对象   包含此servlet的配置信息

阅读javaDoc

init

public void init()
          throws ServletException

    A convenience method which can be overridden so that there's no need to call super.init(config).

    Instead of overriding init(ServletConfig), simply override this method and it will be called by GenericServlet.init(ServletConfig config). The ServletConfig object can still be retrieved via getServletConfig().

    Throws:
        ServletException - if an exception occurs that interrupts the servlet's normal operation

也请参考javadoc

init

public void init(ServletConfig config)
          throws ServletException

    Called by the servlet container to indicate to a servlet that the servlet is being placed into service. See Servlet.init(javax.servlet.ServletConfig).

    This implementation stores the ServletConfig object it receives from the servlet container for later use. When overriding this form of the method, call super.init(config).

    Specified by:
        init in interface Servlet

    Parameters:
        config - the ServletConfig object that contains configutation information for this servlet
    Throws:
        ServletException - if an exception occurs that interrupts the servlet's normal operation

答案 3 :(得分:0)

ServletConfig接口表示您为标记中“web.xml”文件中的任何servlet初始化提供的init参数。

例如 话题 一些价值

getInitialparameter方法返回由方法输入定义的init param的值。

答案 4 :(得分:0)

super.init调用是调用GenericServlet的init方法...这将执行servlet的通用初始化。 ServletConfig是web.xml中的init-param配置...例如

<servlet>
    <init-param>
        <param-name>config-location</param-name>
        <param-value>classpath:my.xml</param-value>
    </init-param>

    <servlet-name>MyService</servlet-name>
    <servlet-class>
        org.me.my.MyServlet
    </servlet-class>
</servlet>

将返回“classpath:my.xml”: -

config.getInitialParameter("config-location");