锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲系列中文字幕,亚洲成A∨人片在线观看无码,亚洲综合网站色欲色欲http://www.tkk7.com/Hafeyang/category/37449.html<a style='color:#fff' href='http://www.tkk7.com/Hafeyang/archive/2009/02/02/253007.html' >cnblogs=>blogjava&javaeye</a>zh-cnTue, 10 Feb 2009 16:03:01 GMTTue, 10 Feb 2009 16:03:01 GMT60RESTful Web Service(涓?:浣跨敤ajax鍒涘緩瀹㈡埛绔?/title><link>http://www.tkk7.com/Hafeyang/archive/2009/02/10/254129.html</link><dc:creator>闃寵 閿?/dc:creator><author>闃寵 閿?/author><pubDate>Tue, 10 Feb 2009 13:34:00 GMT</pubDate><guid>http://www.tkk7.com/Hafeyang/archive/2009/02/10/254129.html</guid><wfw:comment>http://www.tkk7.com/Hafeyang/comments/254129.html</wfw:comment><comments>http://www.tkk7.com/Hafeyang/archive/2009/02/10/254129.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/Hafeyang/comments/commentRss/254129.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/Hafeyang/services/trackbacks/254129.html</trackback:ping><description><![CDATA[<p>涓婁釜鏂囩珷涓嬌鐢╡clipse鍒涘緩鐨剋eb service銆傛牴鎹畆est鐨勬濇兂錛屾瘡涓涓祫婧愰兘鏈夊敮涓鏍囪瘑鐨刄RI銆傚湪REST Web service explorer 涓彲浠ョ湅鍒版瘡涓祫婧愮殑URI銆?/p> <p>榪欓噷鏀懼嚭涓浜涜皟鐢ㄧ殑渚嬪瓙錛?/p> <p>1.get璇鋒眰鑾峰緱Category xml 鏁版嵁銆?/p><pre class="code">$(<span style="color: #2a00ff">"#btncall"</span>).click(<span style="color: #7f0055">function </span>(){ $.ajax({ url:<span style="color: #2a00ff">"/restblog/services/category"</span>, type:<span style="color: #2a00ff">"GET"</span>, <strong>dataType:<span style="color: #2a00ff">'xml'</span></strong>, success :<span style="color: #7f0055">function </span>(data){ <span style="color: #7f0055">var </span>tablehtml=<span style="color: #2a00ff">"<table class='tableresult' border='1' bordercolor='#ccc'><tr><th>緙栧彿</th><th>鍚嶇О</th></tr>"</span>; $(<span style="color: #2a00ff">"category"</span>,data).each(<span style="color: #7f0055">function </span>(i,category){ <span style="color: #7f0055">var </span>id=$(<span style="color: #2a00ff">"id"</span>,category).text(); <span style="color: #7f0055">var </span>name=$(<span style="color: #2a00ff">"name"</span>,category).text(); tablehtml+=(<span style="color: #2a00ff">"<tr><td>"</span>+id+<span style="color: #2a00ff">"</td><td>"</span>+name+<span style="color: #2a00ff">"</td></tr>"</span>); }); tablehtml+=<span style="color: #2a00ff">"</table>"</span>; $(tablehtml).appendTo(<span style="color: #2a00ff">"#result"</span>); },error:<span style="color: #7f0055">function </span>(){ alert(<span style="color: #2a00ff">"get category list failed!"</span>); }}); });</pre> <p>jquery鐨刟jax璋冪敤鏈変竴涓弬鏁癲ataType鏄湡鏈涘緱鍒扮殑鏁版嵁鏍煎紡錛岀洰鍓嶇増鏈殑鍙夊間負xml,json,html,jsonp.榛樿鐨勬槸html銆傛寚瀹氫簡璇ュ睘鎬э紝jquery浼氳嚜鍔ㄨВ鏋愭暟鎹牸寮忋?/p> <p>涓婇潰鐨勪緥瀛愭帴鍙楀埌鐨勬暟鎹艦濡傦細</p> <p><?xml version="1.0" encoding="UTF-8"?> <br>   <Categories> <br>       <category> <br>           <id>1</id> <br>           <name>絎竴涓垎綾?lt;/name> <br>       </category> <br>       <category> <br>           <id>2</id> <br>           <name>絎簩涓垎綾?lt;/name> <br>       </category> <br>   </Categories> <p>data鏄竴涓獂ml瀵硅薄錛屽湪娌℃湁jquery鐨勬儏鍐典笅瑙f瀽xml鏄竴浠跺緢楹葷儲鐨勪簨鎯呫備絾鏄嬌鐢╦query錛寈ml瑙f瀽璧鋒潵鍜宧tml涓鏍楓? <p>$(<span style="color: #2a00ff">"category"</span>,data)鏄煡鎵炬爣絳懼悕(tagName)涓篶ategory鑺傜偣錛岃繑鍥瀓query瀵硅薄銆傛敞鎰忚幏寰楄妭鐐瑰肩敤鐨勬槸text()鏂規硶銆? <p>榪樺緱娉ㄦ剰鐨勫湴鏂瑰氨鏄痷rl 榪欓噷鐨勮礬寰勫拰璇鋒眰jsp鐨勮鍒欐槸涓鏍楓? <p>2.鍙戦乯son鐨勪緥瀛愩?pre class="code">$(<span style="color: #2a00ff">"#btnAddbyjson"</span>).click(<span style="color: #7f0055">function </span>(){ $.ajax({ url:<span style="color: #2a00ff">"/restblog/services/category/add"</span>, <strong>type:<span style="color: #2a00ff">"PUT"</span>,</strong> <strong>data:<span style="color: #2a00ff">"{\"id\":1,\"name\":\"category1\"}"</span>,</strong> <strong>contentType:<span style="color: #2a00ff">'application/json'</span>,</strong> success :<span style="color: #7f0055">function </span>(result){ alert(result); },error:<span style="color: #7f0055">function </span>(){ alert(<span style="color: #2a00ff">"add category failed!"</span>); }}); });</pre> <p>娉ㄦ剰type: 閫氬父鐨刟jax璋冪敤閮藉彧鏄疓ET POST 榪欓噷鐢ㄧ殑鏄疨UT錛岃鍥炶繃紲炴潵銆?/p> <p>contentType:涓庢湇鍔℃柟娉曚笂鐨凜onsume 鏍囨敞灞炴т竴鏍楓傚湪ajax璋冪敤鐨勬椂鍊欎細鍦ㄨ姹傜殑Header娣誨姞{"contentType","application/json"}鐨勯敭/鍊兼爣鏄庡彂閫佺殑鏁版嵁鏍煎紡鏄痡son銆?/p> <p>鍗充究鍙戦佺殑鏁版嵁鏍煎紡鏄痡son,浣嗘槸鐪熸鐨勬暟鎹槸浠ュ瓧絎︿覆鐨勫艦寮忓湪緗戠粶浼犺緭鐨勶紝鎵浠ata灞炴у彧鏄痡son鐨勫瓧絎︿覆錛岀敱鏈嶅姟鍣ㄧ瑙f瀽鎴怌ategory瀵硅薄銆傝繖閲岀殑json瀛楃涓叉牸寮忔瘮杈冧弗鏍鹼紝涓嶈兘閫傜敤鍗曞紩鍙? ,榪欓噷瑕佹敞鎰忋?/p> <p>data灞炴у嵆鍙互鏄瓧絎︿覆鍙堝彲浠ユ槸json,jquery浼氭牴鎹甤ontentType瑙f瀽鎴愰渶瑕佸彂閫佺殑鏍煎紡銆?/p> <p>涓嬮潰鐨勬埅鍥炬槸鍦‵ireBug涓嬬湅鍒扮殑鏁版嵁鍙戦佹儏鍐碉細</p> <p><a href="http://www.tkk7.com/images/blogjava_net/Hafeyang/WindowsLiveWriter/RESTfulWebServiceajax_10732/1.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="202" alt="1" src="http://www.tkk7.com/images/blogjava_net/Hafeyang/WindowsLiveWriter/RESTfulWebServiceajax_10732/1_thumb.jpg" width="320" border="0"></a> </p> <p>榪欏紶鍥炬棬鍦ㄨ鏄庡彂閫佺殑鏁版嵁涓嶆槸涓涓敭/鍊肩被鍨嬨傚尯鍒笌涓嬮潰鐨勪緥瀛愩?/p> <p>3.POST鐨勮〃鍗曟彁浜ゃ?/p><pre class="code">$(<span style="color: #2a00ff">"#btnAdd"</span>).click(<span style="color: #7f0055">function </span>(){ $.ajax({ url:<span style="color: #2a00ff">"/restblog/services/category/addbyname"</span>, type:<span style="color: #2a00ff">"POST"</span>, data:{<span style="color: #2a00ff">'categoryname'</span>:$(<span style="color: #2a00ff">"#txtName"</span>).val()}, success :<span style="color: #7f0055">function </span>(result){ alert(result); },error:<span style="color: #7f0055">function </span>(){ alert(<span style="color: #2a00ff">"add category failed!"</span>); }}); });</pre> <p>addbyname鏂規硶鐨刢ategoryname鏍囪瘑涓篅FormParam 鎵浠ョ敤POST鎻愪氦鐨勬暟鎹褰撳仛Form鎻愪氦鐨勬暟鎹備笅闈㈢殑鎴浘璇存槑嫻忚鍣ㄥ彂閫佺殑鏄竴涓爣鍑嗙殑閿?鍊兼暟鎹?/p> <p><a href="http://www.tkk7.com/images/blogjava_net/Hafeyang/WindowsLiveWriter/RESTfulWebServiceajax_10732/2.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="177" alt="2" src="http://www.tkk7.com/images/blogjava_net/Hafeyang/WindowsLiveWriter/RESTfulWebServiceajax_10732/2_thumb.jpg" width="238" border="0"></a> </p> <p> 4.璋冪敤甯Context鏍囪瘑鍙傛暟鐨勬柟娉?/p><pre class="code">$(<span style="color: #2a00ff">"#btncommonProcess"</span>).click(<span style="color: #7f0055">function </span>(){ $.ajax({ url:<span style="color: #2a00ff">"/restblog/services/category/commonProcess"</span>, type:<span style="color: #2a00ff">"GET"</span>, data:<span style="color: #2a00ff">"a=b&a=e&c=d"</span>, success :<span style="color: #7f0055">function </span>(result){ alert(result); },error:<span style="color: #7f0055">function </span>(){ alert(<span style="color: #2a00ff">"commonProcess failed!"</span>); }}); });</pre><a ></a> <p>鏈嶅姟绔殑浠g爜瑙佷笂涓綃囨枃绔犮?/p> <p>鎺у埗鍙頒笂鎵撳嵃錛?/p> <p>c : [d]<br>a : [b, e]</p> <h3>鎬葷粨</h3> <p>REST Web service 涓嶄絾鎻愪緵浜嗘爣鍑嗙殑璋冪敤鏂規硶錛屽悓鏃舵嫢鏈夐潪甯哥畝渚跨殑ajax璋冪敤銆傜敱浜庤姹傜殑綰暟鎹紝鎵浠ヤ粬鏇撮傚悎浜巃jax璋冪敤銆傝屼笖鐨勫鎴風鍙互璺ㄥ鉤鍙幫紝璺ㄥ簲鐢ㄣ備粬鐨勪紭鍔挎槸鏃犲彲姣旀嫙鐨勶紝鎴戠浉淇′粬鐨勬湭鏉ヤ笉鍙及閲忋?/p> <img src ="http://www.tkk7.com/Hafeyang/aggbug/254129.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/Hafeyang/" target="_blank">闃寵 閿?/a> 2009-02-10 21:34 <a href="http://www.tkk7.com/Hafeyang/archive/2009/02/10/254129.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>RESTful Web Service(浜?:浣跨敤eclipse鍒涘緩restful webservice 宸ョ▼http://www.tkk7.com/Hafeyang/archive/2009/02/05/253458.html闃寵 閿?/dc:creator>闃寵 閿?/author>Thu, 05 Feb 2009 14:19:00 GMThttp://www.tkk7.com/Hafeyang/archive/2009/02/05/253458.htmlhttp://www.tkk7.com/Hafeyang/comments/253458.htmlhttp://www.tkk7.com/Hafeyang/archive/2009/02/05/253458.html#Feedback0http://www.tkk7.com/Hafeyang/comments/commentRss/253458.htmlhttp://www.tkk7.com/Hafeyang/services/trackbacks/253458.html浣跨敤鐜:jdk1.5+eclispe3.4+myeclispe7

