/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package de.uhilger.um.web; 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; /** * * @author hilgeru */ public class NiceFilter implements Filter { private static final String ZIEL = "../api?c=de.uhilger.um.api.UserMgr&m="; @Override public void init(FilterConfig filterConfig) throws ServletException { // ... } /* hier wird ein URL wie z.B. http]://example.com/um/svc/testmethode umgesetzt auf http]://example,com/um/api?c=de.uhilger.um.api.UserMgr&m=testmethode der Teil 'svc' ist im Filter Mapping des Deployment Descriptor deklariert. Der Teil 'api' zeigt mit Hilfe eines Servlet Mappings im Deployment Descriptor auf das Transit-Servlet. der statische Teil des Ziel-URL ist hier hart kodiert, das kann man freilich je nach Bedarf noch dynamisch gestalten */ @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(request instanceof HttpServletRequest) { HttpServletRequest hr = (HttpServletRequest) request; String servletPath = hr.getServletPath(); String[] path = servletPath.split("/"); request.getRequestDispatcher(ZIEL + path[2]).forward(request, response); } } @Override public void destroy() { // ... } }