Foros del Web » Programación para mayores de 30 ;) » Java »

filters ->Muy urgente!!!!!

Estas en el tema de filters ->Muy urgente!!!!! en el foro de Java en Foros del Web. Hola, estoy empezando a trabajar con filtros de JEE y tengo un problema con el web.xml, pues me detecta un erros al poner las etiquetas ...
  #1 (permalink)  
Antiguo 17/03/2007, 09:57
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
filters ->Muy urgente!!!!!

Hola, estoy empezando a trabajar con filtros de JEE y tengo un problema con el web.xml, pues me detecta un erros al poner las etiquetas de los filtros que no consigo solucionar. Este el el código que tengo para el web.xml:

Código:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>
  <display-name>Struts Blank Application</display-name>
  
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <filter>
	<display-name>Login-filter</display-name>
	<filter-name>LoginFilter</filter-name>
	<filter-class>usuarios.filters.LoginFilter</filter-class>
  </filter>

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

  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>


  <!-- Struts Tag Library Descriptors -->
  <taglib>
    <taglib-uri>/tags/struts-bean</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/tags/struts-html</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/tags/struts-logic</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/tags/struts-nested</taglib-uri>
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>/tags/struts-tiles</taglib-uri>
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
  </taglib>

</web-app>
y concretamente el error que me da es:

Cita:
The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,
servlet*,servlet-mapping*,session-config?,mime-mapping*,
welcome-file-list?,error-page*,taglib*,resource-ref*,
security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*)".
Gracias y un saludo.
  #2 (permalink)  
Antiguo 17/03/2007, 12:49
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: filters ->Muy urgente!!!!!

Lo que te está diciendo es que el orden de los elementos no es correcto, hay que seguir el que te dice la especificación. Es decir, la declaracion de servlets antes que los servlet mapping... etc y solo los elementos que hay.

No se ve ninguna declaracion de filtros... asi que o te falta copiar un trozo o es de un contenedor de una version pre-filtros.

S!
  #3 (permalink)  
Antiguo 17/03/2007, 12:57
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: filters ->Muy urgente!!!!!

Gracias por la respuesta, debe ser que el ejemplo que tengo es de una versión anterios, y lo que necesito es a alguien que sepa cómo se hace y que me diga cómo porque todo lo que encuentro en la red está obsoleto y no funciona.

De todas formas, muchas gracias

Saludos
  #4 (permalink)  
Antiguo 17/03/2007, 18:15
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: filters ->Muy urgente!!!!!

El orden parece correcto, excepto que en el mensaje de error no dice nada de filtros... ¿que contenedor de servlets y que versión estas usando?

S!

Edit: Ahhh, ya lo veo. En la declaraciíon del web.xml pones "...web-app_2_2.dtd" y la versión 2.2 no tenía filtros. Como mínimo tendrás que usar la 2.3.

Prueba al menos con:
Cita:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
  #5 (permalink)  
Antiguo 18/03/2007, 02:36
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: filters ->Muy urgente!!!!!

Mil gracias GreenEyed, ya no da ningun error. La verdad que de todas las cosas que se me podian haber ocurrido mirar la versión creo que hubiese sido una de las últimas.

Saludos
  #6 (permalink)  
Antiguo 18/03/2007, 03:54
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: filters -> Una preguntilla más

Hay alguna manera de hacer un forward o un redirect directamente desde un filtro???
  #7 (permalink)  
Antiguo 18/03/2007, 04:19
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: filters ->Muy urgente!!!!!

Me alegro que fuera eso. Se me ocurrió por que me pasó alguna vez hace tiempo, ya que los ejemplos de la red están muuuuuchos, obsoletos.

En cuanto al forward/redirect. Igualito que lo haces desde un servlet. Sólo hay que asegurarse de no haber escrito nada en la salida antes en el caso del redirect.
  #8 (permalink)  
Antiguo 18/03/2007, 04:50
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: filters ->Muy urgente!!!!!

Lo siento, pero aun no lo cogo: estoy trabajando con Actions y la manera de hacer el redirect es:

return new ActionRedirect(actionMapping.findForward("inicio") );

pero en el doFilter no me deja hacerlo pues no conoce el actionMapping. He probado a crearlo y tampoco pues no se como decirle el que debe tomar.
  #9 (permalink)  
Antiguo 18/03/2007, 05:24
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: filters ->Muy urgente!!!!!

Verás, tengo este código:

Código:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) 
		throws IOException, ServletException {
		// TODO Auto-generated method stub
		HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest;
		if (httpServletRequest.getSession(true).getAttribute("usuario")==null){
			System.out.println("no hay usuario");
			httpServletRequest.getRequestDispatcher("/pages/login.jsp").forward(servletRequest, servletResponse);
		}else{
			chain.doFilter(servletRequest, servletResponse);
		}
	}
y resulta que de esta forma nunca me deja avanzar porque ni siquiera me deja ejecutar el LoginAction para crear un nuevo usuario.
  #10 (permalink)  
Antiguo 18/03/2007, 12:08
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 7 meses
Puntos: 51
Re: filters ->Muy urgente!!!!!

Por partes:

.- Lo primero que intentabas hacer, con ActionRedirect, no es parte del estándar de servlets. Es algo propietario del Struts, así que no lo puedes usar dentro de un filtro, ni de un servlet o jsp fuera del Struts.

.- En cuanto al filtro, la cuestión es que seguramente tambien se lo estás aplicando a la pagina de Login, a la que no podras llegar puesto que el filtro se ejecuta antes. Así que debes hacer que no se le aplique la comprobacion, o el filtro, a la pagina de login. Como los "mappings" de los filtros son poco flexibles, hasta la version 2.5, lo más recomendable sería comprobar dentro del filtro si la petición va a la página de Login, y en ese caso no hacerle el forward.

Alguien que use más Struts te podrá ayudar mejor, yo no lo uso y no se cual es la forma habitual de solucionarlo.
  #11 (permalink)  
Antiguo 18/03/2007, 12:11
 
Fecha de Ingreso: enero-2007
Mensajes: 156
Antigüedad: 17 años, 4 meses
Puntos: 1
Re: filters ->Muy urgente!!!!!

OK, ya me has ayudado un montón. Te estoy muy agradecida.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.