File=>New=>Web Service Project銆?/p>

project name: restblog,閫夋嫨REST(JAX-RS) 涓嬩竴姝ャ?/p>

鍕鵑塩ore,jaxb,client,json鐒跺悗涓嬩竴姝ャ?/p>

涔嬫墍浠ュ垱寤簊ervlet鏄洜涓轟細璇鋒眰涓浜涚墿鐞嗕笉瀛樺湪鐨刄RI錛屼簨瀹炰笂灝辨槸榪欎釜servlet鍦ㄥ鐞嗚繖浜況esource銆?/p>

jaxb(Java Architecture for XML Binding)鍙互灝唈ava class搴忓垪鍙鋒垚xml錛岃鍙傝?a title="http://java.sun.com/developer/technicalArticles/WebServices/jaxb/" >http://java.sun.com/developer/technicalArticles/WebServices/jaxb/

json灝變笉澶氳浜嗭紝榪欎釜鍖呭彲浠ュ疄鐜癹ava class 杞寲鎴恓son銆?/p>

鐐瑰嚮finish瀹屾垚宸ョ▼鍒涘緩銆?/p>

榪欐牱鍒涘緩鐨勫伐紼嬩笌閫氬父鐨剋eb宸ョ▼鐨勫尯鍒氨鏄坊鍔犱簡servlet鍦╳eb.xml錛岃繖閲岃創鍑簊ervlet浠g爜錛氬悗緇殑鏂囩珷涓篃浼氭彁鍒頒粬銆?/p>

