Saturday, October 20, 2012

Image Filter for reading image

/*This filter is used to add image location into front of image file.
we can get image from name without pass full path into jsp/html
Similar 
we can do for js and css file also
.
*/
import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;





public class ImageFilter implements Filter {



     */

    public ImageFilter() {

        // TODO Auto-generated constructor stub

    }



                /**

                * @see Filter#destroy()

                */

                public void destroy() {
S
                                // TODO Auto-generated method stub

                }



                /**

                * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)

                */

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

                                // TODO Auto-generated method stub

                                // place your code here

                                try

                                {



                                final HttpServletRequest req = (HttpServletRequest) request;

                                String imageName= RequestParser.getImageName(RequestParser.getCleanURI(req.getRequestURI()));

                                if(imageName!=null){
// used for location of image
                                                request.getRequestDispatcher("/WEB-INF/resources/images"+imageName).forward(request, response);

                                }

                                else{

                                                //return blank page here

                                                chain.doFilter(request, response);

                                }

                                }

                                catch(Exception exception)

                                {

                                                exception.printStackTrace();

                                }

                }



                /**

                * @see Filter#init(FilterConfig)

                */

                public void init(FilterConfig fConfig) throws ServletException {

                                // TODO Auto-generated method stub

                }



}

/****************************************************************/



import java.util.StringTokenizer;

/**

*


public  abstract class RequestParser {

              

               
                    /**

                     *

                     * @param URI

                     * @return clear uri from the requested uri, after removing project name

                     */

                    static final String getCleanURI(String URI) {



                        if (isURIOk(URI)) {

                            StringTokenizer tokens = new StringTokenizer(URI, "/");

                            StringBuilder cleanURI = new StringBuilder();

                            boolean first = true;

                            while (tokens.hasMoreElements()) {

                                //leave first token, or apply some other logic here so u can remove first part of uri

                                if (first) {

                                    tokens.nextElement();

                                    first = false;

                                    continue;

                                }

                                cleanURI.append("/");

                                cleanURI.append(tokens.nextElement());

                            }

                            return cleanURI.toString();

                        }

                        return null;

                    }



                    /**

                     *

                     * @param URI

                     * @return

                     * return image name parsing after image url

                     */

                    static final String getImageName(String URI) {

                        return (isURIOk(URI)) ? URI : null;

                    }



                

                    /**

                     *

                     * @param URI

                     * @return

                     * check if uri is ok or not

                     */

                    static final boolean isURIOk(String URI) {

                        return ((URI == null || URI.indexOf(".") == -1 || URI.indexOf("/") == -1)) ? false : true;

                    }



}
/***********************************************************/
 /*into web.xml*/
 <filter>
        <filter-name>ImageFilter</filter-name>
        <filter-class>ImageFilter</filter-class>/* add location of filter class*/
    </filter>
    <filter-mapping>
        <filter-name>ImageFilter</filter-name>
        <url-pattern>*.png</url-pattern>
    </filter-mapping>
   
    <filter-mapping>
        <filter-name>ImageFilter</filter-name>
        <url-pattern>*.jpg</url-pattern>
    </filter-mapping>
   
    /*  add other extension also*/
   

No comments:

Post a Comment

Spring Boot Config Server and Config Client.

 In Spring cloud config we can externalise our configuration files to some repository like GIT HUT, Amazon S3 etc. Benefit of externalising ...