WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院软件开发Java Spring MVC与JAX-RS比较与分析 阅读

Spring MVC与JAX-RS比较与分析

 2010-08-04 00:00:00 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姇閹碱偆鐥閺屾洘绻濊箛鏇犵獥闂佺厧澹婃禍婊堚€旈崘顏佸亾閿濆骸澧ù鐘欏嫮绠鹃柛顐ゅ枎閻忋儲銇勯弴妯哄姦妞ゃ垺鐟╅幃鈩冩償閵囧府鎷�
核心提示: 在JAX-RS中,AccountResource是通过前请求(per-request)语义声明的,Spring MVC与JAX-RS比较与分析(7),这也是JAX-RS默认的推荐设置,这么做可以将特定于请求的数据注入并存储到资源类本身当中,如通过路径参数指定需要访问哪个资源、通过文件扩展名(.h

在JAX-RS中,AccountResource是通过前请求(per-request)语义声明的,这也是JAX-RS默认的推荐设置。这么做可以将特定于请求的数据注入并存储到资源类本身当中,这适用于由JAX-RS所管理的根级别资源。子资源由应用实例化,并不会直接从这种方法中获益。

在Spring MVC中,控制器永远都是单例的,他们将特定于请求的数据作为方法参数。JAX-RS也可以这么做,以单例的方式创建资源。

将请求映射到方法上

接下来,我们看看Spring MVC和JAX-RS如何将请求映射到方法上。@Path和@RequestMapping都可以从URL中抽取出路径变量:

@Path("/accounts/{username}") 
@RequestMapping("/accounts/{username}") 

这两个框架也都可以使用正则表达式抽取路径变量:

@Path("/accounts/{username:.*}") 
@RequestMapping("/accounts/{username:.*}" 

Spring MVC的@RequestMapping可以根据查询参数的有无来匹配请求:

@RequestMapping(parameters="foo") 
@RequestMapping(parameters="!foo") 

或是根据查询参数值进行匹配:

@RequestMapping(parameters="foo=123") 

@RequestMapping还可以根据头信息的有无来匹配请求:

@RequestMapping(headers="Foo-Header") 
@RequestMapping(headers="!Foo-Header") 

或是根据头信息的值进行匹配:

@RequestMapping(headers="content-type=text/*") 

处理请求数据

HTTP请求中包含着应用需要提取和处理的数据,如HTTP头、cookie、查询字符串参数、表单参数以及请求体(XML、JSON等)中所包含的大量数据。在RESTful应用中,URL本身也可以带有重要的信息,如通过路径参数指定需要访问哪个资源、通过文件扩展名(.html, .pdf)指定需要何种内容类型等。HttpServletRequest提供了处理这一切的所有底层访问机制,但直接使用 HttpServletRequest实在是太乏味了。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:Spring MVC JAX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接