• <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++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              36 隨筆 :: 0 文章 :: 25 評論 :: 0 Trackbacks

                Servlet是實現(xiàn)javax.servlet.Servlet接口的對象。大多數(shù)Servlet通過從GenericServlet或HttpServlet類進行擴展來實現(xiàn)。Servlet API包含于兩個包中,即javax.servlet和javax.servlet.http。下邊我們分別來介紹。

            Ø         javax.servlet

            接口

            ServletConfig

            定義了在Servlet初始化的過程中由Servlet容器傳遞給Servlet的配置信息對象

            ServletContext

            定義Servlet使用的方法以獲取其容器的信息

            ServletRequest

            定義一個對象封裝客戶向Servlet的請求信息

            ServletResponse

            定義一個對象輔助Servlet將請求的響應(yīng)信息發(fā)送給客戶端

            Servlet

            定義所有Servlet必須實現(xiàn)的方法

            ServletInputStream

            定義名為readLine()的方法,從客戶端 讀取二進制數(shù)據(jù)

            ServletOutputStream

            向客戶端發(fā)送二進制數(shù)據(jù)

            GenericServlet

            抽象類,定義一個通用的、獨立于底層協(xié)議的Servlet

            Ø         javax.servlet.http

            接口

            HttpSession

            用于標(biāo)識客戶端并存儲有關(guān)客戶端的信息

            HttpSessionAttributeListener

            這個偵聽接口用于獲取會話的屬性列表的改變的通知

            HttpServletRequest

            擴展ServletRequest接口,為HTTP Servlet提供HTTP請求信息

            HttpServletResponse

            擴展ServletResponse接口,提供HTTP特定的發(fā)送響應(yīng)的功能

            HttpServlet

            擴展了GenericServlet的抽象類,用于擴展創(chuàng)建Http Servlet

            Cookie

            創(chuàng)建一個Cookie,用于存儲Servlet發(fā)送給客戶端的信息

                在這里,我們需要詳細(xì)了解下HttpServletRequest獲得參數(shù)名和參數(shù)值的方法。

            getParameter(String key)

            返回一個字符串,獲得name和key一樣的表單控件的數(shù)據(jù),如果有重復(fù)的name,則返回第一個的值。

            getParameterValues(String key)

            返回一個字符串?dāng)?shù)組,獲得name和key一樣的表單控件的數(shù)據(jù),但相同name的控件會有多個,如同名的多個checkbox等。

            getParameterMap()

            返回一個包含所有參數(shù)的Map,為key-String[]模式,即,key是表單控件的name,同時,為了防止有重復(fù)name的控件存在,每個name對應(yīng)的值是一個字符串?dāng)?shù)組。

            getParameterNames()

            返回一個枚舉類型值,返回所有表單中所有表看控件的name。

                下面我們舉個例子來說明這四個方法的用法。

                我們首選創(chuàng)建一個sendparam.html文件,代碼如例3.2所示。

            <html>

            <head>

            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

            <title>測試HttpRequest接收參數(shù)方法_發(fā)送參數(shù)</title>

            </head>

            <body>

            <form action="GetParam" method="get">

            發(fā)送的內(nèi)容:<br>

            輸入框A(name="txt"):<input type="text" name="text"/>

            <br>

            輸入框B(name="txt"):<input type="text" name="text"/>

            <br><br>

            <input type="checkbox" name="checkbox" value="a">

            選項1(name="chk" value="a")

            <br>

            <input type="checkbox" name="checkbox" value="b">

            選項2(name="chk" value="b")

            <br><br>

            <select name="select">

              <option value="1">內(nèi)容1_值是1</option>

              <option value="2">內(nèi)容2_值是2</option>

            </select>

            <br><br>

            <input type="submit" value="傳送"/>

            </form>

            </body>

            </html>

            例3.2

                在例3.2中,我們定義了兩個輸入框,name都設(shè)定為“text”,定義了兩個多選框,name都設(shè)定為“checkbox”,最后定義了一個下拉選擇框,name設(shè)定為“select”。

                我們接著創(chuàng)建一個GetParamServlet類,里邊分別用到了上面提到的四個方法。代碼如例3.3所示。

            /*

             * TestServlet.java

             *

             *

             * 功能:Servlet獲得參數(shù)

             */

            package com.jy.sample.servlet;

             

            import java.io.IOException;

            import java.io.PrintWriter;

            import java.util.Enumeration;

            import java.util.Iterator;

            import java.util.Map;

             

            import javax.servlet.http.HttpServlet;

            import javax.servlet.http.HttpServletRequest;

            import javax.servlet.http.HttpServletResponse;

             

            /**

             * Servlet獲得參數(shù)的方法演示.

             * @author JY

             */

            public class GetParamServlet extends HttpServlet {

             

                /** SerialVersionUID */

                private static final long serialVersionUID = 1711689663622072980L;

             

                /**

                 * 處理Get請求

                 * @param req Request

                 * @param resp Response

                 * @throws IOException IO異常

                 */

                @Override

                protected void doGet(HttpServletRequest req,

                        HttpServletResponse resp) throws IOException {

             

                    // 設(shè)置輸出的格式

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

                    PrintWriter out = resp.getWriter();

                    out.println("<html>");

                    out.println("<head>");

                    out.println("<title>HttpRequest獲得參數(shù)的方法</title>");

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

                    out.println("<body>");

                    // 設(shè)置接收參數(shù)所用的編碼

                    req.setCharacterEncoding("UTF-8");

             

                    // 通過getParameter()獲得的參數(shù)

                    out.println("getParameter()獲得的參數(shù)<br>");

                    String value = null;

                    // 獲得name="txt"的表單控件的值

                    value = req.getParameter("text");

                    out.println("輸入框內(nèi)輸入的值:" + value);

                    out.print("<br>");

                    // 獲得name="chk"的表單控件的值

                    value = req.getParameter("checkbox");

                    out.println("多選框選中的值:" + value);

                    out.print("<br>");

                    // 獲得name="sel"的表單控件的值

                    value = req.getParameter("select");

                    out.println("下拉框選中的值:" + value);

                    out.println("<br>");

                    out.println("=====================================<br>");

             

                    // 通過getParameterValues()獲得的參數(shù)

                    out.println("getParameterValues()獲得的參數(shù)<br>");

                    // 獲得name="txt"的表單控件的值

                    String[] paramValue = null;

                    paramValue = req.getParameterValues("text");

                    if (null != paramValue) {

                        out.print("輸入框內(nèi)輸入的值:");

                        for (int i = 0; i < paramValue.length; i++) {

                            out.print(paramValue[i]);

                            out.print("&nbsp;&nbsp;");

                        }

                    }

                    out.println("<br>");

                    // 獲得name="chk"的表單控件的值

                    paramValue = req.getParameterValues("checkbox");

                    if (null != paramValue) {

                        out.print("多選框選中的值:");

                        for (int i = 0; i < paramValue.length; i++) {

                            out.print(paramValue[i]);

                            out.print("&nbsp;&nbsp;");

                        }

                    }

                    out.println("<br>");

                    // 獲得name="sel"的表單控件的值

                    paramValue = req.getParameterValues("select");

                    if (null != paramValue) {

                        out.print("下拉框選中的值:");

                        for (int i = 0; i < paramValue.length; i++) {

                            out.print(paramValue[i]);

                            out.print("&nbsp;&nbsp;");

                        }

                    }

                    out.println("<br>");

                    out.println("=====================================<br>");

             

                    // 通過getParameterMap()獲得的參數(shù)

                    out.println("getParameterMap()獲得的參數(shù)<br>");

                    // 獲得參數(shù)的Map

                    Map paramMap = req.getParameterMap();

                    Object o = null;

                    String[] val = null;

                    // 循環(huán)Map的key

                    for (Iterator it = paramMap.keySet()

            .iterator(); it.hasNext();) {

                        o = it.next();

                        out.print(o);

                        out.print(":");

                        // 獲得key對應(yīng)的value

                        val = (String[]) paramMap.get(o);

                        if (null != val) {

                            for (int j = 0; j < val.length; j++) {

                                out.print(val[j]);

                                out.print("&nbsp;&nbsp;");

                            }

                        }

                    }

                    out.println("<br>");

                    out.println("=====================================<br>");

             

                    // 通過getParameterNames()獲得參數(shù)的名稱

                    out.println("getParameterNames()獲得參數(shù)的名稱<br>");

                    // 獲得參數(shù)名稱枚舉

                    Enumeration en = req.getParameterNames();

                    for (;en.hasMoreElements();) {

                        o = en.nextElement();

                        out.print(o);

                        out.print("&nbsp;&nbsp;");

                    }

                    out.println("<br>");

                    out.println("=====================================<br>");

             

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

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

             

                }

            }


            posted on 2010-07-27 11:21 infinity 閱讀(483) 評論(0)  編輯 收藏 引用 所屬分類: java
            99久久国产精品免费一区二区| 伊人久久大香线焦综合四虎| 人妻少妇精品久久| 亚洲国产成人精品91久久久| 久久精品卫校国产小美女| 国产综合久久久久| 日韩电影久久久被窝网| 日韩精品无码久久久久久| 国产精品日韩欧美久久综合| 99蜜桃臀久久久欧美精品网站| 久久99精品国产麻豆| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久婷婷是五月综合色狠狠| 免费久久人人爽人人爽av| 亚洲国产成人久久笫一页| 亚洲午夜无码久久久久小说| 久久久久亚洲av无码专区导航 | 久久se精品一区精品二区国产| 97久久国产综合精品女不卡 | 久久精品国产99国产电影网| 亚洲伊人久久综合中文成人网| 国产三级久久久精品麻豆三级| 无码任你躁久久久久久| 精品久久久久久无码人妻蜜桃 | 99久久精品国产高清一区二区| 中文字幕无码久久人妻| 狠狠色丁香久久婷婷综合蜜芽五月| 无码AV中文字幕久久专区| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 青青草原综合久久大伊人| 久久久精品视频免费观看| 一本伊大人香蕉久久网手机| 99精品久久精品| 久久精品国产亚洲一区二区| 丰满少妇高潮惨叫久久久| 性做久久久久久久| 无码伊人66久久大杳蕉网站谷歌 | 亚洲一区精品伊人久久伊人| 亚洲&#228;v永久无码精品天堂久久 | 精品国产VA久久久久久久冰| 色综合久久久久无码专区|