Servlet 3.0新特性中支持Annotation注解



Servlet、Filter、Listener无需在web.xml中进行配置,可以通过Annotation进行配置;

Annotation支持

 

1.Servlet

 

原本Servlet开发完后,必须在web.xml中配置如下代码:

 

[html] view plaincopy

  1. <servlet>
  2.     <servlet-name></servlet-name>
  3.     <servler-class></servlet-class>
  4.     <load-on-startup></load-on-startup>
  5.     <init-param>
  6.          <param-name></param-name>
  7.          <param-value></param-value>
  8.     </init-param>
  9. </servlet>
  10. <servlet-mapping>
  11.      <servlet-name></servlet-name>
  12.       <url-pattern></url-pattern>
  13. </servlet-mapping>

现在只需要在java源文件的Servlet类前面加上:

@WebServlet(name=”",urlPatterns={“”},initParams={@WebInitParam(name=”",value=”"),loadOnStartup=1})

public class FirstServlet extends HttpServlet{}

代码示例:

实现一个最简单的Servlet。

[java] view plaincopy

  1. package org.servlet;
  2. import java.io.*;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import javax.servlet.annotation.*;
  6. /*
  7.        name == <servlet-name>
  8.        urlPatterns == <url-pattern>,
  9.        loadOnStartup == <load-on-startup>
  10.        initParam == <init-param>
  11.        name == <param-name>
  12.        value == <param-value>
  13. */
  14. @WebServlet(name=”HelloServlet” ,urlPatterns={“/HelloServlet”},loadOnStartup=1,
  15.                     initParams={
  16.                            @WebInitParam(name=”name”,value=”xiazdong”),
  17.                            @WebInitParam(name=”age”,value=”20″)
  18.                     })
  19. public class HelloServlet extends HttpServlet{
  20.        public void init(ServletConfig config)throws ServletException{
  21.               super.init(config);
  22.        }
  23.        public void service(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
  24.               request.setCharacterEncoding(“GBK”);
  25.               ServletConfig config = getServletConfig();
  26.               PrintWriter out = response.getWriter();
  27.               out.println(“<html>”);
  28.               out.println(“<body>”);
  29.               out.println(“Hello world”+”<br />”);
  30.               out.println(config.getInitParameter(“name”));
  31.               out.println(“</body>”);
  32.               out.println(“</html>”);
  33.        }
  34. }


这样的话只需要将class文件放入WEB-INFclasses 中,不需要再web.xml中作任何改动就完成部署;

2.Filter

原本Filter的配置如下:

[html] view plaincopy

  1. <filter>
  2.     <filter-name></filter-name>
  3.     <filter-class></filter-class>
  4. <filter>
  5. <filter-mapping>
  6.     <filter-name></filter-name>
  7.     <url-pattern></url-pattern>
  8. </filter-mapping>

现在只需要在java源文件的Filter类前面加上

@WebFilter(filterName=”",urlPattern={“/”});

3.Listener

原本在web.xml中配置如下:

[html] view plaincopy

  1. <listener>
  2.       <listener-class></listener-class>
  3. </listener>

现在只需要在java源文件的Listener类前面加上@WebListener即可;

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>