概述
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();
}
}