Fazendo um sendRedirect pelo web.xml tem como?

13 respostas
faeldix

DD

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  
[b]  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>[/b]
  
  <servlet>
		<display-name>Controller</display-name>
		<servlet-name>Controller</servlet-name>
		<servlet-class>com.example.web.MeuServlet</servlet-class>
  </servlet>
  
    <servlet>
		<display-name>Controller2</display-name>
		<servlet-name>Controller2</servlet-name>
		<servlet-class>com.example.web.MeuServlet2</servlet-class>
	</servlet>
	
[b]	<servlet>
		<servlet-name>jspTeste</servlet-name>
		<jsp-file>/index.jsp</jsp-file>
		<init-param>
			<param-name>email</param-name>
			<param-value>[email removido]</param-value>
		</init-param>
	</servlet>[/b]
	
[b]	<servlet-mapping>
		<servlet-name>jspTeste</servlet-name>
		<url-pattern>/bemvindo</url-pattern>
	</servlet-mapping>[/b]
 
	<servlet-mapping>
		<servlet-name>Controller</servlet-name>
		<url-pattern>/Controller</url-pattern>
	</servlet-mapping>
	
	<servlet-mapping>
		<servlet-name>Controller2</servlet-name>
		<url-pattern>/Controller2</url-pattern>
	</servlet-mapping>	
	
	<listener>
		<listener-class>com.example.listener.MyListener</listener-class>
	</listener>
	
	<context-param>
	<param-name>Parametro01</param-name>
	<param-value>Parametro de Contexto</param-value>
	</context-param>

</web-app>

to tendo que fazer assim :/

<html>
	
	<%!private boolean situation = false;%>
	
	<%
		if(this.situation == false){
		response.sendRedirect(application.getContextPath() + "/bemvindo");
		this.situation = true;
		}	
	%>
	<body>
	
		<h1>Beer Selection Page</h1>
		
		<p>Olá ${cookie.user.value}</p>
		<p>Select beer charaacteristics</p>
		<%=config.getInitParameter("email")%>
		<form action="Controller" method="POST" >
				<select name="other" size="1">
					<option value="light">light</option>
					<option value="amber">amber</option>
					<option value="brown">brown</option>
					<option value="dark">dark</option>
				</select>
			<input type="submit" value="Buscar"/>
		</form>
	</body>
	
</html>

Isso ai so ia funcionar pro primeiro que entrasse depois ja era..

13 Respostas

mauricioadl

se sua aplicação for com jsf sei que tem como, mas somente com jsp acho q nao tem. vc pode fazer algo usando a tag jsp:forward para contornar o problema, veja esse link
http://java.sun.com/products/jsp/tags/11/syntaxref11.fm9.html

[]'s

rmendes08

Pelo o que eu entendi, você quer que se o usuário está visitando a página pela primeira vez, ele é redireciondo para uma página de boas vindas, e nas visitas subsequentes ele deve ir para a página normalmente, é isso ?

faeldix

vou simplificar… querendo que a aplicacao comece utilizando um url-pattern (servlet)…
pronto

mauricioadl

faeldix:
vou simplificar… querendo que a aplicacao comece utilizando um url-pattern (servlet)…
pronto

piorou! hehehe

rmendes08

faeldix:
vou simplificar… querendo que a aplicacao comece utilizando um url-pattern (servlet)…
pronto

Cara, é mais fácil você explicar a funcionalidade que você quer implementar do que explicar o “como” você quer fazer. É controle de acesso ? login ? você quer que o usuário seja direcionado para uma página de acordo com algum perfil ou valor no banco de dados ?

faeldix

quero fazer mais ou menos isso

<welcome-file-list> <welcome-file>/boasvindas.jsp</welcome-file> </welcome-file-list>

/boasvindas.jsp é um url pattern… esta configurado pro servlet

