国内精品久久久久久久星辰影视-亚洲天堂久久精品成人-亚洲国产成人综合青青-91精品啪在线看国产网站-日韩一区二区在线观看

?
    開(kāi)發(fā)技術(shù) / Technology

    Servlet3.0-使用注解定義Servlet

    日期:2015年1月29日  作者:zhjw  來(lái)源:逆火科技    點(diǎn)擊:725

    我使用的開(kāi)發(fā)環(huán)境:MyEclipse10+Tomcat7+JDK6。

      開(kāi)發(fā)Servlet3的程序需要一定的環(huán)境支持。Servlet3是Java EE6規范的一部分,MyEclipse10和Tomcat7都提供了對Java EE6規范的支持。

      Tomcat需要Tomcat7才支持Java EE6,Tomcat7需要使用JDK6。

      如果使用的MyEclipse的版本較低,沒(méi)有提供Java EE6的支持,可以到Oracle官方網(wǎng)站下載JavaEE6的SDK進(jìn)行安裝,或者從Tomcat7的解壓目錄下的lib文件夾中把所有jar文件引用到我們的項目路徑下。(例如:先建一個(gè)Java EE5的web項目,然后把Tomcat7的解壓目錄下的lib文件夾中的所有jar引入到項目中,再刪除Java EE5的庫引用,最后從Tomcat7的解壓目錄下的conf文件夾下把web.xml模板拷貝到項目,替換掉原來(lái)的web.xml)。

      Servlet3.0提供了注解(annotation),使得不再需要在web.xml文件中進(jìn)行Servlet的部署描述,簡(jiǎn)化開(kāi)發(fā)流程。

      1、新建一個(gè)Web Project,直接選擇Java EE6.0。

      2、看一下項目包視圖。

      3、Java EE6的庫文件

      4、web.xml文件

    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
       
    </web-app>

      注意version="3.0"http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd。

      5、新建一個(gè)Servlet。寫(xiě)上Servlet的Name,然后Next。

      6、不需要在web.xml文件中生成Servlet的相關(guān)信息。Finish。

      7、這樣建好一個(gè)Servlet后,在web.xml文件中沒(méi)有任何關(guān)于這個(gè)Servlet的描述信息。

     

    復制代碼
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
      
    </web-app>
    復制代碼

     

     

     

      8、使用注解描述Servlet。 

     

    復制代碼
    package com.cndatacom.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    
    /**
     * 使用注解描述Servlet
     */
    
    /**
     * 注解WebServlet用來(lái)描述一個(gè)Servlet
     * 屬性name描述Servlet的名字,可選
     * 屬性urlPatterns定義訪(fǎng)問(wèn)的URL,或者使用屬性value定義訪(fǎng)問(wèn)的URL.(定義訪(fǎng)問(wèn)的URL是必選屬性)
     */
    @WebServlet(name="AnnotationServlet",urlPatterns="/AnnotationServlet")
    public class AnnotationServlet extends HttpServlet {
    
        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();
        }
    
    }
    復制代碼

     

     

     

      9、把項目發(fā)布到Tomcat7,啟動(dòng)Tomcat7。在瀏覽器訪(fǎng)問(wèn):http://localhost:8080/Servlet3/AnnotationServlet

      完成了一個(gè)使用注解描述的Servlet程序開(kāi)發(fā)。


      使用@WebServlet將一個(gè)繼承于javax.servlet.http.HttpServlet的類(lèi)定義為Servlet組件。

      @WebServlet有很多的屬性:

      asyncSupported:聲明Servlet是否支持異步操作模式。

      description:    Servlet的描述。

      displayName:     Servlet的顯示名稱(chēng)。

      initParams:        Servlet的init參數。

      name:        Servlet的名稱(chēng)。

      urlPatterns:    Servlet的訪(fǎng)問(wèn)URL。

      value:          Servlet的訪(fǎng)問(wèn)URL。

      Servlet的訪(fǎng)問(wèn)URL是Servlet的必選屬性,可以選擇使用urlPatterns或者value定義。

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

      也定義多個(gè)URL訪(fǎng)問(wèn):

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

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