<servlet>
<display-name>JAX-RS REST Servlet</display-name>
<servlet-name>JAX-RS REST Servlet</servlet-name>
<servlet-class>
com.sun.jersey.spi.container.servlet.ServletContainer
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS REST Servlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

鍦ㄥ伐紼嬬殑classpath涓嬩細寮曠敤涓嬪垪鍖咃細

11

榪欎簺鍖呭彲浠ヤ粠http://download.java.net/maven/2/com/sun/jersey/ 涓嬭澆(浣跨敤maven2)

棣栧厛鍒涘緩涓涓畝鍗曠殑綾籆ategory

12

浣跨敤@XmlRootElement鏍囨敞璇ョ被

鐐瑰嚮13 鍥炬爣鍒涘緩webservice,閫夋嫨restblog宸ョ▼錛孎ramework閫夋嫨REST(JAX-RS)

14

Java class : CategoryService

URL path: 璧勬簮璺緞 濉啓category ,榪欐牱鎵鏈変笌category鐩稿叧鐨勮祫婧愰兘浣跨敤http://yourpath/services/category璁塊棶

LIfecycle: Pre-request(JAX-RS default)姣忔璇鋒眰鏃剁敓鎴愪竴涓湇鍔$被瀹炰緥(榪欓噷鎸嘋ategoryService),singleton:鍗曚緥錛屽彧瀛樺湪涓涓疄渚?/p>

