Menu feito em HTML funcionam em JAVA/WEB.XML?

7 respostas
V

Colegas

Fiz um menu vertical em um frame no HTML chamando as páginas via HREF

Porém, já na página chamada pelo menu, ao clicar em qq botão ele me vem uma mensagem de 404 mostrando que não encontrou o servlet embora ele esteja mapeado direito lá no WEB.XML.

Então pergunto : Menu HTML funciona e eu consigo navegar junto com WEB.XML ?

Alguem está passando ou já passou pelo mesmo problema que eu ?

abs

7 Respostas

luistiagos

posta seu web.xml ai…

V

Obrigado amigo, vou descrever tudo que fiz até agora :

Meu menu HTML que está no frame esquerdo

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Menu Associados</title>
<script>
function mostraSubmenu(submenu) {
document.getElementById('arquivo').style.display="none";
document.getElementById('consulta').style.display="none";
document.getElementById('relatorio').style.display="none";
document.getElementById('rotina').style.display="none";
document.getElementById(submenu).style.display="inline";
}
</script>
<style type="text/css">
<!--
.Minhas_Fontes {
	font-family: Arial, Helvetica, sans-serif;
	color: #003366;
	font-size: 12px;
	font-weight: bold;
	margin-top: 5px;
}
-->
<!--
a:link {text-decoration: none; color:#003366}
a:visited {text-decoration: none; color:#003366}
a:active {text-decoration: none; color:#003366}
body {
	background-color: #FFFFEA;
}
-->

</style>

</head>


<body>
<form action="Menu" method="post">

<div> <a href="#" class="Minhas_Fontes" onclick="mostraSubmenu('arquivo')">Arquivo</a></div>
<div id="arquivo" style="display:none">
	<div class="Minhas_Fontes" style=" position:relative;left:05px;"><a href="../cidade/Cidade.jsp" target="principal">Cidade</a></div>
	<div class="Minhas_Fontes" style=" position:relative;left:05px;"><a href="../desfiliacao/Desfiliacao.jsp" target="principal">Desfiliações</a></div>
	<div class="Minhas_Fontes" style=" position:relative;left:05px;"><a href="../endereco/Endereco.jsp" target="principal">Endereço Comercial</a></div>
	<div class="Minhas_Fontes" style=" position:relative;left:05px;"><a href="../socio/Socio.jsp" target="principal">Sócios</a></div>
</div>

Este menu chama os JSP´s numa boa

Lá nos meus jsp´S eu tb uso uma função JAVASCRIPT para navegação :

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
<!--
	function enviar(acao){
		document.forms[0].dispatchMethod.value = acao;
		document.forms[0].submit();
	}
//-->
</script>
</head>
<body>
<form action ="Cidade" method="post">
	<input type="hidden" name="dispatchMethod">
	<table>
	<tr>
	<td>
		<input type="button" value="Salvar" onclick="enviar('salvar')" />
	</td>
	</tr>
	</table>
</form>
</body>
</html>

Meu WEB.XML :

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" 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">
	<display-name>Socios</display-name>
	<servlet>
		<servlet-name>Socio</servlet-name>
		<servlet-class>org.sindieletro.servlet.SocioSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Cidade</servlet-name>
		<servlet-class>org.sindieletro.servlet.CidadeSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Funcao</servlet-name>
		<servlet-class>org.sindieletro.servlet.FuncaoSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Telefone</servlet-name>
		<servlet-class>org.sindieletro.servlet.TelefoneSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Endereco</servlet-name>
		<servlet-class>org.sindieletro.servlet.EnderecoSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Financeiro</servlet-name>
		<servlet-class>org.sindieletro.servlet.FinanceiroSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Login</servlet-name>
		<servlet-class>org.sindieletro.servlet.LoginSL</servlet-class>
	</servlet>
	<servlet>
		<servlet-name>Menu</servlet-name>
		<servlet-class>org.sindieletro.servlet.Menu</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Socio</servlet-name>
		<url-pattern>/SocioSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Cidade</servlet-name>
		<url-pattern>/CidadeSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Funcao</servlet-name>
		<url-pattern>/FuncaoSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Telefone</servlet-name>
		<url-pattern>/TelefoneSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Endereco</servlet-name>
		<url-pattern>/EnderecoSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Financeiro</servlet-name>
		<url-pattern>/FinanceiroSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Login</servlet-name>
		<url-pattern>/LoginSL</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>Menu</servlet-name>
		<url-pattern>/Menu</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!--jsp-config>
 		<taglib>
 			<taglib-uri>/WEB-INF/tld/c.tld</taglib-uri>
 			<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
 		</taglib>
 		<taglib>
 			<taglib-uri>/WEB-INF/tld/fmt.tld</taglib-uri>
 			<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
 		</taglib>
 	</jsp-config-->
 	<session-config>
        <session-timeout>30</session-timeout>
    </session-config> 
</web-app>

O erro ao clicar no botão do JSP Cidade.jsp

HTTP Status 404 - /Socios/Paginas/cidade/Cidade

--------------------------------------------------------------------------------

type Status report

message /Socios/Paginas/cidade/Cidade

description The requested resource (/Socios/Paginas/cidade/Cidade) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.25

Mais uma vez obrigado

Se precisar eu envio o meu projeto todo via MP

vimieiro

jgbt

ola,
na action do fom/link vc precisa usar o mesmo valor que esta definido na tag url-mapping do seu web xml.
por exemplo, web.xml:

&lt;servlet&gt;
    &lt;servlet-name&gt;TesteServlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;br.com.servlet.TesteServlet&lt;/servlet-class&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;TesteServlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;/TesteServlet&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;

e no form/link:

<a >TesteServlet</a>

note que no web.xml esta “/TesteServlet” com a “/” mas na pagina html isso não é necessario, somente “TesteSevlet” é o suficiente.
isso tem que funcionar.
recomendo que vc de uma estudada na documentação e em exemplos de aplicações web para entender o pq desse comportamento.

[]´s

V

Obrigado amigo João mas …

Quando no Menu que fiz em HTML utilizando Javascript eu clico em qualquer link, ele abre a página certa no lugar certo, ou seja no frame principal.
O problema só ocorre quando, já dentro da Página/Form eu preencho os dados e clico em qq botão para atualização ou Leitura ou qq outro botão ele “fica perdido” e me mostra o ERRO 404 automaticamente.

Veja que estou fazendo corretamente o mapeamento no Web.Xml.

Mais uma vez muito obrigado mesmo

Estou agarrado com isso faz 2 dias …

:cry: :cry: :cry: :cry:

V

Observei que logo após vc clicar em algum botão ele já aparece a mensagem
de erro 404.
É como se ele ignorasse o mapeamento lá no WEB.XML !!!

Vejam a imagem em anexo, ela dá uma noção do que estou falando.

Algum colega por favor me ajude

Vimieiro


V

Amigos vejam :

Para resolver o problemas deve-se incluir antes do nome da Servlet, o context root da aplicação, mas não é uma boa pratica incluir o nome diretamente no código /Socios/CidadeSL, a melhor maneira é pegar o nome do contexto dinamicamente para isso dentro da sua página jsp, utiliza a seguinte chamada ${pageContext.request.contextPath}, então a declaração do seu form tem que ficar assim:

Muito obrigado pela força de todos

Vimieiro :smiley: :smiley:

jgbt

Não sei os detalhes da sua aplicação, mas isso não deveria ser necessario.
Somente o mapeamento correto do Sevlet no web.xml é o suficiente.

[]´s

Criado 22 de janeiro de 2008
Ultima resposta 28 de jan. de 2008
Respostas 7
Participantes 3