javax.servlet.Filter, and to
insert them in your servlet container's filter chain, like any Java Filter.
Example:
/WEB-INF/filters/HeaderFilter.py:
from javax.servlet import Filter
# Module must contain a class with the same name as the module
# which in turn must implement javax.servlet.Filter
class HeaderFilter (Filter):
def init(self, config):
self.header = config.getInitParameter('header')
def doFilter(self, request, response, chain):
response.setHeader(self.header, "Yup")
chain.doFilter(request, response)
web.xml:
<!-- Initialize the Jython runtime -->
<listener>
<listener-class>org.python.util.PyServletInitializer</listener-class>
<load-on-startup>1</load-on-startup>
</listener>
<!-- Declare a uniquely-named PyFilter -->
<filter>
<filter-name>HeaderFilter</filter-name>
<filter-class>org.python.util.PyFilter</filter-class>
<!-- The special param __filter__ gives the context-relative path to the Jython source file -->
<init-param>
<param-name>__filter__</param-name>
<param-value>/WEB-INF/pyfilter/HeaderFilter.py</param-value>
</init-param>
<!-- Other params are passed on the the Jython filter -->
<init-param>
<param-name>header</param-name>
<param-value>X-LookMaNoJava</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>HeaderFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
| Modifier and Type | Field and Description |
|---|---|
| private Filter | |
| private FilterConfig | |
| public static final String | |
| private PythonInterpreter | |
| private long | |
| private File |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | destroy()
Overrides default javax. Called by the web container to indicate to a filter that it is being taken out of service. |
| public void | doFilter(ServletRequest
the request, ServletResponse ServletRequest object contains the client's requestthe response, FilterChain ServletResponse object contains the filter's responsethe chain)FilterChain for invoking the next filter or the resourceImplements javax. The |
| private Filter | |
| private String | |
| public void | init(FilterConfig
a config)FilterConfig object containing the
filter's configuration and initialization parametersOverrides default javax. Called by the web container to indicate to a filter that it is being placed into service. |
| private Filter |
| cached | back to summary |
|---|---|
| private Filter cached | |
| config | back to summary |
|---|---|
| private FilterConfig config | |
| FILTER_PATH_PARAM | back to summary |
|---|---|
| public static final String FILTER_PATH_PARAM | |
| interp | back to summary |
|---|---|
| private PythonInterpreter interp | |
| loadedMtime | back to summary |
|---|---|
| private long loadedMtime | |
| source | back to summary |
|---|---|
| private File source | |
| PyFilter | back to summary |
|---|---|
| public PyFilter() | |
| destroy | back to summary |
|---|---|
| public void destroy() Overrides default javax. Doc from javax. Called by the web container to indicate to a filter that it is being taken out of service. This method is only called once all threads within the filter's doFilter method have exited or after a timeout period has passed. After the web container calls this method, it will not call the doFilter method again on this instance of the filter. This method gives the filter an opportunity to clean up any resources that are being held (for example, memory, file handles, threads) and make sure that any persistent state is synchronized with the filter's current state in memory. | |
| doFilter | back to summary |
|---|---|
| public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException Implements javax. Doc from javax. The A typical implementation of this method would follow the following pattern:
| |
| getFilter | back to summary |
|---|---|
| private Filter getFilter() throws ServletException, IOException | |
| getRealPath | back to summary |
|---|---|
| private String getRealPath(ServletContext context, String appPath) | |
| init | back to summary |
|---|---|
| public void init(FilterConfig config) throws ServletException Overrides default javax. Doc from javax. Called by the web container to indicate to a filter that it is being placed into service. The servlet container calls the init method exactly once after instantiating the filter. The init method must complete successfully before the filter is asked to do any filtering work. The web container cannot place the filter into service if the init method either
| |
| loadFilter | back to summary |
|---|---|
| private Filter loadFilter() throws ServletException, IOException | |