⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 examplerequestfilter.java

📁 RESIN 3.2 最新源码
💻 JAVA
字号:
package example.filters;import javax.servlet.*;import javax.servlet.http.*;import java.io.IOException;import java.util.Enumeration;import java.security.Principal;import java.util.logging.Logger;import java.util.logging.Level;/** * A cut-and-paste template for implementing a Filter that wraps the request */public class ExampleRequestFilter implements Filter {  private static final Logger log = Logger.getLogger("example.filters.ExampleRequestFilter");  /**    * Called once to initialize the Filter.  If init() does not   * complete successfully (it throws an exception, or takes a really   * long time to return), the Filter will not be placed into service.   */  public void init(FilterConfig config)    throws ServletException  {    ServletContext app = config.getServletContext();    // an example of getting an init-param    String myParam = config.getInitParameter("my-param");    if (log.isLoggable(Level.CONFIG))      log.log(Level.CONFIG,"my-param value is `" + myParam + "'");  }  /**   * Called by Resin each time a request/response pair is passed   * through the chain due to a client request for a resource at the   * end of the chain.  The FilterChain parameter is used by the   * Filter to pass on the request and response to the next Filter in   * the chain.   */  public void doFilter(ServletRequest request, ServletResponse response,                       FilterChain nextFilter)    throws ServletException, IOException  {    HttpServletRequest req = (HttpServletRequest) request;    HttpServletResponse res = (HttpServletResponse) response;        // "wrap" the request object.  Any filter or servlet or jsp that    // follows in the chain will get the values returned from the    // wrapper instead of from the original Request.    req = new ExampleRequestWrapper(req);    // call the next filter in the chain    nextFilter.doFilter(req, res);  }    /**   * Any cleanup for the filter.  This will only happen once, right   * before the Filter is released by Resin for garbage collection.   */  public void destroy()  {  }    /**   * This example request wrapper includes all of the methods you   * could possibly want to implement.  The implementaions here just   * call the method in the super class, implement the ones you want   * and remove the ones you don't need to change.   */  static class ExampleRequestWrapper extends HttpServletRequestWrapper {    ExampleRequestWrapper(HttpServletRequest request)     {      super(request);    }    /**     * Returns the HTTP method, e.g. "GET" or "POST"     */    public String getMethod()    {      return super.getMethod();    }    /**     * Returns the entire request URI     */    public String getRequestURI()    {      return super.getRequestURI();    }    /**     * Reconstructs the URL the client used for the request.     */    public StringBuffer getRequestURL()    {      return super.getRequestURL();    }    /**     * Returns the part of the URI corresponding to the application's     * prefix.  The first part of the URI selects applications     * (ServletContexts).     *     * <p><code>getContextPath()</code> is /myapp for the uri     * /myapp/servlet/Hello,      */    public String getContextPath()    {      return super.getContextPath();    }    /**     * Returns the URI part corresponding to the selected servlet.     * The URI is relative to the application.     *     * <code>getServletPath()</code> is /servlet/Hello for the uri     * /myapp/servlet/Hello/foo.     *     * <code>getServletPath()</code> is /dir/hello.jsp     * for the uri /myapp/dir/hello.jsp/foo,     */    public String getServletPath()    {      return super.getServletPath();    }    /**     * Returns the URI part after the selected servlet and null if there     * is no suffix.     *     * <p><code>getPathInfo()</code> is /foo for     * the uri /myapp/servlet/Hello/foo.     *     * <code>getPathInfo()</code> is /hello.jsp for for the uri     * /myapp/dir/hello.jsp/foo.     */    public String getPathInfo()    {      return super.getPathInfo();    }    /**     * Returns the physical path name for the path info.     *     * @return null if there is no path info.     */    public String getPathTranslated()    {      return super.getPathTranslated();    }    /**     * Returns the request's query string.  Form based servlets will use     * <code>ServletRequest.getParameter()</code> to decode the form values.     *     */    public String getQueryString()    {      return super.getQueryString();    }    /**     * Returns the first value for a request header.     *     * <code><pre>     * String userAgent = request.getHeader("User-Agent");     * </pre></code>     *     * @param name the header name     * @return the header value     */    public String getHeader(String name)    {      return super.getHeader(name);    }    /**     * Returns all the values for a request header.  In some rare cases,     * like cookies, browsers may return multiple headers.     *     * @param name the header name     * @return an enumeration of the header values.     */    public Enumeration getHeaders(String name)    {      return super.getHeaders(name);    }    /**     * Returns an enumeration of all headers sent by the client.     */    public Enumeration getHeaderNames()    {      return super.getHeaderNames();    }    /**     * Converts a header value to an integer.     *     * @param name the header name     * @return the header value converted to an integer     */    public int getIntHeader(String name)    {      return super.getIntHeader(name);    }    /**     * Converts a date header to milliseconds since the epoch.     *     * <pre><code>     * long mod = request.getDateHeader("If-Modified-Since");     * </code></pre>     *     * @param name the header name     * @return the header value converted to an date     */    public long getDateHeader(String name)    {      return super.getDateHeader(name);    }    /**     * Returns an array of all cookies sent by the client.     */    public Cookie []getCookies()    {      return super.getCookies();    }    /**     * Returns a session.  If no session exists and create is true, then     * create a new session, otherwise return null.     *     * @param create If true, then create a new session if none exists.     */    public HttpSession getSession(boolean create)    {      return super.getSession(create);    }    /**     * Returns the session id.  Sessions are a convenience for keeping     * user state across requests.     *     * <p/>The session id is the value of the JSESSION cookie.     */    public String getRequestedSessionId()    {      return super.getRequestedSessionId();    }        /**     * Returns true if the session is valid.     */    public boolean isRequestedSessionIdValid()    {      return super.isRequestedSessionIdValid();    }        /**     * Returns true if the session came from a cookie.     */    public boolean isRequestedSessionIdFromCookie()    {      return super.isRequestedSessionIdFromCookie();    }        /**     * Returns true if the session came URL-encoding.     */    public boolean isRequestedSessionIdFromURL()    {      return super.isRequestedSessionIdFromURL();    }        /**     * Returns the auth type, e.g. basic.     */    public String getAuthType()    {      return super.getAuthType();    }        /**     * Returns the remote user if authenticated.     */    public String getRemoteUser()    {      return super.getRemoteUser();    }        /**     * Returns true if the user is in the given role.     */    public boolean isUserInRole(String role)    {      return super.isUserInRole(role);    }        /**     * Returns the equivalent principal object for the authenticated user.     */    public Principal getUserPrincipal()    {      return super.getUserPrincipal();    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -