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

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

            Ø         javax.servlet

            接口

            ServletConfig

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

            ServletContext

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

            ServletRequest

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

            ServletResponse

            定義一個對象輔助Servlet將請求的響應信息發送給客戶端

            Servlet

            定義所有Servlet必須實現的方法

            ServletInputStream

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

            ServletOutputStream

            向客戶端發送二進制數據

            GenericServlet

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

            Ø         javax.servlet.http

            接口

            HttpSession

            用于標識客戶端并存儲有關客戶端的信息

            HttpSessionAttributeListener

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

            HttpServletRequest

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

            HttpServletResponse

            擴展ServletResponse接口,提供HTTP特定的發送響應的功能

            HttpServlet

            擴展了GenericServlet的抽象類,用于擴展創建Http Servlet

            Cookie

            創建一個Cookie,用于存儲Servlet發送給客戶端的信息

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

            getParameter(String key)

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

            getParameterValues(String key)

            返回一個字符串數組,獲得name和key一樣的表單控件的數據,但相同name的控件會有多個,如同名的多個checkbox等。

            getParameterMap()

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

            getParameterNames()

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

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

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

            <html>

            <head>

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

            <title>測試HttpRequest接收參數方法_發送參數</title>

            </head>

            <body>

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

            發送的內容:<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">內容1_值是1</option>

              <option value="2">內容2_值是2</option>

            </select>

            <br><br>

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

            </form>

            </body>

            </html>

            例3.2

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

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

            /*

             * TestServlet.java

             *

             *

             * 功能:Servlet獲得參數

             */

            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獲得參數的方法演示.

             * @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 {

             

                    // 設置輸出的格式

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

                    PrintWriter out = resp.getWriter();

                    out.println("<html>");

                    out.println("<head>");

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

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

                    out.println("<body>");

                    // 設置接收參數所用的編碼

                    req.setCharacterEncoding("UTF-8");

             

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

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

                    String value = null;

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

                    value = req.getParameter("text");

                    out.println("輸入框內輸入的值:" + 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()獲得的參數

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

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

                    String[] paramValue = null;

                    paramValue = req.getParameterValues("text");

                    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="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()獲得的參數

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

                    // 獲得參數的Map

                    Map paramMap = req.getParameterMap();

                    Object o = null;

                    String[] val = null;

                    // 循環Map的key

                    for (Iterator it = paramMap.keySet()

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

                        o = it.next();

                        out.print(o);

                        out.print(":");

                        // 獲得key對應的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()獲得參數的名稱

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

                    // 獲得參數名稱枚舉

                    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 閱讀(469) 評論(0)  編輯 收藏 引用 所屬分類: java
            伊人色综合久久天天| 成人妇女免费播放久久久| avtt天堂网久久精品| 久久人人爽人人爽人人AV| 97久久超碰国产精品2021| 九九久久99综合一区二区| 久久国产精品无码网站| 亚洲人成网亚洲欧洲无码久久| 99久久国产综合精品麻豆| 久久无码一区二区三区少妇| 97视频久久久| 日产久久强奸免费的看| 久久久午夜精品| 中文字幕精品无码久久久久久3D日动漫 | 久久精品国产91久久麻豆自制| 国产国产成人久久精品| 伊人久久久AV老熟妇色| 久久精品99无色码中文字幕| 亚洲欧美成人综合久久久| 色老头网站久久网| 国产无套内射久久久国产| 韩国三级大全久久网站| 亚洲伊人久久精品影院| 一本色综合久久| 精品久久人人妻人人做精品| 久久国产精品-久久精品| 亚洲αv久久久噜噜噜噜噜| 人妻精品久久久久中文字幕| 99热热久久这里只有精品68| 久久精品国产99久久无毒不卡| 久久久无码精品亚洲日韩京东传媒 | 久久午夜电影网| 欧美精品国产综合久久| 久久精品国产亚洲AV不卡| 91精品国产色综久久| 国产精品一久久香蕉产线看| 久久精品国产2020| 亚洲AV乱码久久精品蜜桃| 亚洲va久久久噜噜噜久久男同| 狠狠色丁香婷婷久久综合五月| 久久综合给合综合久久|