ulrich
2016-12-17 a89f86b02625059f62e29afa6243d219e2c01a4b
commit | author | age
f4a79c 1 /*
U 2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 package de.uhilger.um.web;
7
8 import java.io.IOException;
9 import javax.servlet.Filter;
10 import javax.servlet.FilterChain;
11 import javax.servlet.FilterConfig;
12 import javax.servlet.ServletException;
13 import javax.servlet.ServletRequest;
14 import javax.servlet.ServletResponse;
15 import javax.servlet.http.HttpServletRequest;
16
17 /**
18  *
19  * @author hilgeru
20  */
21 public class NiceFilter implements Filter {
a89f86 22   
U 23   private static final String ZIEL = "../api?c=de.uhilger.um.api.UserMgr&m=";
f4a79c 24
U 25   @Override
26   public void init(FilterConfig filterConfig) throws ServletException {
27     // ...
28   }
29
a89f86 30   /*
U 31     hier wird ein URL wie z.B. 
32     http://example.com/um/svc/testmethode
33     umgesetzt auf
34     http://example,com/um/api?c=de.uhilger.um.api.UserMgr&m=testmethode
35   
36     der Teil 'svc' ist im Filter Mapping des Deployment Descriptor 
37     deklariert
38   
39     der statische Teil des Ziel-URL ist hier hart kodiert, das kann man 
40     freilich je nach bedarf noch dynamisch gestalten
41   */
f4a79c 42   @Override
U 43   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
44     if(request instanceof HttpServletRequest) {
45       HttpServletRequest hr = (HttpServletRequest) request;
46       String servletPath = hr.getServletPath();
47       String[] path = servletPath.split("/");
a89f86 48       request.getRequestDispatcher(ZIEL + path[2]).forward(request, response);
f4a79c 49     }
U 50   }
51
52   @Override
53   public void destroy() {
54     // ...
55   }
56   
57 }