<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FServlet%2FFilter</id>
		<title>Java Tutorial/Servlet/Filter - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FServlet%2FFilter"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Servlet/Filter&amp;action=history"/>
		<updated>2026-04-10T17:48:44Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Servlet/Filter&amp;diff=4896&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Servlet/Filter&amp;diff=4896&amp;oldid=prev"/>
				<updated>2010-06-01T05:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:06, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Servlet/Filter&amp;diff=4895&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Servlet/Filter&amp;diff=4895&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Filter Response ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
public class MyServlet implements Filter &lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
  private FilterConfig filterConfig = null;&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
        response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
        PrintWriter out = response.getWriter();&lt;br /&gt;
    out.println(&amp;quot;The filter got this message: &amp;quot; + filterConfig.getInitParameter(&amp;quot;message&amp;quot;));&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() { }&lt;br /&gt;
  public void init(FilterConfig filterConfig) {&lt;br /&gt;
    this.filterConfig = filterConfig;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Filter that uses a response wrapper to convert all output to uppercase ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.CharArrayWriter;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.servlet.Filter;&lt;br /&gt;
import javax.servlet.FilterChain;&lt;br /&gt;
import javax.servlet.FilterConfig;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.ServletOutputStream;&lt;br /&gt;
import javax.servlet.ServletRequest;&lt;br /&gt;
import javax.servlet.ServletResponse;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
import javax.servlet.http.HttpServletResponse;&lt;br /&gt;
import javax.servlet.http.HttpServletResponseWrapper;&lt;br /&gt;
public class UpperCaseFilter implements Filter {&lt;br /&gt;
  protected FilterConfig config;&lt;br /&gt;
  public void init(FilterConfig config) throws ServletException {&lt;br /&gt;
    this.config = config;&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() {&lt;br /&gt;
  }&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)&lt;br /&gt;
      throws ServletException, IOException {&lt;br /&gt;
    ServletResponse newResponse = response;&lt;br /&gt;
    if (request instanceof HttpServletRequest) {&lt;br /&gt;
      newResponse = new CharResponseWrapper((HttpServletResponse) response);&lt;br /&gt;
    }&lt;br /&gt;
    chain.doFilter(request, newResponse);&lt;br /&gt;
    if (newResponse instanceof CharResponseWrapper) {&lt;br /&gt;
      String text = newResponse.toString();&lt;br /&gt;
      if (text != null) {&lt;br /&gt;
        text = text.toUpperCase();&lt;br /&gt;
        response.getWriter().write(text);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class CharResponseWrapper extends HttpServletResponseWrapper {&lt;br /&gt;
  protected CharArrayWriter charWriter;&lt;br /&gt;
  protected PrintWriter writer;&lt;br /&gt;
  protected boolean getOutputStreamCalled;&lt;br /&gt;
  protected boolean getWriterCalled;&lt;br /&gt;
  public CharResponseWrapper(HttpServletResponse response) {&lt;br /&gt;
    super(response);&lt;br /&gt;
    charWriter = new CharArrayWriter();&lt;br /&gt;
  }&lt;br /&gt;
  public ServletOutputStream getOutputStream() throws IOException {&lt;br /&gt;
    if (getWriterCalled) {&lt;br /&gt;
      throw new IllegalStateException(&amp;quot;getWriter already called&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    getOutputStreamCalled = true;&lt;br /&gt;
    return super.getOutputStream();&lt;br /&gt;
  }&lt;br /&gt;
  public PrintWriter getWriter() throws IOException {&lt;br /&gt;
    if (writer != null) {&lt;br /&gt;
      return writer;&lt;br /&gt;
    }&lt;br /&gt;
    if (getOutputStreamCalled) {&lt;br /&gt;
      throw new IllegalStateException(&amp;quot;getOutputStream already called&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    getWriterCalled = true;&lt;br /&gt;
    writer = new PrintWriter(charWriter);&lt;br /&gt;
    return writer;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    String s = null;&lt;br /&gt;
    if (writer != null) {&lt;br /&gt;
      s = charWriter.toString();&lt;br /&gt;
    }&lt;br /&gt;
    return s;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
Simple response wrapper that utilizes a local CharArrayWriter for output&lt;br /&gt;
&lt;br /&gt;
&amp;lt;filter&amp;gt;&lt;br /&gt;
  &amp;lt;filter-name&amp;gt;Upper Case Filter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
  &amp;lt;filter-class&amp;gt;com.omh.filters.UpperCaseFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;
&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;filter-name&amp;gt;Upper Case Filter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
  &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Servlet Filter Init Parameter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
public class MyServlet implements Filter &lt;br /&gt;
{&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  private FilterConfig filterConfig = null;&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
    System.out.println(&amp;quot;The message is: &amp;quot; + filterConfig.getInitParameter(&amp;quot;message&amp;quot;));&lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() { }&lt;br /&gt;
  public void init(FilterConfig filterConfig) {&lt;br /&gt;
    this.filterConfig = filterConfig;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Simple filter for measuring servlet response times ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import javax.servlet.Filter;&lt;br /&gt;
import javax.servlet.FilterChain;&lt;br /&gt;
import javax.servlet.FilterConfig;&lt;br /&gt;
import javax.servlet.ServletException;&lt;br /&gt;
import javax.servlet.ServletRequest;&lt;br /&gt;
import javax.servlet.ServletResponse;&lt;br /&gt;
import javax.servlet.http.HttpServletRequest;&lt;br /&gt;
public class ResponseTimerFilter implements Filter {&lt;br /&gt;
  protected FilterConfig config;&lt;br /&gt;
  public void init(FilterConfig config) throws ServletException {&lt;br /&gt;
    this.config = config;&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() {&lt;br /&gt;
  }&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)&lt;br /&gt;
      throws ServletException, IOException {&lt;br /&gt;
    long startTime = System.currentTimeMillis();&lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
    long elapsed = System.currentTimeMillis() - startTime;&lt;br /&gt;
    String name = &amp;quot;servlet&amp;quot;;&lt;br /&gt;
    if (request instanceof HttpServletRequest) {&lt;br /&gt;
      name = ((HttpServletRequest) request).getRequestURI();&lt;br /&gt;
    }&lt;br /&gt;
    config.getServletContext().log(name + &amp;quot; took &amp;quot; + elapsed + &amp;quot; ms&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;filter&amp;gt;&lt;br /&gt;
  &amp;lt;filter-name&amp;gt;Timing Filter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
  &amp;lt;filter-class&amp;gt;com.omh.filters.ResponseTimerFilter&amp;lt;/filter-class&amp;gt;&lt;br /&gt;
&amp;lt;/filter&amp;gt;&lt;br /&gt;
&amp;lt;filter-mapping&amp;gt;&lt;br /&gt;
  &amp;lt;filter-name&amp;gt;Timing Filter&amp;lt;/filter-name&amp;gt;&lt;br /&gt;
  &amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
&amp;lt;/filter-mapping&amp;gt;&lt;br /&gt;
*/&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use Filter to Check Date ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
public class MyServlet implements Filter &lt;br /&gt;
{&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
 &lt;br /&gt;
    GregorianCalendar calendar = new GregorianCalendar();&lt;br /&gt;
    Date date1 = new Date();&lt;br /&gt;
    calendar.setTime(date1);&lt;br /&gt;
    int hour = calendar.get(Calendar.HOUR_OF_DAY);&lt;br /&gt;
    if(hour &amp;lt; 9 || hour &amp;gt; 17) {   &lt;br /&gt;
        chain.doFilter(request, response);&lt;br /&gt;
    } else {&lt;br /&gt;
        response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
        PrintWriter out = response.getWriter();&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;HTML&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;HEAD&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;TITLE&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;Get Back to Work!&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/TITLE&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/HEAD&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;BODY&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;H1&amp;gt;Get Back to Work!&amp;lt;/H1&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;Sorry, that resource is not available now.&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/BODY&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/HTML&amp;gt;&amp;quot;);&lt;br /&gt;
    }    &lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() &lt;br /&gt;
  { &lt;br /&gt;
  }&lt;br /&gt;
  public void init(FilterConfig filterConfig) &lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use Filter to check Request Parameter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
public class MyServlet implements Filter &lt;br /&gt;
{&lt;br /&gt;
  private FilterConfig filterConfig = null;&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
    String password = ((HttpServletRequest) request).getParameter(&amp;quot;password&amp;quot;);&lt;br /&gt;
     &lt;br /&gt;
    if(password.equals(&amp;quot;opensesame&amp;quot;)) {   &lt;br /&gt;
        chain.doFilter(request, response);&lt;br /&gt;
    } else {&lt;br /&gt;
        response.setContentType(&amp;quot;text/html&amp;quot;);&lt;br /&gt;
        PrintWriter out = response.getWriter();&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;HTML&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;HEAD&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;TITLE&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;Incorrect Password&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/TITLE&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/HEAD&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;BODY&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;H1&amp;gt;Incorrect Password&amp;lt;/H1&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;Sorry, that password was incorrect.&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/BODY&amp;gt;&amp;quot;);&lt;br /&gt;
        out.println(&amp;quot;&amp;lt;/HTML&amp;gt;&amp;quot;);&lt;br /&gt;
    }    &lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() { }&lt;br /&gt;
  public void init(FilterConfig filterConfig) {&lt;br /&gt;
    this.filterConfig = filterConfig;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use Filter to log Configuration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
public class MyServlet implements Filter &lt;br /&gt;
{&lt;br /&gt;
  private FilterConfig filterConfig = null;&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
    long start = System.currentTimeMillis();&lt;br /&gt;
    String address =  request.getRemoteAddr();&lt;br /&gt;
    String file = ((HttpServletRequest) request).getRequestURI();&lt;br /&gt;
        &lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
    filterConfig.getServletContext().log(&lt;br /&gt;
        &amp;quot;User access! &amp;quot; +      &lt;br /&gt;
        &amp;quot; User IP: &amp;quot; + address +      &lt;br /&gt;
        &amp;quot; Resource: &amp;quot; + file + &lt;br /&gt;
        &amp;quot; Milliseconds used: &amp;quot; + (System.currentTimeMillis() - start) &lt;br /&gt;
    );&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() { }&lt;br /&gt;
  public void init(FilterConfig filterConfig) {&lt;br /&gt;
    this.filterConfig = filterConfig;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Your First Filter ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.*;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import javax.servlet.*;&lt;br /&gt;
import javax.servlet.http.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
public class MyServlet implements Filter &lt;br /&gt;
{&lt;br /&gt;
  public void doFilter(ServletRequest request, ServletResponse response,&lt;br /&gt;
    FilterChain chain)&lt;br /&gt;
    throws IOException, ServletException &lt;br /&gt;
  {&lt;br /&gt;
    System.out.println(&amp;quot;In filter&amp;quot;);&lt;br /&gt;
    chain.doFilter(request, response);&lt;br /&gt;
    System.out.println(&amp;quot;Leaving filter&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void destroy() &lt;br /&gt;
  { &lt;br /&gt;
  }&lt;br /&gt;
  public void init(FilterConfig filterConfig) &lt;br /&gt;
  {&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>