Linux - redireccionar a otras a la pagina web deseada

   
Vista:

redireccionar a otras a la pagina web deseada

Publicado por nerelaya (13 intervenciones) el 12/03/2009 18:36:05
Hola!

Alguien podria indicarme un tutorial o decirme como se puede redireccionar una pagina web a la pagina web en la que estabas??? Es decir, yo en primer lugar estoy por ejemplo en hola.jsp y miro a ver si te has logueado. si te has logueado puedes seguir a la siguiente pagina a la que te envie y si no estas logueado te lleva a un login.jsp en el que te tienes que loguear y este login.jsp me tiene que llevar a hola.jsp. En el caso de que no estuviera autenticado en otro .jsp el login.jsp me deberia llevar al .jsp donde no se estaba autenticado, pero ahora autenticado.

Alguien podria indicarme como hacerlo!!!!!!!!!!!!!x fis!!!!!!!!!!!!!!

gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:redireccionar a otras a la pagina web deseada

Publicado por mario (17 intervenciones) el 19/03/2009 20:43:47
Eso me suena a que tienes que usar un Filtro J2EE checate en el google Filtros j2EE y ahi te va dar mucha documentacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar a otras a la pagina web deseada

Publicado por nerelaya (1 intervención) el 22/03/2009 09:31:24
gracias, aun asi no encuentro un tutorial con ejemplos sobre como poder hacer un filtro que redireccione a una pagina web de login y que esta te lleve a donde estabas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar a otras a la pagina web deseada

Publicado por mario (17 intervenciones) el 22/03/2009 23:39:08
Pues es dicifil q encuentres algo como tu te lo imagines, pero lo puedes programar....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar a otras a la pagina web deseada

Publicado por nerelaya (13 intervenciones) el 23/03/2009 09:53:57
Ya se que es dificil encontrar un filtro que haga lo que yo quiera exactamente. He intentado hacer un filtro que mire una sesion y al arrancar el tomcat me sale un error que no se quitar.

Estoy intentando realizar un filtro j2ee para poder mirar en cada servlet o jsp si se ha creado una sesion con los datos del usuario, pero no encuentro un ejemplo entero para realizar esto y lo creado es el siguiente .java:

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;

public class LoginFilter implements Filter{

public FilterConfig filterConfig;

public void doFilter (ServletRequest req, ServletResponse res, FilterChain chain) throws java.io.IOException, javax.servlet.ServletException, ServletException {
HttpSession session;
if (req instanceof HttpServletRequest){
session = ((HttpServletRequest)req).getSession();
if (session.getAttribute("user") != null){
chain.doFilter(req, res);
}else{
((HttpServletResponse)res).sendRedirect(((HttpServletRequest)req).getContextPath() + "Login");
}
}
}

public void init(final FilterConfig filterConfig) {
this.filterConfig = filterConfig;
}

public void destroy() {
this.filterConfig = null;
}

}

y en el web.xml:

<filter>
<filter-name>LoginFilter</filter-name>
<filter-name>LoginFilter</filter-name>
</filter>

<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

Pero al arrancar tomcat me pone el siguiente error:

