1.dispatcherServlet的配置

<!--ThefrontcontrollerofthisSpringWebapplication,responsibleforhandlingallapplicationrequests--><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><!--MapallrequeststotheDispatcherServletforhandling--><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/")publicclassUserController{@RequestMapping(value="index",method=RequestMethod.GET,produces={"application/json;charset=UTF-8"})publicModelAndViewindex(){ModelAndViewmodelAndView=newModelAndView();modelAndView.setViewName("home");returnmodelAndView;}@RequestMapping(value="user/{id}",method=RequestMethod.GET,produces={"application/json;charset=UTF-8"})@ResponseBodypublicUsergetUser(@PathVariable("id")StringuserId){System.err.println("查询用户信息:"+userId);returnnewUserBuilder().setUserId(userId).setUserName("测试").toUser();}@RequestMapping(value="user",method=RequestMethod.POST,produces={"application/json;charset=UTF-8"})@ResponseBodypublicUseraddUser(StringuserId,StringuserName,intuserAge){System.err.println("新增用户信息:"+userId);returnnewUserBuilder().setUserId(userId).setUserName(userName).setUserAge(userAge).toUser();}@RequestMapping(value="user",method=RequestMethod.PUT,produces={"application/json;charset=UTF-8"})@ResponseBodypublicUsereditUser(StringuserId,StringuserName,intuserAge){System.err.println("修改用户信息:"+userId);returnnewUserBuilder().setUserId(userId).setUserName(userName).setUserAge(userAge).toUser();}@RequestMapping(value="user/{id}",method=RequestMethod.DELETE,produces={"application/json;charset=UTF-8"})@ResponseBodypublicUserdeleteUser(@PathVariable("id")StringuserId){System.err.println("删除用户信息:"+userId);returnnewUserBuilder().setUserId(userId).toUser();}}


4.js示例

<scripttype="text/javascript">functionfnQuery(){$.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));}});}functionfnAdd(){$.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));}});}functionfnEdit(){$.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));}});}functionfnDelete(){$.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