亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Springmvc構造RESTful詳細講解

2019-11-10 17:41:03
字體:
來源:轉載
供稿:網友

http://www.blogjava.net/soken/articles/371548.html

Rest介紹

/blog/1 HTTP GET =>  得到id = 1的blog /blog/1 HTTP DELETE => 刪除 id = 1的blog /blog/1 HTTP PUT =>  更新id = 1的blog /blog   HTTP POST =>  新增BLOG

以下詳細解一下sPRing rest使用.首先,我們帶著如下兩個問題查看本文。 1.如何在java構造沒有擴展名的RESTful url,如 /forms/1,而不是 /forms/1.do 2.瀏覽器的form標簽不支持提交delete,put請求,如何曲線解決springmvc rest 實現springmvc的resturl是通過@RequestMapping 及@PathVariable annotation提供的,通過如@RequestMapping(value="/blog /{id}",method=RequestMethod.DELETE)即可處理/blog/1 的delete請求.

1@RequestMapping(value=”/blog/{id}”,method=RequestMethod.DELETE) 2public ModelAndView delete(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) { 3  blogManager.removeById(id); 4  return new ModelAndView(LIST_ACTION); 5}

@RequestMapping @PathVariable如果URL中帶參數,則配合使用,如

1@RequestMapping(value=”/blog/{blogId}/message/{msgId}”,method=RequestMethod.DELETE) 2public ModelAndView delete(@PathVariable(“blogId”) Long blogId,@PathVariable(“msgId”) Long msgId,HttpServletRequest request,HttpServletResponse response) { 3}

1.springmvc web.xml配置

