Pergunta

Elementos DD <context-param> e <init-param> Ambos podem ser recuperados pelo getInitParameter() Método, no código do servlet.

Agora a questão é: como isso diferencia <context-param> e <init-param>?

Foi útil?

Solução

Servlet Parâmetros init são apenas para um único servlet. Nada fora desse servlet pode acessar isso. É declarado dentro do <servlet> Tag do descritor de implantação, por outro lado Parâmetro init de contexto é para todo o aplicativo da web. Qualquer servlet ou jsp nesse aplicativo da web pode acessar Parâmetro init de contexto. Parâmetros de contexto são declarados em uma tag <context-param> diretamente dentro do <web-app> marcação.

Os métodos para acessar Parâmetro init de contexto é

getServletContext().getInitParameter("name"); 

enquanto o método para acessar Parâmetro INIT para servlet é

getServletConfig().getInitParameter("name");

Outras dicas

Conforme explicado por Adeel Ansari aqui, depende de qual objeto você está invocando o método getInitParameter() no código do servlet.

Todos os servlets se estende de e, portanto, são a instância de GenericServlet.

.

Elementos DD <context-param> pode ser recuperado por:

ServletContext context = this.getServletContext();
String paramValue = context.getInitParamter("paramName");

.

Elementos DD <init-param> Ambos podem ser recuperados por:

ServletConfig config = this.getServletConfig();
String paramValue = config.getInitParamter("paramName");

Observe também que desde GenericServlet implementos de classe ServletConfig Interface, sua classe de servlet também é servletconfig (implica this = this.getServletConfig() ). Portanto, você também pode obter elementos DD <init-param> diretamente por:

String paramValue = this.getInitParamter("paramName");

.

Você pode tentar isso tendo o mesmo param-name nos dois elementos DD com valores diferentes e depois imprimi-lo em seu servlet.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top