| Java EE 6 SDK |
@WebServlet("/")
public class TestServlet extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
String message = "filterMessage=" + req.getAttribute("filterMessage");
res.getWriter().println(message);
}
}
@javax.servlet.annotation.WebServlet is an annotation
specifying
the metadata for given servlet.
In this case, it specifies the url pattern. Note:You
need to extend javax.servlet.http.HttpServlet.
In this sample, there are three web fragment jar. Each jar has a filter. The information of web fragments are summarized in the following table:
| jar name | web-fragment.xml | filter class | @WebFilter | filter action |
|---|---|---|---|---|
| webfragment1.jar | Wf1TestFilter.java | present | append "1" to request attribute "filterMessage" | |
| webfragment2.jar | with name A and meta-data for filters | Wf2TestFilter.java | no | append "2" to request attribute "filterMessage" |
| webfragment3.jar | with name B | Wf3TestFilter.java | present | append "3" to request attribute "filterMessage" |
The source codes of filters are similar. For instance, Wf1TestFilter.java is as follows:
@WebFilter(urlPatterns={"/"}, dispatcherTypes= { DispatcherType.REQUEST })
public class Wf1TestFilter implements Filter {
public void init(FilterConfig filterConfig)
throws ServletException {
}
public void doFilter(ServletRequest req,
ServletResponse res, FilterChain chain) throws IOException,
ServletException {
String filterMessage = (String)req.getAttribute("filterMessage");
if (filterMessage == null) {
filterMessage = "";
}
filterMessage += "1";
req.setAttribute("filterMessage", filterMessage);
chain.doFilter(req, res);
}
public void destroy() {
}
}
javax.servlet.annotation.WebFilter is an annotation
specifying the
meta-data for given filter.
In this case, it specifies the url pattern and dispatcherTypes. Note:You
need to extend javax.servlet.Filter.
Deployment Descriptor
The deployment descriptor has information specifying the ordering of web fragment being processed as follows:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<absolute-ordering>
<name>A<name>
<others/>
<name>B<name>
<absolute-ordering>
</web-app>
With this absolute ordering, one will process the web fragment jars in the following order: webfragment2.jar, webfragment1.jar, webfragment3.jar.
Sun GlassFish Enterprise Server Specific Deployment Configuration
There is no need to define any Sun GlassFish Enterprise
Server-specific
deployment descriptor (sun-web.xml) for this
example.
Following are the instructions for building, deploying, and running
this sample application.
app_dir is the sample application base
directory: samples_install_dir/javaee6/web/servlet/absolute-ordering-web-fragments-war.Change directory to app_dir.
all
target:
app_dir> ant
all
You can replace the ant
all command with the
following set of
commands:
app_dir> ant
default compiles and packages the application
app_dir> ant
deploy deploys it to application server
app_dir> ant
run runs the test java client
filterMessage=213
app_dir> ant
run undeploy to undeploy the application.
app_dir> ant
undeploy
clean to remove the temporary directories
like build and dist.
app_dir> ant
clean
Perform the following steps to build, deploy, and run the application using NetBeans IDE:
samples_install_dir/javaee6/web/servlet/ directory, select absolute-ordering-web-fragments-war, select Open Required Projects, and click Open Project.absolute-ordering-web-fragments-war and select Run to build, deploy, and run the project.If you have problems when running the application, refer the troubleshooting document.
Copyright © 1997-2010 Oracle and/or its affiliates. All rights reserved.