20-mar-2009 5:40:32 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386/client:/usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.10/jre/../lib/i386:/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/jvm/java-6-openjdk/jre/../lib/i386:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/lib:/usr/lib
20-mar-2009 5:40:32 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Inicializando Coyote HTTP/1.1 en puerto http-8080
20-mar-2009 5:40:32 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 3702 ms
20-mar-2009 5:40:33 org.apache.catalina.core.StandardService start
INFO: Arrancando servicio Catalina
20-mar-2009 5:40:33 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.23
20-mar-2009 5:40:33 org.apache.catalina.core.StandardHost start
INFO: Desactivada la validación XML
20-mar-2009 5:40:33 org.apache.catalina.util.ExtensionValidator addFolderList
GRAVE: Failure loading extension /usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/ext/mysql-connector-java-3.1.8-bin.jar
java.io.FileNotFoundException: /usr/lib/jvm/java-6-sun-1.6.0.10/jre/lib/ext/mysql-connector-java-3.1.8-bin.jar (Permiso denegado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.apache.catalina.util.ExtensionValidator.addSystemResource(ExtensionValidator.java:209)
at org.apache.catalina.util.ExtensionValidator.addFolderList(ExtensionValidator.java:410)
at org.apache.catalina.util.ExtensionValidator.<clinit>(ExtensionValidator.java:104)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4064)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
20-mar-2009 5:40:34 org.apache.catalina.core.StandardContext filterStart
GRAVE: Excepción arrancando filtro LoginFilter
java.lang.NullPointerException
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:201)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:302)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:78)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3635)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4222)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
20-mar-2009 5:40:34 org.apache.catalina.core.StandardContext start
GRAVE: Error filterStart
20-mar-2009 5:40:34 org.apache.catalina.core.StandardContext start
GRAVE: Falló en arranque del Contexto [/proyecto] debido a errores previos
20-mar-2009 5:40:35 org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: [org.apache.webapp.balancer.RuleChain: [org.apache.webapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], [org.apache.webapp.balancer.rules.RequestParameterRule: Target param name: paramName / Target param value: paramValue / Redirect URL: http://www.yahoo.com], [org.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
20-mar-2009 5:40:36 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
20-mar-2009 5:40:36 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
20-mar-2009 5:40:36 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
20-mar-2009 5:40:36 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
20-mar-2009 5:40:37 org.apache.coyote.http11.Http11BaseProtocol start
INFO: Arrancando Coyote HTTP/1.1 en puerto http-8080
20-mar-2009 5:40:37 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
20-mar-2009 5:40:38 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/226 config=null
20-mar-2009 5:40:38 org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
20-mar-2009 5:40:38 org.apache.catalina.startup.Catalina start
INFO: Server startup in 5536 ms

Y no se como arreglarlo, alguien podria indicarme que es lo que realizo mal o darme alguna url donde haya ejemplos completos de esta clase de filtro.

X otra parte, como se llama desde un servlet o un jsp a estos filtros para poder ver si se ha creado la sesion y como puedo redireccionar a que se logue el usuario y volver a la pagina en la que estaba antes de loguearse.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar a otras a la pagina web deseada

Publicado por Dani (3 intervenciones) el 21/05/2009 12:51:27
hola Nerelaya,

Yo lo que estoy intentando hacer, me imagino que igual que tu, es usar el filtro para restringir a usuarios que no esten logueados que puedan acceder a las paginas de mi proyecto.

Estuve mirando por internet y por foros y mas o menos es como tu pusiste, pero claro esta que a mi no me funciona, me imagino q algo faltara.

por ejemplo, en los archivos .jsp existe la instruccion "response.sendRedirect('pagina redireccionar') y en java me imagino q habra una cosa igual pero yo no la se jeje, yo probe hacer esto que digo de otra manera, ahora queria implemantarlo con filtros.

Con respecto al error que te da, yo creo ( 100% posible de que este equivocado ) q es por lo siguiente

( en el archivo web.xml)

<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

donde pones "url-pattern" con el asterisco coges todos los archivos, no se si del sistema o de tu proyecto
entonces , la primera pagina que tienes pa loguearte se supone que no estas logueada, valga la redundancia,
pero le estar aplicando el filtro igual , como si esa pagina no se pudiera entrar si no estas logueado, no se si me explico, haces como un bucle infinito ( pagina de login => redirecciona a la pagina de login =>.... porque no estas logueada )

La solucion es que repitas el "filter-mapping" para todas las paginas que quieres que cojan el filtro, o es lo que vi en los ejemplos, claro esta que como era un ejemplo....

Como dije antes SEGURO que estoy equivocado al 100% pero es la idea que tengo espero haberte ayudado o darte alguna idea para que sigas adelante :-P yo tambien lo intentare haber q pasa

Quiza ese error que te da sea otra cosa jeje entonces ... escribi pa na :-P

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar a otras a la pagina web deseada

Publicado por Dani (3 intervenciones) el 21/05/2009 12:58:34
Se me olvidaba no se si esto se puede hacer o no, si no borrarme el mensaje

paginas que hablan de filtros

http://javaweb.osmosislatina.com/curso/filtros/Filtro_ImpuestosRegistro.htm

http://javaweb.osmosislatina.com/curso/filtros/webxml_filtros.htm

http://www.forosdelweb.com/f45/problema-con-sessiones-filtros-struts-531643/

http://www.autonecrologia.net/?p=101

http://weblog.v-code.org/2005/10/filtros-con-j2ee/

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:redireccionar ( solucionado )

Publicado por Dani (3 intervenciones) el 21/05/2009 18:08:51
Ya lo tengo solucionado, olvidar los otros dos que puse, aunque sean verdad o no jeje

Yo tengo una pagina principal que se llama "entrada.jsp" desde hay saco un formulario con dos campos, NOMBRE, y PASS y un boton para autentificar, lo que se pretende es que si no estas logueado no te deje entrar en las paginas, si estas, pues si.

Yo cree una clase que se llama "filtro" donde compruebo si esta logueado o no, tiene tres metodos :
-init
-destroy
-doFilter

El doFilter es donde tenemos que hacerlo todo

Vamos paso por paso:

1) voy a mostrar lo que tengo puesto en el archivo "web.xml" ya que la explicacion tiene mucho que ver

lo unico que se necesita es estas dos cosas

// nombre del filtro y donde esta metido

<filter>
<filter-name>Filtro</filter-name>
<filter-class>hola.Filtro</filter-class>
</filter>

// aqui ponemos el o las paginas q pasaran por el filtro, nombre del filtro y la extension de las paginas afectadas
// en este caso .jsf

<filter-mapping>
<filter-name>Filtro</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
// de esta manera afecta a todas

// otra forma de ponerlo es especificando la pagina que quieres que pase poniendo en
// <url-pattern>/nombrePagina.jsf</url-parttern>

2)Si recordais , arriba puse que mi pagina principal era "entrada.jsp" entonces como tengo puesto en el filtro que coja todas las extensiones de jsf ,tambien cogera esta, por lo tanto, al arrancar la aplicacion entrara en un bucle infinito porque al intentar buscar un usuario logueado no lo va encontrar y claro, esta pagina es donde me logueo, no se si pillais la idea.

