@WebServlet注解

后端 / 2020-05-11

概述

The @WebServletannotation is used to declare a servlet. The annotated class must extend the

用于声明一个sevlet,是一个类注解

分析

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {
    String name() default "";

    String[] value() default {};

    String[] urlPatterns() default {};

    int loadOnStartup() default -1;

    WebInitParam[] initParams() default {};

    boolean asyncSupported() default false;

    String smallIcon() default "";

    String largeIcon() default "";

    String description() default "";

    String displayName() default "";
}

从他的源码中可以轻易看出,有以下几个参数。

  • String name - Servlet名字
  • String[] value - 等价与 urlPatterns(一山不容二虎)
  • String[] urlPatterns - 指定一系列url匹配模式,等价于
  • int loadOnStartup - 指定 Servlet 的加载顺序,等价于 标签。
  • WebInitParam[] initParams - 指定一组 Servlet 初始化参数,等价于标签。
  • String smallIcon -Servlet图标
  • String largeIcon -Servlet大图
  • String description -该Servlet的描述
  • String displayName -该 Servlet 的显示名

简单使用

@WebServlet(urlPatterns = "/helloworld")
public class HelloWorldExample extends HttpServlet {

    private static final long serialVersionUID = 1 L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter printWriter = resp.getWriter();
        printWriter.print("<html>");
        printWriter.print("<body>");
        printWriter.print("<h1>Hello World HttpServlet Class Example</h1>");
        printWriter.print("<a href=\"http://www.javaguides.net\">Java Guides</a>");
        printWriter.print("</body>");
        printWriter.print("</html>");
        printWriter.close();
    }
}