神奇好望角 The Magical Cape of Good Hope

          庸人不必自擾,智者何需千慮?
          posts - 26, comments - 50, trackbacks - 0, articles - 11
            BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          JAX-RS 從傻逼到牛叉 6:參數注入

          Posted on 2011-12-29 16:34 蜀山兆孨龘 閱讀(4414) 評論(4)  編輯  收藏 所屬分類: Java EESOA

          《JAX-RS 從傻逼到牛叉 3:路徑匹配》中,我們已經見過如何使用 @PathParam@QueryParam@MatrixParam 分別注入 URI 中的路徑參數、矩陣參數和查詢參數,以及如何編程訪問這些參數。本文介紹表單參數、HTTP 頭部參數和 Cookie 參數的注入。

          表單參數

          HTTP 請求也可以使用提交表單的方式。這時請求方法一般是 POST,當然春哥也無法阻止你用 GET。在前面我們雖然介紹過處理 POST 請求的例子,但那只是利用了 JAX-RS 對 JAXB 的支持,并沒有涉及到對具體請求參數的注入。JAX-RS 提供了 @FormParam 注解來注入 POST 請求的參數,例如:

          @POST
          public Response createMovie(@FormParam("title") String title) {
              // 此處省略若干行
          }
              

          這兒省略了 @Consumes 注解,JAX-RS 會自動默認為 @Consumes(MediaType.APPLICATION_FORM_URLENCODED),也就是 application/x-www-form-urlencoded 格式的請求。如果請求格式為 multipart/form-data,就必須顯示指明:

          @POST
          @Consumes(MediaType.MULTIPART_FORM_DATA)
          public Response createMovie(@FormParam("title") String title) {
              // 此處省略若干行
          }
              

          JAX-RS 還支持文件的上傳和下載,以后再介紹。

          HTTP 頭部參數

          注入 HTTP 頭部參數簡單得不能再簡單了:

          @GET
          @Path("xxx")
          @Produces(MediaType.TEXT_PLAIN)
          public String xxx(@HeaderParam("User-Agent") String userAgent) {
              // 此處省略若干行
          }
              

          如果有很多頭部參數,為了避免臃腫的參數列表,可以注入一個頭部對象,然后編程訪問頭部參數:

          @GET
          @Path("xxx")
          @Produces(MediaType.TEXT_PLAIN)
          public String xxx(@Context HttpHeaders headers) {
              // 此處省略若干行
          }
              

          Cookie 參數

          注入 Cookie 參數同樣的簡單:

          @GET
          @Path("xxx")
          @Produces(MediaType.TEXT_PLAIN)
          public String xxx(@CookieParam("userName") String userName) {
              // 此處省略若干行
          }
              

          如果希望編程訪問,則可以像編程訪問那樣注入一個 HttpHeaders 對象,然后通過它的 getCookies() 方法來獲取所有的 Cookie。


          評論

          # re: JAX-RS 從傻逼到牛叉 6:參數注入  回復  更多評論   

          2014-05-22 16:04 by 8
          785

          # re: JAX-RS 從傻逼到牛叉 6:參數注入  回復  更多評論   

          2014-05-22 16:05 by 8
          8

          # re: JAX-RS 從傻逼到牛叉 6:參數注入  回復  更多評論   

          2014-05-22 16:05 by 8
          9

          # re: JAX-RS 從傻逼到牛叉 6:參數注入[未登錄]  回復  更多評論   

          2015-05-04 12:32 by abc
          13
          主站蜘蛛池模板: 迁安市| 定陶县| 海原县| 莱阳市| 金山区| 深水埗区| 田阳县| 贵溪市| 榕江县| 灵璧县| 项城市| 长子县| 郸城县| 凯里市| 宕昌县| 句容市| 泰顺县| 桐柏县| 湖州市| 虹口区| 饶河县| 寻甸| 博乐市| 乳源| 偏关县| 密山市| 武乡县| 涟源市| 周宁县| 定兴县| 清涧县| 黄山市| 贵南县| 安阳市| 洛浦县| 利津县| 北流市| 都兰县| 元江| 化德县| 交城县|