替换传统web.xml

来源:互联网 发布:qq网名生成器软件 编辑:程序博客网 时间:2024/05/24 06:32

Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程。

创建maven项目:

pom.xml中加入:

<!-- Servlet -->    <dependency>        <groupId>javax.servlet</groupId>        <artifactId>javax.servlet-api</artifactId>        <version>3.1.0</version>        <scope>provided</scope>    </dependency>    <dependency>        <groupId>javax.servlet.jsp</groupId>        <artifactId>jsp-api</artifactId>        <version>2.1</version>        <scope>provided</scope>    </dependency>


new一个servlet,继承javax.servlet.http.HttpServlet

重写下doGet方法:

/** * 注解WebServlet用来描述一个Servlet * 属性name描述Servlet的名字,可选 * 属性urlPatterns定义访问的URL,或者使用属性value定义访问的URL.(定义访问的URL是必选属性) */@WebServlet(name="AnnotationServlet",urlPatterns="/AnnotationServlet")public class AnnotationServlet extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {                response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");        PrintWriter out = response.getWriter();        out.println("<!DOCTYPE HTML>");        out.println("<HTML>");        out.println("      <HEAD>");        out.println("      <TITLE>A Servlet</TITLE>");        out.println("      <meta http-equiv=\"content-type\" " + "content=\"text/html; charset=utf-8\">");        out.println("   </HEAD>");        out.println("       <BODY>");        out.println("             Hello AnnotationServlet.");        out.println("     </BODY>");        out.println("</HTML>");        out.flush();        out.close();    }}


<load-on-startup>1</load-on-startup>什么意思:

1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。

2)它的值必须是一个整数,表示servlet应该被载入的顺序

3)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

4)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。

4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。

5)当值相同时,容器就会自己选择顺序来加载。


@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。

@WebServlet有很多的属性:

asyncSupported:声明Servlet是否支持异步操作模式。

description:    Servlet的描述。

displayName:     Servlet的显示名称。

initParams:        Servlet的init参数。

name:        Servlet的名称。

urlPatterns:    Servlet的访问URL。

value:          Servlet的访问URL。

Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。

像上面的AnnotationServlet可以描述成@WebServlet(name="AnnotationServlet",value="/AnnotationServlet")。

也定义多个URL访问:

如@WebServlet(name="AnnotationServlet",urlPatterns={"/AnnotationServlet","/AnnotationServlet2"})

或者@WebServlet(name="AnnotationServlet",value={"/AnnotationServlet","/AnnotationServlet2"})


0 0