Consumes: 鎺ュ彈鐨刢ontentType 鍖呮嫭application/xml ,application/json 閫氫織鏉ヨ灝辨槸鎺ュ彈鎻愪氦鏁版嵁鐨勬牸寮忋?/p>

Produces: 浜х敓鐨勬暟鎹牸寮忛夐」鍚屾牱涓篴pplicatin/xml,application/json 絳夈?br /> 娉ㄦ剰榪欓噷鐨凜onsumes/Produces鏄寚璇鋒眰http://yourpath/services/category鐨勬暟鎹牸寮忋?/p>

鐐瑰嚮 Add 鎸夐挳娣誨姞鏈嶅姟鏂規硶錛岀晫闈㈠涓嬶細

16

榪欐槸涓涓瀯閫犳湇鍔℃柟娉曠殑鐣岄潰錛屼笅闈㈡湁浠g爜棰勮銆傚湪娣誨姞鍙傛暟鐨勬椂鍊欙紝閫夋嫨Param Type閫夐」鐨勬剰涔夛細

Context: 榪欐槸涓涓爣璇嗚鍙傛暟涓鴻姹備笂涓嬫枃銆傚彲浠ョ洿鎺ヨ幏寰梤equest鐨勫弬鏁般?/p>

QueryParam:uri?涔嬪悗鐨勫弬鏁?/p>

PathParam:uri涓殑鍙傛暟濡傦細/category/{id}涓殑id灝辨槸PathParam

FormParam:浣跨敤post鎻愪氦鐨勫弬鏁般?/p>

CookieParam: Cookie鍙傛暟銆?/p>

HeaderParam: 璇鋒眰鐨勫ご閮ㄤ俊鎭?/p>

涔熻浣犲凡緇忔敞鎰忓埌娌℃湁session鍙傛暟錛屾槸鐨勶紝鎵璋撶殑"鏃犵姸鎬乻tateless"澶氬皯灝變綋鐜板湪榪欓噷錛寃eb鏈嶅姟涓嶄繚瀛樿姹傜浉鍏崇殑淇℃伅銆?/p>

