аргумент в методе init сервлета - PullRequest
0 голосов
/ 31 января 2012
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 ]

3 голосов
/ 31 января 2012

Он передается контейнером сервлету, чтобы сервлет мог сохранить его и вызвать любой из его методов.

Цель super.init(config) - убедиться, что, хотя метод переопределен, базовая реализация тем не менее вызывается.

См. Javadoc метода :

Вызывается контейнером сервлета, чтобы указать сервлету, что сервлет вводится в эксплуатацию. См. Сервлет # init.

Эта реализация хранит объект ServletConfig, который он получает из контейнера сервлета для дальнейшего использования. При переопределении этой формы вызовите метод super.init (config).

указано: init в интерфейсе сервлета

Параметры: config - объект ServletConfig, который содержит информацию о конфигурации для этого сервлета

Параметр init - это параметр, который может быть передан сервлету благодаря дескриптору развертывания (файл web.xml) веб-приложения:

<init-param>
    <param-name>foo</param-name>
    <param-value>bar</param-value>
</init-param>
3 голосов
/ 31 января 2012

ServletConfig - это конфигурация, которую вы настроили в своем файле web.xml, где определен сервлет.

например,

<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") вернет строку "красный".

super.init (config) просто гарантирует, что ваш суперкласс также настроен правильно;хорошая практика.

0 голосов
/ 31 января 2012

вызов super.init - вызов метода init GenericServlet ... это выполняет общую инициализацию сервлета. ServletConfig - это конфигурация init-param в web.xml ... например,

<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");
0 голосов
/ 31 января 2012

Интерфейс ServletConfig представляет параметры инициализации, которые вы предоставляете для любой инициализации сервлета в файле "web.xml" в теге.

например, тема некоторое значение

Метод getInitialparameter возвращает значение параметра init, определенного входными данными для метода.

0 голосов
/ 31 января 2012

Аргумент ServletConfig confg означает - объект ServletConfig, который содержит информацию о конфигурации для этого сервлета

read 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
...