Java EE 6 SDK 

Samples Main Page

The Servlet 3.0 Annotations Sample Application

This is a simple Servlet 3.0 application using annotations for servlet, filter, and content listener.

Servlet

The servlet reads the initial parameter, a request attribute and a context attribute and provides the result.

@WebServlet(name="mytest",
    urlPatterns={"/"},
    initParams={ @WebInitParam(name="message", value="my servlet") } )
public class TestServlet extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
        //read the context attribute
        ...
    }
    public void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
        ...
    } }

@javax.servlet.annotation.WebServlet is an annotation specifying the metadata for given servlet. In this case, it specifies the url pattern and an init-param. Note:You need to extend javax.servlet.http.HttpServlet.

Filter

The filter reads the initial parameter and sets a request attribute.

@WebFilter(urlPatterns={"/"}, initParams={ @WebInitParam(name="mesg", value="my filter") })
public class TestFilter implements Filter {
    public void init(FilterConfig filterConfig) throws ServletException {
        ...
    }
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        ...
    }
    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 an init-param. Note:You need to extend javax.servlet.Filter.

ContextListener

The context listener set a context attribute in contextInitialized() method.

@javax.servlet.annotation.WebListener
public class TestServletContextListener implements ServletContextListener {
    public void contextInitialized(ServletContextEvent sce) {
        ...
    }

    public void contextDestroyed(ServletContextEvent sce) {
        ...
    }
}

@javax.servlet.annotaton.WebListener indicates that the given class is a context listener.

Deployment Descriptor

The good news is the deployment descriptor is no longer required!!!

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.

Building, Deploying, and Running the Application

Following are the instructions for building, deploying, and running this sample application.

  1. Set up your build environment and configure the application server with which the build system has to work by following the common build instructions.
  2. app_dir is the sample application base directory: samples_install_dir/javaee6/web/servlet/annotation-war.
  3. Change directory to app_dir.
  4. Build, deploy, and run the sample application using the all target:
  5.         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

  6. Note: You can run the test in one of the following ways:

  7. Use the target undeploy to undeploy the application.

    app_dir> ant undeploy

  8. Use the target clean to remove the temporary directories like build and dist.

    app_dir> ant clean

Building, Deploying, and Running the Application in NetBeans IDE

Perform the following steps to build, deploy, and run the application using NetBeans IDE:

  1. Refer to the common build instructions for setting up NetBeans IDE and Java EE 6 SDK.
  2. In the NetBeans IDE, choose File → Open Project (Ctrl-Shift-O), navigate to the samples_install_dir/javaee6/web/servlet/ directory, select annotation-war, and click Open Project.
  3. In the Projects tab, right click annotation-war and select Run to build, deploy, and run the project.

Troubleshooting

If you have problems when running the application, refer the troubleshooting document.

 

Copyright © 1997-2010 Oracle and/or its affiliates. All rights reserved.