緇煎悎涓婇潰鐨勭敤娉曪紝涓嬮潰鐨勪緥瀛愭兜鐩栦簡甯哥敤鐨勬湇鍔℃柟娉曠殑鍐欐硶錛屼箣涓殑澶勭悊榪囩▼鏆傛椂鐢ㄧ‖緙栫爜銆傚悗闈㈢殑鏂囩珷浼氫粙緇岺Ibernate,Spring鐨勫簲鐢ㄣ?br />

package com.dawnpro.restblog;

import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;

import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;

@Path(
"category")
public class CategoryService {
    
    @GET
    @Produces( {
"application/json","application/xml"})
    
/**
     * getCategories 浜х敓json,xml涓ょ鏁版嵁鏍煎紡錛屽叿浣撻偅縐嶆牸寮忓彇鍐充簬contentType
     
*/
    
public List<Category> getCategories() {
        List
<Category> result =new ArrayList<Category>();
        result.add(
new Category(1,"絎竴涓垎綾?/span>"));
        result.add(
new Category(2,"絎簩涓垎綾?/span>"));
        
return result;
    }

    @GET
    @Path(
"{id}")
    
public Category getCategory(@PathParam("id"int id) {
        
return new Category(id,"id涓?/span>"+id+"鐨勭被鍒?/span>");
    }

    
    @GET
    @Path(
"json/{id}")
    @Produces( 
"application/json")
    
public JSONObject getCategoryJson(@PathParam("id"int id){//浜х敓json
        JSONObject o =new JSONObject();
        
try {
            o.put(
"id", id);
            o.put(
"name""id涓?/span>"+id+"鐨刢ategory");
        } 
catch (JSONException e) {
            e.printStackTrace();
        }
        
return o;
    }
    
    @PUT
    @Path(
"add")
    @Produces(
"text/html")
    @Consumes( { 
"application/xml""application/json" })
    
public String addCategory(Category category) {
        System.out.println(
"澶勭悊娣誨姞綾誨埆閫昏緫錛屾帴鍙楃殑鏁版嵁涓篿d:"+category.getId()+",name:"+category.getName());
        
return "ok";
    }
    
    @POST
    @Path(
"addbyname")
    
public String addCategory(@FormParam("categoryname") @DefaultValue("[鏈懡鍚峕") String cateogryname) {
        System.out.println(
"澶勭悊娣誨姞綾誨埆閫昏緫錛屾帴鍙楃殑鏁版嵁涓簄ame:"+cateogryname);
        
return "娣誨姞綾誨埆"+cateogryname+"鎴愬姛";
    }

    @POST
    @Produces(
"text/html")
    @Path(
"updatecategory")
    @Consumes( { 
"application/xml""application/json" })
    
public String updateCategory(Category category) {
        System.out.println(
"澶勭悊鏇存柊綾誨埆閫昏緫錛屾帴鍙楃殑鏁版嵁涓篿d:"+category.getId()+",name:"+category.getName());
        
return "ok";
    }

    @DELETE
    @Path(
"delete/{id}")
    
public String deleteCategory(@PathParam("id"int id) {
        System.out.println(
"澶勭悊鍒犻櫎綾誨埆閫昏緫錛屾帴鍙楃殑鏁版嵁涓篿d:"+id);
        
return "ok";
    }
    
    @GET
    @Path(
"commonProcess")
    
public String commonProcess(@Context UriInfo info){//@Context 鍙傛暟鏍囪瘑UriInfo
         StringBuilder buf = new StringBuilder();  
         
for (String param: info.getQueryParameters().keySet()) {  
             buf.append(param
+" : "+info.getQueryParameters().get(param));  
             buf.append(
"\n");  
         }  
         System.out.println(buf.toString());
         
        
return "ok";
    }
    
}


浣犲彲浠ュ湪CategoryService.java緙栬緫涓?鍙抽敭鑿滃崟=>MyEclipse=>Add REST Method娣誨姞鏈嶅姟鏂規硶銆?/font>

鍙抽敭宸ョ▼鏍圭洰褰時estblog閫夋嫨MyEclipse=>Test with RESTful WebServices Explorer 灝嗕細鎵撳紑嫻嬭瘯紿楀彛銆?/font>
17 
嫻忚涓殑鍦板潃涓?http://localhost:8080/restblog/services/application.wadl 棣栧厛/services鏄敱servlet鎷︽埅銆?/pre>
濡傛灉鍦ㄦ祻瑙堝櫒涓祻瑙堣鍦板潃錛屽皢寰楀埌涓涓獂ml鏂囦歡銆傝繖涓枃浠跺彨web service application description language銆傞【鍚嶆濅箟浠栨槸涓涓湇鍔℃弿榪版枃浠躲?/pre>
闇瑕佽鏄庣殑鏄綋璋冪敤鏂規硶鐨勫弬鏁頒負Category綾誨瀷錛岃皟鐢ㄦ椂浼犻掔殑鏄痻ml鍚屾椂contentType璁劇疆涓篴pplication/xml榪欐牱jersey浼氬皢xml杞寲涓篊ategory綾誨瀷鐨勫璞°傚鏋滆漿鍖栧嚭閿欏垯鏈嶅姟璋冪敤澶辮觸錛屼細榪斿洖閿欒淇℃伅銆?/pre>

鎬葷粨

鏈妭涓昏浠嬬粛鍦∕yeclipse涓垱寤篟ESTful web service project 浠ュ強嫻嬭瘯銆傚埌鐩墠涓烘錛屽彧鍐欎簡涓や釜綾誨氨杞繪澗鐨勫疄鐜頒簡RESTful Web service銆?/pre>
鍙傝冭祫鏂欙細
浠嬬粛rest:http://java.sun.com/developer/technicalArticles/WebServices/restful/
浠嬬粛浣跨敤myeclipse rest 鏀寔http://www.myeclipseide.com/documentation/quickstarts/webservices_rest/
RESTful Web Services Developer's Guidehttp://docs.sun.com/app/docs/doc/820-4867?l=zh
netbeans鐨剅estful webservice 鏀寔錛?a >http://www.netbeans.org/kb/60/websvc/rest_zh_CN.html


]]>RESTful Web Service(涓):姒傝堪http://www.tkk7.com/Hafeyang/archive/2009/02/05/253430.html闃寵 閿?/dc:creator>闃寵 閿?/author>Thu, 05 Feb 2009 10:20:00 GMThttp://www.tkk7.com/Hafeyang/archive/2009/02/05/253430.htmlhttp://www.tkk7.com/Hafeyang/comments/253430.htmlhttp://www.tkk7.com/Hafeyang/archive/2009/02/05/253430.html#Feedback0http://www.tkk7.com/Hafeyang/comments/commentRss/253430.htmlhttp://www.tkk7.com/Hafeyang/services/trackbacks/253430.html鏈妭浠嬬粛sun鐨凴ESTful Webservice鐨勫疄鐜版鏋秊ersey,浠ュ強RESTful Webservice鐨勭悊璁虹煡璇嗐傚仛涓鴻緋誨垪鐨勭涓綃囷紝鏈妭浼氫粙緇嶅悗緇殑鍐呭銆?/p>

浠涔堟槸RESTful Web Services錛?/h3>

RESTful web services鏄〃璞$姸鎬佷紶杈撶殑web鏈嶅姟銆俁EST鐨勫熀紜鏄傜敤http鍒涘緩涓涓畝鍗曠殑web鏈嶅姟浣撶郴鏋舵瀯銆傚畠涓篽ttp鏁版嵁浼犺緭鎻愪緵浜嗙粺涓鐨勬帴鍙c俽est鏈変簲涓叧閿у師鍒欙細

