This is a Java servlet filter (as per Servlet API 2.3). This filter lets you redirect incoming requests depending on User-Agent and Referer headers. So, you may use it for example as an access restriction tool, for load balancing etc. Package contains the filter itself (AgentRouteFilter) and servlet (AgentRouteServlet) you may use for interactive data management. How to use it: a) download agentflt.jar and save it in WEB-INF/lib b) create a data file with the routing information. It is a text file, each line describes an
action for one header's template. Empty lines and any line starts with // or #
are ignored. Path to this file should be provided as a parameter for both AgentRouteFilter and
AgentRouteServlet. Action looks like:
R \t referer template \t some_url or
where \t is a tabulator, R indicates
template for referer field, A indicates template for User-Agent header.
If header contains template than filter redirects incoming request. For example:
# redirects all vistors from Google: R google /forgoogle.jsp # redirects all visitors with MS IE A MSIE http://www.acme.com Actually you may use AgentRouteServlet for creating/updating such file (files). For user agent templates you can provide a list of alternatives (use | as a separator):
# redirects all visitors with iPhone and Sony Ericsson K320 A iPhone | K320 http://m.acme.com You can use regular expressions in templates. c) describe this filter in web.xml.
<filter> <filter-name>AgentRouteFilter</filter-name> <filter-class>com.cj.agentflt.AgentRouteFilter</filter-class> <init-param> <param-name>config</param-name> <param-value>your_data_file</param-value> </init-param> </filter> d) describe a mapping for this filter in web.xml
<filter-mapping> <filter-name>AgentRouteFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> in this case filter will be on for the each .jsp file And now when some .jsp page is requested AgentRouteFilter may redirect incoming request to the specified URL. If target URL starts with http than filter redirects request, otherwise filter assumes a local resource and forwards request. e) describe AgentRouteServlet you will use for access to your data_file:
<servlet> <servlet-name>AgentRouteServlet</servlet-name> <servlet-class>com.cj.agentflt.AgentRouteServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>your_data_file</param-value> </init-param> </servlet> f) describe a mapping for this servlet in web.xml
<servlet-mapping> <servlet-name>AgentRouteServlet</servlet-name> <url-pattern>/servlet/AgentRouteServlet</url-pattern> </servlet-mapping> Now you may run this servlet http://your_host/servlet/AgentRouteServlet and work with your data file. For downloading: Agent filter: agentflt.jar
See also JSOS - the largest collection of servlets and filters. |
Also in JSOS:
|