You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Roberto <ro...@gmail.com> on 2005/04/28 19:25:07 UTC

Images & CSS not loaded after the request passes through a Servlet Filter

Hi,

I have a small java application, in which a servlet processes the request 
and then
calls a JSP to present the data. Everything is OK with that configuration. 
Then, I decided
to create a servlet filter, to redirect every request to that application, 
to a login page first.

The code of that filter is the following:

******************************
public final class ApplicationFilter implements Filter {
private FilterConfig _fc = null;

public void init(FilterConfig filterConfig)
throws ServletException {
this._fc = filterConfig;
}

public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException,
ServletException {

try {
RequestDispatcher rd = 
_fc.getServletContext().getRequestDispatcher("/login");
rd.forward(request, response);
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
e.printStackTrace();
}
}

-- (the rest was intentionally omitted) --
*******************************************


The redirection works great, BUT all images and CSS referenced in the JSP 
file are not
loaded after the request passes through the filter. The application runs 
perfectly, and takes
the user to the login screen, and after that, to the application. The 
application does some
database queries and returns the data correctly. BUT, everything without 
images or the
styles defined in the CSS file. 

Just to make a test, I put the CSS file contents directly inside the JSP 
file, and it
worked great. In this case, images were not loaded also...

The process flows like this:

Request --> Filter --> login (a servlet) --> login.jsp --> queryDB (a 
servlet) --> queryDB.jsp

When I disable the filter, in the web.xml file, everything works as would be 
expected.

The configuration in web.xml is OK: all servlets are set, as is the filter 
itself.

I'm using Tomcat 5.0.28 on a Gentoo Linux system, with POSIX threads and 
kernel
2.6.9. The hardware is a P IV HT 3.2 Ghz.

I also checked the archives of this list, but was unable to find any 
reference to a problem
like this one. Does anyone know what is happening ?

Regards,
Roberto

Re: Images & CSS not loaded after the request passes through a Servlet Filter

Posted by Roberto <ro...@gmail.com>.
Frank,

You got it. The filter configuration, in the web.xml file, was
intercepting ALL requests (<url-pattern>/*</url-pattern>). I really
thought that the filter would intercept only requests for Servlets,
not all HTTP requests...

Thanks ! This problem was really pissing me off... :)

Regards
Roberto

On 4/28/05, Frank W. Zammetti <fz...@omnytex.com> wrote:
> 
> Question: are the requests for images and CSS files also going through the
> filter? I'm wondering if those requests are getting forarded to the logon
> page too, which obviously wouldn't work.
> 
> --
> Frank W. Zammetti
> Founder and Chief Software Architect
> Omnytex Technologies
> http://www.omnytex.com
> 
> On Thu, April 28, 2005 1:25 pm, Roberto said:
> > Hi,
> >
> > I have a small java application, in which a servlet processes the 
> request
> > and then
> > calls a JSP to present the data. Everything is OK with that 
> configuration.
> > Then, I decided
> > to create a servlet filter, to redirect every request to that 
> application,
> > to a login page first.
> >
> > The code of that filter is the following:
> >
> > ******************************
> > public final class ApplicationFilter implements Filter {
> > private FilterConfig _fc = null;
> >
> > public void init(FilterConfig filterConfig)
> > throws ServletException {
> > this._fc = filterConfig;
> > }
> >
> > public void doFilter(ServletRequest request,
> > ServletResponse response,
> > FilterChain chain)
> > throws IOException,
> > ServletException {
> >
> > try {
> > RequestDispatcher rd =
> > _fc.getServletContext().getRequestDispatcher("/login");
> > rd.forward(request, response);
> > } catch (Exception e) {
> > System.out.println("Exception: " + e.getMessage());
> > e.printStackTrace();
> > }
> > }
> >
> > -- (the rest was intentionally omitted) --
> > *******************************************
> >
> >
> > The redirection works great, BUT all images and CSS referenced in the 
> JSP
> > file are not
> > loaded after the request passes through the filter. The application runs
> > perfectly, and takes
> > the user to the login screen, and after that, to the application. The
> > application does some
> > database queries and returns the data correctly. BUT, everything without
> > images or the
> > styles defined in the CSS file.
> >
> > Just to make a test, I put the CSS file contents directly inside the JSP
> > file, and it
> > worked great. In this case, images were not loaded also...
> >
> > The process flows like this:
> >
> > Request --> Filter --> login (a servlet) --> login.jsp --> queryDB (a
> > servlet) --> queryDB.jsp
> >
> > When I disable the filter, in the web.xml file, everything works as 
> would
> > be
> > expected.
> >
> > The configuration in web.xml is OK: all servlets are set, as is the 
> filter
> > itself.
> >
> > I'm using Tomcat 5.0.28 on a Gentoo Linux system, with POSIX threads and
> > kernel
> > 2.6.9. The hardware is a P IV HT 3.2 Ghz.
> >
> > I also checked the archives of this list, but was unable to find any
> > reference to a problem
> > like this one. Does anyone know what is happening ?
> >
> > Regards,
> > Roberto
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> 
>

Re: Images & CSS not loaded after the request passes through a Servlet Filter

Posted by "Frank W. Zammetti" <fz...@omnytex.com>.
Question: are the requests for images and CSS files also going through the
filter?  I'm wondering if those requests are getting forarded to the logon
page too, which obviously wouldn't work.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Thu, April 28, 2005 1:25 pm, Roberto said:
> Hi,
>
> I have a small java application, in which a servlet processes the request
> and then
> calls a JSP to present the data. Everything is OK with that configuration.
> Then, I decided
> to create a servlet filter, to redirect every request to that application,
> to a login page first.
>
> The code of that filter is the following:
>
> ******************************
> public final class ApplicationFilter implements Filter {
> private FilterConfig _fc = null;
>
> public void init(FilterConfig filterConfig)
> throws ServletException {
> this._fc = filterConfig;
> }
>
> public void doFilter(ServletRequest request,
> ServletResponse response,
> FilterChain chain)
> throws IOException,
> ServletException {
>
> try {
> RequestDispatcher rd =
> _fc.getServletContext().getRequestDispatcher("/login");
> rd.forward(request, response);
> } catch (Exception e) {
> System.out.println("Exception: " + e.getMessage());
> e.printStackTrace();
> }
> }
>
> -- (the rest was intentionally omitted) --
> *******************************************
>
>
> The redirection works great, BUT all images and CSS referenced in the JSP
> file are not
> loaded after the request passes through the filter. The application runs
> perfectly, and takes
> the user to the login screen, and after that, to the application. The
> application does some
> database queries and returns the data correctly. BUT, everything without
> images or the
> styles defined in the CSS file.
>
> Just to make a test, I put the CSS file contents directly inside the JSP
> file, and it
> worked great. In this case, images were not loaded also...
>
> The process flows like this:
>
> Request --> Filter --> login (a servlet) --> login.jsp --> queryDB (a
> servlet) --> queryDB.jsp
>
> When I disable the filter, in the web.xml file, everything works as would
> be
> expected.
>
> The configuration in web.xml is OK: all servlets are set, as is the filter
> itself.
>
> I'm using Tomcat 5.0.28 on a Gentoo Linux system, with POSIX threads and
> kernel
> 2.6.9. The hardware is a P IV HT 3.2 Ghz.
>
> I also checked the archives of this list, but was unable to find any
> reference to a problem
> like this one. Does anyone know what is happening ?
>
> Regards,
> Roberto
>


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org