<servlet> <servlet-name>jspTeste</servlet-name> <jsp-file>/index.jsp</jsp-file> <init-param> <param-name>email</param-name> <param-value>[email removido]</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>jspTeste</servlet-name> <url-pattern>/bemvindo</url-pattern> </servlet-mapping>[/b]

rmendes08

faeldix:
quero fazer mais ou menos isso

<welcome-file-list> <welcome-file>/boasvindas.jsp</welcome-file> </welcome-file-list>

/boasvindas.jsp é um url pattern… esta configurado pro servlet

<servlet> <servlet-name>jspTeste</servlet-name> <jsp-file>/index.jsp</jsp-file> <init-param> <param-name>email</param-name> <param-value>[email removido]</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>jspTeste</servlet-name> <url-pattern>/bemvindo</url-pattern> </servlet-mapping>[/b]

Cara, na boa, você tá deixando a coisa difícil demais … você quer configurar uma jsp como welcome-file , para essa jsp te direcionar para um Servlet, que por sua vez é outra jsp !!! :shock: Por que você já não coloca a index.jsp como welcome-file logo de uma vez ?

faeldix

pq eu preciso acessar o servletconfig nessa mesma pagina rs pra pegar o parametros no dd.
queria fazer com que ele fosse logo pro /bemvindo ao inves de ir pro jsp e depois ir pro servlet

rmendes08

faeldix:
pq eu preciso acessar o servletconfig nessa mesma pagina rs pra pegar o parametros no dd.
queria fazer com que ele fosse logo pro /bemvindo ao inves de ir pro jsp e depois ir pro servlet

Ué, configure a index.jsp como e configure o parâmetro como um parâmetro de contexto:

<web-app>
   <!-- .... -->

   <context-param>
      <param-name>email</param-name>
      <param-value>[email removido]</param-value>
    </context-param>
</web-app>

Assim o parâmetro fica disponível para qualquer Servlet e qualquer jsp a partir do ServletContext.

faeldix

rmendes08:
faeldix:
pq eu preciso acessar o servletconfig nessa mesma pagina rs pra pegar o parametros no dd.
queria fazer com que ele fosse logo pro /bemvindo ao inves de ir pro jsp e depois ir pro servlet

Ué, configure a index.jsp como e configure o parâmetro como um parâmetro de contexto:

<web-app>
   <!-- .... -->

   <context-param>
      <param-name>email</param-name>
      <param-value>[email removido]</param-value>
    </context-param>
</web-app>

Assim o parâmetro fica disponível para qualquer Servlet e qualquer jsp a partir do ServletContext.

esse e o grande lance… precisava que fosse acessivel somente por um servlet em questao…
nao queria que a informacao ficasse disponivel a todos os servlets entende? deve haver alguma forma nao e possivel rs

rmendes08

Bom, você pode usar a url-pattern / para o seu servlet, e retirar as tags de welcome-file:

<servlet>    
        <servlet-name>jspTeste</servlet-name>    
        <jsp-file>/index.jsp</jsp-file>    
        <init-param>    
            <param-name>email</param-name>    
            <param-value>[email removido]</param-value>    
        </init-param>    
</servlet>  
<servlet-mapping>    
        <servlet-name>jspTeste</servlet-name>    
        <url-pattern>/</url-pattern>    
</servlet-mapping>
faeldix

rmendes08:
Bom, você pode usar a url-pattern / para o seu servlet, e retirar as tags de welcome-file:

<servlet> <servlet-name>jspTeste</servlet-name> <jsp-file>/index.jsp</jsp-file> <init-param> <param-name>email</param-name> <param-value>[email removido]</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>jspTeste</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

dica simples e super inteligente… obrigado!
funcionou perfeitamente!

ViniGodoy

Tópico movido para o fórum de desenvolvimento web. Por favor, leia com atenção a lista de fóruns antes de postar.

Criado 29 de fevereiro de 2012
Ultima resposta 1 de mar. de 2012
Respostas 13
Participantes 4