1 2  3  default 4  /static/* 5  6  7    springmvc 8    org.springframework.web.servlet.DispatcherServlet 9    1 10  11 12  13  14  UrlRewriteFilter 15  org.tuckey.web.filters.urlrewrite.UrlRewriteFilter 16  17     confReloadCheckInterval 18     60 19    20  21        logLevel 22        DEBUG 23      24  25  26  UrlRewriteFilter 27  /* 28  29 30  31  32    springmvc 33    / 34  35 36  37  38  HiddenHttpMethodFilter 39  org.springframework.web.filter.HiddenHttpMethodFilter 40  41 42  43  HiddenHttpMethodFilter 44  springmvc 45 

2.webapp/WEB-INF/springmvc-servlet.xml配置,使用如下兩個class激活@RequestMapping annotation

1 2 3

3.Controller編寫

1/** 2  * @RequestMapping(“/userinfo”) 具有層次關系,方法級的將在類一級@RequestMapping之一, 3  * 如下面示例, 訪問方法級別的@RequestMapping(“/new”),則URL為 /userinfo/new 4  */ 5@Controller 6@RequestMapping(“/userinfo”) 7public class UserInfoController extends BaseSpringController{ 8  //默認多列排序,example: username desc,createTime asc 9  protected static final String DEFAULT_SORT_COLUMNS = null; 10 11  private UserInfoManager userInfoManager; 12 13  private final String LIST_ACTION = “redirect:/userinfo”; 14 15  /** 16  * 通過spring自動注入 17  **/ 18  public void setUserInfoManager(UserInfoManager manager) { 19  this.userInfoManager = manager; 20  } 21 22  /* 列表 / 23  @RequestMapping 24  public ModelAndView index(HttpServletRequest request,HttpServletResponse response,UserInfo userInfo) { 25  PageRequest pageRequest = newPageRequest(request,DEFAULT_SORT_COLUMNS); 26  //pageRequest.getFilters(); //add custom filters  27 28  Page page = this.userInfoManager.findByPageRequest(pageRequest); 29  savePage(page,pageRequest,request); 30  return new ModelAndView(“/userinfo/list”,”userInfo”,userInfo); 31  } 32 33  /* 進入新增 / 34  @RequestMapping(value=”/new”) 35  public ModelAndView _new(HttpServletRequest request,HttpServletResponse response,UserInfo userInfo) throws Exception { 36  return new ModelAndView(“/userinfo/new”,”userInfo”,userInfo); 37  } 38 39  /* 顯示 / 40  @RequestMapping(value=”/{id}”) 41  public ModelAndView show(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) throws Exception { 42  UserInfo userInfo = (UserInfo)userInfoManager.getById(id); 43  return new ModelAndView(“/userinfo/show”,”userInfo”,userInfo); 44  } 45 46  /* 編輯 / 47  @RequestMapping(value=”/{id}/edit”) 48  public ModelAndView edit(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) throws Exception { 49  UserInfo userInfo = (UserInfo)userInfoManager.getById(id); 50  return new ModelAndView(“/userinfo/edit”,”userInfo”,userInfo); 51  } 52 53  /* 保存新增 / 54  @RequestMapping(method=RequestMethod.POST) 55  public ModelAndView create(HttpServletRequest request,HttpServletResponse response,UserInfo userInfo) throws Exception { 56  userInfoManager.save(userInfo); 57  return new ModelAndView(LIST_ACTION); 58  } 59 60  /* 保存更新 / 61  @RequestMapping(value=”/{id}”,method=RequestMethod.PUT) 62  public ModelAndView update(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) throws Exception { 63  UserInfo userInfo = (UserInfo)userInfoManager.getById(id); 64  bind(request,userInfo); 65  userInfoManager.update(userInfo); 66  return new ModelAndView(LIST_ACTION); 67  } 68 69  /* 刪除 / 70  @RequestMapping(value=”/{id}”,method=RequestMethod.DELETE) 71  public ModelAndView delete(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) { 72  userInfoManager.removeById(id); 73  return new ModelAndView(LIST_ACTION); 74  } 75 76  /* 批量刪除 / 77  @RequestMapping(method=RequestMethod.DELETE) 78  public ModelAndView batchDelete(HttpServletRequest request,HttpServletResponse response) { 79  String[] items = request.getParameterValues(“items”); 80  for(int i = 0; i < items.length; i++) { 81   java.lang.Long id = new java.lang.Long(items[i]); 82   userInfoManager.removeById(id); 83  } 84  return new ModelAndView(LIST_ACTION); 85  } 86 87} 88

1/userinfo  => index() 2  /userinfo/new => _new() 3  /userinfo/{id} => show() 4  /userinfo/{id}/edit  => edit() 5  /userinfo POST => create() 6  /userinfo/{id} PUT => update() 7  /userinfo/{id} DELETE => delete() 8  /userinfo DELETE => batchDelete() 9

注(不使用 /userinfo/add  => add() 方法是由于add這個方法會被maxthon瀏覽器當做廣告鏈接過濾掉,因為包含ad字符)4.jsp 編寫

1 2

生成的html內容如下, 生成一個hidden的_method=put,并于web.xml中的HiddenHttpMethodFilter配合使用,在服務端將post請求改為put請求

1 2  3

另外一種方法是你可以使用Ajax發送put,delete請求.5.靜態資源的URL重寫 如上我們描述,現因為將default servlet映射至/static/的子目錄,現我們訪問靜態資源將會帶一個/static/前綴. 如 /foo.gif, 現在訪問該文件將是 /static/foo.gif. 那如何避免這個前綴呢,那就是應用URL rewrite,現我們使用 http://tuckey.org/urlrewrite/, 重寫規則如下

1 2   3   4    .*.jsp 5    .*.jspx 6     ^(/...)7    /static1 8   9


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美韩日一区二区| 91精品国产综合久久香蕉的用户体验| 欧美激情中文字幕乱码免费| 欧美视频一区二区三区…| 美乳少妇欧美精品| 久久99热这里只有精品国产| 精品在线欧美视频| 久久久精品一区二区| 97香蕉久久夜色精品国产| 狠狠躁天天躁日日躁欧美| 国色天香2019中文字幕在线观看| 成人羞羞国产免费| 亚洲欧美在线免费观看| 色诱女教师一区二区三区| 国产精品91久久久| 国模gogo一区二区大胆私拍| 日韩中文在线观看| 久久伊人精品视频| 欧美成年人视频网站欧美| 色一区av在线| 欧美丰满少妇xxxx| 久久中文久久字幕| 91亚洲精品一区| 亚洲欧美另类自拍| 欧美成人精品影院| 久久久久久中文字幕| 欧美体内谢she精2性欧美| 国产精品美女呻吟| 日韩成人久久久| 欧美日韩一区二区三区在线免费观看| 日韩视频一区在线| 欧美精品做受xxx性少妇| 亚洲成av人片在线观看香蕉| 亚洲国产欧美自拍| 77777亚洲午夜久久多人| 欧美大片va欧美在线播放| 日韩免费在线电影| 韩国三级电影久久久久久| 中文字幕欧美日韩| 黄网动漫久久久| 欧美日韩精品在线观看| 在线播放国产一区中文字幕剧情欧美| 欧美一级在线播放| 97超碰蝌蚪网人人做人人爽| 欧美日韩一区二区在线播放| 国产精品免费久久久| 最新69国产成人精品视频免费| 日本一区二区三区四区视频| 国产精品精品视频| 国产ts一区二区| 亚洲国产成人久久| 欧美主播福利视频| 欧美国产精品日韩| 亚洲曰本av电影| 日韩av电影手机在线| 琪琪第一精品导航| 26uuu亚洲国产精品| 国内偷自视频区视频综合| 国色天香2019中文字幕在线观看| 精品综合久久久久久97| 国产精品久久久av久久久| 亚洲欧美国产制服动漫| 久久精品国产视频| 亚洲高清一区二| 日韩精品视频免费| 欧美裸体xxxx极品少妇软件| 日韩激情av在线播放| 欧洲永久精品大片ww免费漫画| 色偷偷888欧美精品久久久| 国产精品91在线| 久久精品中文字幕一区| 欧美性色19p| 亚洲国产精品va| 久久亚洲私人国产精品va| 欧美野外wwwxxx| 国产精品高清在线| 久久全国免费视频| 久久久在线免费观看| 亚洲色图35p| 日韩中文字幕亚洲| 亚洲第一天堂无码专区| 欧美性极品少妇精品网站| 久久久噜噜噜久久| 日韩精品在线看| 亚洲欧美综合精品久久成人| 最好看的2019的中文字幕视频| 欧美日韩中文字幕| 九九热r在线视频精品| 国产精品久久久久7777婷婷| 欧美另类极品videosbest最新版本| 亚洲精品美女久久| 中文字幕最新精品| 日韩一区二区三区xxxx| 精品日本高清在线播放| 亚洲精品国产精品乱码不99按摩| 国产精品r级在线| 精品自在线视频| 国产精品成人一区二区三区吃奶| 国产成人97精品免费看片| 欧美视频在线观看免费| 欧美成人精品在线视频| 亚洲欧美国产日韩中文字幕| 国产偷国产偷亚洲清高网站| 中文字幕av日韩| 国产精品久久一区| 在线不卡国产精品| 少妇高潮久久久久久潘金莲| 欧美高跟鞋交xxxxxhd| 91精品国产自产在线| 精品女同一区二区三区在线播放| 亚洲国产欧美一区二区三区久久| 国产伊人精品在线| 成人福利视频网| 亚洲三级 欧美三级| 国产日本欧美一区| 国产精品久久久久999| 97超级碰碰碰| 日韩欧美在线免费| 97国产精品视频人人做人人爱| 欧美老少做受xxxx高潮| 久久久人成影片一区二区三区| 久久精品免费播放| 在线国产精品播放| 欧美专区在线视频| 久久久91精品国产| 欧美专区日韩视频| 美乳少妇欧美精品| 精品在线小视频| 欧美激情精品久久久久| 久久久亚洲天堂| 国产成人av网址| 欧美日韩国产丝袜另类| 18性欧美xxxⅹ性满足| 欧洲永久精品大片ww免费漫画| 亚洲精品v欧美精品v日韩精品| 亚洲在线视频观看| 欧美激情一区二区三级高清视频| 欧美激情中文网| 精品激情国产视频| 一本色道久久综合狠狠躁篇的优点| 伦理中文字幕亚洲| 成人福利网站在线观看| 成人免费看黄网站| 97国产真实伦对白精彩视频8| 欧美三级xxx| 成人激情视频在线观看| 久久理论片午夜琪琪电影网| 日本中文字幕成人| 草民午夜欧美限制a级福利片| 久久亚洲欧美日韩精品专区| 欧美午夜激情小视频| 精品爽片免费看久久| 亚洲欧洲黄色网| 欧美在线视频免费观看| 午夜剧场成人观在线视频免费观看| 在线观看日韩视频| 成人国产精品一区| 久久全球大尺度高清视频| 日韩av资源在线播放| 日韩高清av一区二区三区| 国产91精品久久久久久| 精品亚洲一区二区三区在线观看| 国产日产欧美精品| 日韩在线视频播放|