blob: 416306c26fe12de7fcfe75b91cdc3f453e9e995a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="copyright"
content="Copyright (c) 2000, 2006 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html. Contributors: IBM Corporation - initial API and implementation" />
<meta name="DC.rights.owner" content="(C) Copyright 2000, 2006" />
<meta content="public" name="security" />
<meta content="index,follow" name="Robots" />
<meta http-equiv="PICS-Label"
content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta content="task" name="DC.Type" />
<meta name="DC.Title" content="Creating Filters" />
<meta content="filters, creating" name="DC.subject" />
<meta content="filters, creating" name="keywords" />
<meta content="XHTML" name="DC.Format" />
<meta content="twfltwiz" name="DC.Identifier" />
<meta content="en-us" name="DC.Language" />
<link href="../../org.eclipse.wst.doc.user/common.css" type="text/css"
rel="stylesheet" />
<title>Creating Filters</title>
</head>
<body id="twfltwiz">
<a name="twfltwiz"><!-- --></a>
<h1 class="topictitle1">Creating Filters</h1>
<div>
<p>The filter wizard helps you create Java servlet filters by walking
you through the creation process and by providing you with output files
that you can use or that you can modify for use with your Web
application. The filters can run on Java EE-compliant Web servers.</p>
<div class="section">
<p>To create a filter, complete the following steps:</p>
</div>
<ol>
<li class="stepexpand"><span>In the Java EE perspective,
expand your <a href="ccwebprj.html" title="">dynamic project</a> in the
Project Explorer view.</span></li>
<li class="stepexpand"><span>Right click on the <strong>Filter</strong>
icon, and select <span class="menucascade"> <span
class="uicontrol">New</span> &gt; <span class="uicontrol">Filter</span></span>
from the pop-up menu.</span> The <span class="uicontrol">Create Filter</span>
wizard appears.</li>
<li class="stepexpand"><span>Follow the project wizard
prompts.</span></li>
</ol>
<div class="section">
<p><strong>General Information</strong></p>
<dl>
<p><dt class="dlterm">Modifiers</dt></p>
<dd>The <cite>Sun Microsystems Java Servlet Specification</cite> states that a
Servlet class must be <b>public</b> and not <b>abstract</b>. Therefore,
you cannot change these modifiers. The only one available for change is
the <b>final</b> modifier. </dd>
<p><dt class="dlterm">Interfaces</dt></p>
<dd>There is one obligatory interface that filter classes must
implement: <strong>javax.servlet.Filter</strong>. This interface is
provided by javax.servlet package and is used to represent the
life-cycle of the filter. This interface has three methods: init,
doFilter and destroy.
<ul>
<li>The <strong>init</strong> method is called by the servlet
container only once, when it finishes instantiating the filter.</li>
<li>The <strong>doFilter</strong> method is where the filtering
is performed and is called every time a user requests a resource, such
as a servlet, to which the filter is mapped.</li>
<li>The <strong>destroy</strong> method is called by the servlet
container to tell the filter that it will be taken out of service.</li>
</ul>
You can add additional interfaces to implement by using the <strong>Add</strong>
button.</dd>
<p>
<dt class="dlterm">Interfaces dialog</dt>
</p>
<dd>This dialog appears if you select to add an interface to your
filter. As you type the name of the interface that you are adding, a
list of available interfaces listed in the <b>Matching items</b> list box
updates dynamically to display only the interfaces that match the
pattern. Choose an interface to see the qualifier, and then
click <b>OK</b> when finished.</dd>
<p><dt class="dlterm">Filter Mappings</dt></p>
<dd>For a filter to intercept a request to a servlet, you must:
<ol>
<li>declare the filter with a <b>&lt;filter&gt;</b> element in
the deployment descriptor</li>
<li>map the filter to the servlet using the <b>&lt;filter-mapping&gt;</b>
element.</li>
</ol>
Sometimes you want a filter to work on multiple servlets. You can do
this by mapping a filter to a URL pattern so that any request that
matches that URL pattern will be filtered. All this is made
automatically if you use the <b>Filter Mappings</b> field.</dd>
<p><dt class="dlterm">Method stubs</dt></p>
<dd>Because each filter must implement the javax.servlet.Filter
interface, the <b>Inherited abstract methods</b> option is always
checked and cannot be changed.</dd>
</dl>
</div>
</div>
</body>
</html>