• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            infinity

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              36 隨筆 :: 0 文章 :: 25 評(píng)論 :: 0 Trackbacks

                我們現(xiàn)在來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的Servlet:FirstServlet類(lèi),功能只是輸出“Hello!大家好!”。代碼如例3.1。

            /*

             * FirstServlet.java

             *

             * 功能:通過(guò)Servlet輸出頁(yè)面

            */

            package com.jy.sample.servlet;

             

            import java.io.IOException;

            import java.io.PrintWriter;

            import javax.servlet.ServletException;

            import javax.servlet.http.HttpServlet;

            import javax.servlet.http.HttpServletRequest;

            import javax.servlet.http.HttpServletResponse;

             

            /**

             * HelloWorld Servlet.

             * 
            @author JY

             
            */

            public class FirstServlet extends HttpServlet {

                
            /** serialVersionUID. */

                
            private static final long serialVersionUID = 2372510451801586160L;

             

                
            /**

                 * 處理Get請(qǐng)求.

                 * 
            @param req Request

                 * 
            @param resp Response

                 * 
            @throws ServletException Servlet異常

                 * 
            @throws IOException IO異常

                 
            */

                @Override

                
            protected void doGet(HttpServletRequest req,

                        HttpServletResponse resp)

                            
            throws ServletException, IOException {

                    
            // 設(shè)定內(nèi)容類(lèi)型為HTML網(wǎng)頁(yè)UTF-8編碼

                    resp.setContentType(
            "text/html;charset=UTF-8");

                    
            // 輸出頁(yè)面

                    PrintWriter out 
            = resp.getWriter();

                    out.println(
            "<html><head>");

                    out.println(
            "<title>First Servlet Hello</title>");

                    out.println(
            "</head><body>");

                    out.println(
            "Hello!大家好!");

                    out.println(
            "</body></html>");

                    out.close();

                }

            }

             

            例3.1

                下面我們來(lái)看看這段代碼,一開(kāi)始我們必須導(dǎo)入javax.servlet.*和javax.servlet.http.*。其中,javax.servlet.* 存放與HTTP協(xié)議無(wú)關(guān)的一般性Servlet類(lèi);javax.servlet.http.* 增加了與HTTP協(xié)議有關(guān)的功能。

                所有Servlet都必須實(shí)現(xiàn)javax.servlet.Servlet接口,但是通常我們都會(huì)從javax.servlet.GenericServlet或javax.servlet.http.HttpServlet擇一來(lái)實(shí)現(xiàn)。如果寫(xiě)的Servlet代碼和HTTP協(xié)議無(wú)關(guān),那么必須繼承GenericServlet類(lèi);若有關(guān),就必須繼承HttpServlet類(lèi)。我們的例子中繼承的是HttpServlet類(lèi)。

                javax.servlet.* 里面的ServletRequest和ServletResponse接口提供存取一般的請(qǐng)求和響應(yīng);而javax.servlet.http.* 里面的HttpServletRequest和HttpServletResponse接口,則提供HTTP請(qǐng)求及響應(yīng)的存取服務(wù)。通過(guò)代碼了解到,我們代碼中用到的是HttpServletRequest和HttpServletResponse。

                我們的代碼中,利用HttpServletResponse接口的setContentType()方法來(lái)設(shè)定內(nèi)容類(lèi)型,我們要顯示為HTML網(wǎng)頁(yè)類(lèi)型,因此,內(nèi)容類(lèi)型設(shè)為“text/html”,這是HTML網(wǎng)頁(yè)的標(biāo)準(zhǔn)MIME類(lèi)型值。之后,用getWriter()方法返回PrintWriter類(lèi)型的out對(duì)象,它與PrintStream類(lèi)似,但是它能夠?qū)ava的Unicode字符進(jìn)行編碼轉(zhuǎn)換。最后,利用out對(duì)象把“Hello!大家好!”的字符串顯示在網(wǎng)頁(yè)上。

                代碼寫(xiě)好后,我們來(lái)設(shè)定web.xml文件,web.xml文件在我們Web項(xiàng)目的WEB-INF文件夾內(nèi)。如圖3.4。


            圖3.4

                我們來(lái)詳細(xì)看一看web.xml中這段關(guān)于Servlet的配置。配置一個(gè)Servlet需要配置兩個(gè)標(biāo)簽,第一個(gè)<servlet>,一個(gè)是<servlet-mapping>。

            對(duì)于<servlet>,在其中可以配置Servlet的名字,所要調(diào)用的Java類(lèi),還有Servlet初始化時(shí)傳入的參數(shù)。在這里,我們的Servlet名字是“FirstServlet”,調(diào)用的java類(lèi)是“com.jy.sample.servlet.FirstServlet”,就是我們寫(xiě)的Servlet的package加上類(lèi)名。我們寫(xiě)了一個(gè)最簡(jiǎn)單的Servlet,我們不需要傳遞初始化參數(shù)給Servlet,所以沒(méi)有配置初始化參數(shù),關(guān)于配置初始化參數(shù),我們會(huì)在后邊的例子里講解。

                對(duì)于<servlet-mapping>,我們首先指定了Servlet的名字,然后設(shè)置url連接,在這里,我們?cè)O(shè)置的是“/FirstServlet”。這里的Servlet名字必須和上面的<servlet>標(biāo)簽中的<servlet-name>的值一致。

                當(dāng)我們的頁(yè)面中設(shè)定的連接和<url-pattern>中設(shè)定的值一致時(shí),則會(huì)通過(guò)<servlet-name>找到對(duì)應(yīng)Servlet類(lèi)來(lái)運(yùn)行。這里,當(dāng)頁(yè)面的連接(a標(biāo)簽或form設(shè)定的action)是“/FirstServlet”時(shí),則會(huì)通過(guò)Servlet的名字“FirstServlet”來(lái)找到對(duì)應(yīng)的Servlet類(lèi)“com.jy.sample.servlet.FirstServlet”來(lái)運(yùn)行。

                最后,我們看看FirstServlet的執(zhí)行結(jié)果,如圖3.5所示。

            圖3.5


            posted on 2010-07-27 11:10 infinity 閱讀(540) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): java
            综合久久精品色| 久久99精品久久久久久秒播| 久久久受www免费人成| 亚洲v国产v天堂a无码久久| 波多野结衣久久一区二区| 怡红院日本一道日本久久 | 久久久久亚洲精品天堂久久久久久| 久久精品人人槡人妻人人玩AV| 国内精品伊人久久久久AV影院| 久久久一本精品99久久精品88| 丁香久久婷婷国产午夜视频| 亚洲国产精品无码久久久久久曰 | 国产精品久久久久蜜芽| 久久久久99精品成人片欧美| 99久久99久久精品国产片| 久久久久久精品免费免费自慰| 久久精品国产99国产电影网 | 久久亚洲高清观看| 久久AV无码精品人妻糸列| 久久精品成人免费网站| 囯产极品美女高潮无套久久久| 91视频国产91久久久| 精产国品久久一二三产区区别 | 91精品国产91久久久久久蜜臀| 亚洲国产精品综合久久网络| 国产真实乱对白精彩久久| 久久精品水蜜桃av综合天堂 | 久久久久人妻一区二区三区vr | 婷婷久久香蕉五月综合加勒比| 久久国产精品免费| 久久香蕉综合色一综合色88| 日韩精品久久无码中文字幕| 青青草原综合久久大伊人| 久久精品国产一区二区三区不卡| 久久久婷婷五月亚洲97号色| 免费精品久久久久久中文字幕| 99久久婷婷国产一区二区| 久久国产精品久久久| 99久久无码一区人妻a黑| 国产成人久久AV免费| 久久久久AV综合网成人|