servlet example dofilter annotation jsp servlets jersey servlet-filters

jsp - example - javax.servlet.filter jar



Accediendo tanto a recursos REST como a recursos estáticos con Jersey (1)

Me gustaría usar algunos recursos estáticos (imágenes, js, css) de páginas JSP servidas como visibles

No sé cómo usar el WebPageContentRegex

Si uso servlet, puedo ejecutar recursos pero no puedo acceder a archivos estáticos
Si uso filtro, puedo acceder a archivos estáticos pero no puedo ejecutar recursos

¿Podría ayudarme a acceder a ambos?

Aquí están mis archivos:

webapp |____ resources | |____ css | |____ images | |____ js | |____ WEB-INF |____ jsp

Aquí está mi archivo web.xml:

<?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"> <display-name>test</display-name> <servlet> <servlet-name>REST</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>my packages</param-value> </init-param> <init-param> <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name> <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value> </init-param> <init-param> <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value> </init-param> <init-param> <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name> <param-value>/WEB-INF/jsp</param-value> </init-param> <init-param> <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> <param-value>(/resources/(css|images|js)/.*)|(/WEB-INF/jsp/.*/.jsp)</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>REST</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> </webapp>


¿Puedes verificar que estás en jersey 1.x? En caso de que esté en 2.x, debe reemplazar: com.sun.jersey.config.property.WebPageContentRegex por jersey.config.servlet.filter.staticContentRegex

¿Puedo pedirle que también simplifique su expresión regular, en un primer momento, para que solo se publique * .html? (¡Podría ser un problema con la expresión regular!)

<?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"> <display-name>test</display-name> <servlet> <servlet-name>REST</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>my packages</param-value> </init-param> <init-param> <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name> <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value> </init-param> <init-param> <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name> <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value> </init-param> <init-param> <param-name>com.sun.jersey.config.property.JSPTemplatesBasePath</param-name> <param-value>/WEB-INF/jsp/*.jsp</param-value> </init-param> <init-param> <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name> <param-value>/resources/*.html </param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>REST</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> </webapp>