1.dispatcherServlet的配置

	<!--?The?front?controller?of?this?Spring?Web?application,?responsible?for?handling?all?application?requests?--><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc-ftl.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><!--?Map?all?requests?to?the?DispatcherServlet?for?handling?--><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
注:<url-pattern>/</url-pattern>不能指定后綴名


2. 使servlet可以操作PUT和DELETE

????<!--?支持http的PUT和DELTE操作?-->?<filter><filter-name>httpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>httpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>


3.controller示例

@Controller
@RequestMapping("/user/")
public?class?UserController?
{@RequestMapping(value="index",?method=RequestMethod.GET,?produces={"application/json;charset=UTF-8"})public?ModelAndView?index(){ModelAndView?modelAndView?=?new?ModelAndView();modelAndView.setViewName("home");return?modelAndView;}@RequestMapping(value="user/{id}",?method=RequestMethod.GET,?produces={"application/json;charset=UTF-8"})@ResponseBodypublic?User?getUser(@PathVariable("id")?String?userId){System.err.println("查詢用戶信息:"?+?userId);return?new?UserBuilder().setUserId(userId).setUserName("測試").toUser();}@RequestMapping(value="user",?method=RequestMethod.POST,?produces={"application/json;charset=UTF-8"})@ResponseBodypublic?User?addUser(String?userId,?String?userName,?int?userAge){System.err.println("新增用戶信息:"?+?userId);return?new?UserBuilder().setUserId(userId).setUserName(userName).setUserAge(userAge).toUser();}@RequestMapping(value="user",?method=RequestMethod.PUT,?produces={"application/json;charset=UTF-8"})@ResponseBodypublic?User?editUser(String?userId,?String?userName,?int?userAge){System.err.println("修改用戶信息:"?+?userId);return?new?UserBuilder().setUserId(userId).setUserName(userName).setUserAge(userAge).toUser();}@RequestMapping(value="user/{id}",?method=RequestMethod.DELETE,?produces={"application/json;charset=UTF-8"})@ResponseBodypublic?User?deleteUser(@PathVariable("id")?String?userId){System.err.println("刪除用戶信息:"?+?userId);return?new?UserBuilder().setUserId(userId).toUser();}
}


4.js示例

???<script?type="text/javascript">	function?fnQuery(){$.ajax({type:?'GET',url:?'${request.contextPath}/user/user/111',async:?true,data:?{},dataType:?"json",success:?function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}function?fnAdd(){$.ajax({type:?'POST',url:?'${request.contextPath}/user/user',async:?true,data:?{'userId':'123','userName':'測試測試測試測試','userAge':88,},dataType:?"json",success:?function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}function?fnEdit(){$.ajax({type:?'POST',url:?'${request.contextPath}/user/user',async:?true,data:?{_method:'PUT','userId':'55555','userName':'修改試測試測試','userAge':48,},dataType:?"json",success:?function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}function?fnDelete(){$.ajax({type:?'POST',url:?'${request.contextPath}/user/user/111',async:?true,data:?{_method:'DELETE',},dataType:?"json",success:?function(data){alert(JSON.stringify(data));},error:function(msg){alert(JSON.stringify(msg));}});}</script>


注:PUT與DELETE的特殊處理,需要在參數中增加_method.


參考地址:http://www.cnblogs.com/qixiaoyizhan/p/5864233.html