ClassLoader.getResourceAsStream looks in the classpath of the JVM to find files. Your webapps web content area is not in the Classpath unless you specifically add it at server start time which I do not recommend.
Also, the root of your webapp is the same directory that contains WEB-INF directory so more than likely the path sould be /images/mypic.gif
You can determine this programmaticly using ServletContext getServletContextName
I don't quite get why you feel you need to change the URL of the request but, it's fairly simple to do. It's actually using the RequestDispatcher forward to send the request to a new resource within your webapp ServletContext getRequestDispatcher If you need to get fancier than than, I suggest you look at URLRewrite on Java.net
If that code is in your doFilter() method, its quite surprising that it compiled in first place. Which is the method getServletContext() in your code refreeing to? Do you have such a method of your own in the Servlet class?
The way to get a handle to the ServletContext object in your doFilter() method is through the FilterConfig object, a reference to which you should have saved in your init() method.
After you get a handle to the context object, use the getResourceAsStream() method as mentioned in the previous post.