A la solucion que llegue, fijo que se podia hacer mejor, mas legible, etc ,pero asi a mi me funciona, siempre ahy tiempo para optimizar el codigo.

Es complicado de explicar ( para mi claro ), por lo visto el "getServletPath" nos devuelve la ruta donde nos encontramos en el momento que actua el filtro, lo que hice fue coger esa ruta, sacarle "/" ya que viene con ella y comparar, si es cierto, con el "chain.doFilter(req, res)" le decimos al servidor que siga ejecutando los filtros o algo asi, en terminos de andar por casa, que pases de esta pagina y sigas ejecutandote.

Bueno despues el "else", lo primero no se que significa ( soy un novato ), despues obtengo la sesion, el siguiente "if" lo que se hace es recoger de la sesion el usuario.

El "p.getUSR()" es una funcion que tengo para recoger el nombre del que le puse al usuario cuando lo meti en la sesion, ( ya cree el objeto antes para recuperarlo ) si el usuario existe pues lo mismo que antes, que siga su camino

y en ultimo caso aparece la redireccion que el pasara si el usuario no este en sesion

("index.jsp" es mi primera pagina la cual tengo un fondo de pantalla que a los 2 segundos se redirecciona ella sola a la pagina "entrada.jsp", mas q nada lo hice para darle mas vida al proyecto ;.P )

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException
{
HttpSession session;
PersonaBean p = new PersonaBean();

if (((HttpServletRequest)req).getServletPath().substring(1).equals("entrada.jsf"))
chain.doFilter(req, res);
else
{
if (req instanceof HttpServletRequest)
{
session = ((HttpServletRequest)req).getSession();
if (session.getAttribute(p.getUSR()) != null)
{
// en caso de que ya haya un usuario en la sesion, continuar con los
// filtros, en este caso no tengo ninguno

chain.doFilter(req, res);
}
else
{
// si no existe usuario en sesion, redireccionamos a la inicio
((HttpServletResponse)res).sendRedirect("index.jsp");
}
}
}
}

Bueno esto es muy largo pero estuve hoy casi 6 horas para buscar ejemplos, me ayudo un poco mi jefe que es un lince ( no me lo hizo, me ayudo ) .La verdad que en muchos lados aparece casi lo mismo pero siempre surgen alguna dudas tontas y errores, con esta aportacion, si alguien la lee ( aparte de aburrirse) espero ayudarle aunque sea dentro e 4,5,o 6 años ya que esto de los foros es para cuando lo necesites.

Si escribi algo mal, o explique algo mal, corregirlo ya que puse la idea que tengo ahora mismo

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar