Inicializando parametros no JSP

7 respostas
Diego.G.A

Eu defini no meu web.xml os parametros para inicialização do servlet do jsp
so que quando eu vou recuperar ele no meu JSP ele retorna null

web.xml

<servlet>
	<servlet-name>initjsp</servlet-name>
	<jsp-file>/initJSP.jsp</jsp-file>
	<init-param>
		<param-name>nome</param-name>
		<param-value>Diego Gomes Araujo</param-value>
	</init-param>
</servlet>

initJSP.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<%=config.getInitParameter("nome")%>
</body>
</html>

7 Respostas

caio_ferreira

kra, oq acontece, é q vc criou um parametro de inicialização para a servlet.
estou estudando isso faz pouco tempo, mas me parece que seu arquivo web.xml esta errado.

não tenho certeza, mas para acessar essa informação em um jsp, vc deveria declarar assim.

<servlet>

</servlet>

    <context-param>
        <param-name>nome</param-name>
        <param-value>Diego Gomes Araujo</param-value>
    </context-param>

para recuperar o valor assim:

<%= getServletContext().getInitParameter("breed") %>

:smiley:

Diego.G.A

Ai que ta eu não to querendo adicionar o meu parametro como context de inicialização da aplicação.
quero que fique disponivel somente para o servlet do jsp.
e o .java gerado pelo tomcat do meu jsp contem uma variavel local
que é um objeto ServletConfig e a variavel é chmada de config.

Segundo o livro (Use a Cabeça Servlet & JSP) que eu to lendo é assim, so que não funciona.

caio_ferreira

eu to lendo esse mesmo livro, rsrs.
vou tentar aki dessa forma, qualquer coisa, posto aqui.
flw

Diego.G.A

blz!
procura na página 200
capitulo 7

caio_ferreira

eu tava chegando lá, tava na pagina 187, rsrs, vo janta agora, e vou tentar ve oq acontece, testei aqui, ta retornando null mesmo.

wandermudo

Parece ser uma dúvida antiga e frequente no JavaRanch . A solução é criar um mapeamento, como abaixo, e chamar a página a partir daí. Testei. Works fine!

<servlet-mapping>
		<servlet-name>initjsp</servlet-name>
		<url-pattern>/first.do</url-pattern>
	</servlet-mapping>

A única explicação que econtrei foi essa :
http://www.coderanch.com/t/294106/JSP/How-to-initialize-jsp-init
PS: Também estou lendo HFSJ

Diego.G.A

É realmente funciono deste jeito.

valeu!

código ficou assim:

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>  
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"  
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"  
	version="2.4"> 

	<servlet>
		<servlet-name>initJSP</servlet-name>
		<jsp-file>/init_jsp.jsp</jsp-file>
		<init-param>
			<param-name>nome</param-name>
			<param-value>Diego</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>initJSP</servlet-name>
		<url-pattern>/init.do</url-pattern>
	</servlet-mapping>

</web-app>

jsp_init.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
Nome: <%=config.getInitParameter("nome")%>
</body>
</html>
Criado 13 de janeiro de 2009
Ultima resposta 14 de jan. de 2009
Respostas 7
Participantes 3