• <th id="kadjp"></th>

            1. ?
                開發(fā)技術(shù) / Technology

                Servlet3.0-使用注解定義Servlet

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

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

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

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

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

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

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

                  2、看一下項(xiàng)目包視圖。

                  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、新建一個Servlet。寫上Servlet的Name,然后Next。

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

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

                 

                復(fù)制代碼
                <?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>
                復(fù)制代碼

                 

                 

                 

                  8、使用注解描述Servlet。 

                 

                復(fù)制代碼
                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用來描述一個Servlet
                 * 屬性name描述Servlet的名字,可選
                 * 屬性urlPatterns定義訪問的URL,或者使用屬性value定義訪問的URL.(定義訪問的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();
                    }
                
                }
                復(fù)制代碼

                 

                 

                 

                  9、把項(xiàng)目發(fā)布到Tomcat7,啟動Tomcat7。在瀏覽器訪問:http://localhost:8080/Servlet3/AnnotationServlet

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


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

                  @WebServlet有很多的屬性:

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

                  description:    Servlet的描述。

                  displayName:     Servlet的顯示名稱。

                  initParams:        Servlet的init參數(shù)。

                  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"})

                国产欧美在线观看,国产精品白浆冒出视频,91精品国产91热久久久福利,大伊香蕉在线精品视频97 国产精品美女久久福利 国产精品黄的免费观看
              • <th id="kadjp"></th>