  • 鎵鏈夎祫婧愰兘鏈夊敮涓鐨刄RI錛氭墍鏈夌殑鏁版嵁閮藉湪鍞竴鐨刄RI鏍囪瘑銆?
  • 灝嗘墍鏈夌殑浜嬬墿閾炬帴鍦ㄤ竴璧鳳細鐢變簬鏄疷RI錛屽湪浠諱綍鐨勫彲鑳界殑鎯呭喌涓嬶紝閫傜敤閾炬帴鎸囧悜琚爣璇嗙殑浜嬬墿銆?
  • 閫傜敤鏍囧噯鏂規硶錛氬悓涓涓祫婧愰傜敤涓嶅悓鐨剉erb鍙互鑾峰緱涓嶅悓鐨勭粨鏋滐紝鍦ㄦ帴涓嬫潵鐨勪緥瀛愪腑鍙互寰楀埌楠岃瘉銆傝繖閲岀殑verb闄や簡甯哥敤鐨凣ET鍜孭OST錛岃繕鏈塒UT,DELETE銆傛瘡涓涓姩璇嶅垰濂藉搴旂潃鏁版嵁搴撶殑鍩烘湰鎿嶄綔錛欸ET瀵瑰簲鑾峰彇鏁版嵁錛屽氨鏄煡璇紱POST瀵瑰簲鐨勬洿鏂版暟鎹甎PDATE錛汸UT瀵瑰簲鐫insert錛汥ELETE灝卞搴旇繖鏁版嵁搴撳垹闄ゃ傝繖鏍風殑瀹氫箟涓嶄粎鑳芥洿璇箟鍖栧姩璇嶏紝鏇撮噸瑕佺殑鏄粬瀹氫箟鐨勪竴縐嶆爣鍑嗭紝鏈変簡榪欎釜鏍囧噯錛屽彲浠ヨ法搴旂敤錛岃法鍩燂紝璺ㄧ郴緇熺殑璋冪敤銆?
  • 璧勬簮鐨勫閲嶈〃榪幫細璧勬簮鐨勮幏鍙栦細闅忕潃璇鋒眰鐨刪ead鑰屼笉鍚屻?
  • 鏃犵姸鎬侀氫俊錛歊EST瑕佹眰鐘舵佽涔堣鏀懼叆璧勬簮鐘舵佷腑錛岃涔堜繚瀛樺湪瀹㈡埛绔笂銆傛崲鍙ヨ瘽璇達紝鏈嶅姟绔笉鑳戒繚鎸侀櫎浜嗗崟璇嶈姹備箣澶栫殑錛屼換浣曚笌鍏墮氫俊鐨勫鎴風鐨勯氫俊鐘舵併傝繖鏍峰仛鐨勭悊鐢變竴鏄彲浼哥緝鎬э紝浠栧彲浠ヤ嬌鏈嶅姟绔殑鍙樺寲瀵瑰鎴風鏄笉鍙鐨勩?/li>

jersey浠嬬粛

jersey鏄痵un鐨凴ESTful web service瀹炵幇銆備粬浣跨敤jdk5鐨勬柊鐗瑰緛anotation銆傚叾鍙傝冪珯鐐規槸https://jersey.dev.java.net/鍏朵粬鐨勫弬鑰冭祫鏂欙細

rest浠嬬粛錛?a >http://www.infoq.com/cn/articles/rest-introduction

涓嬮潰鍑犱釜瀹朵紮灝辨槸jersey鐨勫紑鍙戣?/p>

鈻?Earthly Powers, by Paul Sandoz, at http://blogs.sun.com/japod/category/REST.

 

鏈郴鍒楃儲寮曪細

浣跨敤eclipse鍒涘緩restful webservice 宸ョ▼銆?/p>

]]>
主站蜘蛛池模板: 亚洲av成人中文无码专区| 在线免费观看h片| 免费毛片a在线观看67194| 久久夜色精品国产亚洲AV动态图| 黄色网址免费在线| 亚洲AV无码成H人在线观看| 亚洲国产精品成人久久| 中国极品美軳免费观看| 亚洲日韩精品一区二区三区无码| 亚洲人成在久久综合网站| 国产精品怡红院永久免费| 亚洲另类古典武侠| 成年性生交大片免费看| 久久亚洲精品无码gv| 亚洲国产成人久久笫一页| 97在线免费观看视频| 亚洲国产成人久久精品动漫 | 精品日韩99亚洲的在线发布| jizz在线免费播放| 好爽…又高潮了毛片免费看| 亚洲va久久久噜噜噜久久男同| 国产精品免费无遮挡无码永久视频| 亚洲人成在线影院| 国产日本一线在线观看免费| 亚洲av日韩综合一区久热| 亚洲乱码中文字幕综合234| 亚洲一区精彩视频| 1000部免费啪啪十八未年禁止观看 | 久久久影院亚洲精品| 成年人视频免费在线观看| 亚洲精品国产av成拍色拍| 国产四虎免费精品视频| 国产AV无码专区亚洲AV麻豆丫 | 成人免费男女视频网站慢动作| 婷婷亚洲综合一区二区| 亚洲精品无码av人在线观看| 91香蕉在线观看免费高清| 亚洲av网址在线观看| 好大好硬好爽免费视频| 免费播放在线日本感人片| 天天爽亚洲中文字幕|