溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springMVC rest風(fēng)格

發(fā)布時(shí)間:2020-07-12 08:50:32 來源:網(wǎng)絡(luò) 閱讀:287 作者:乾坤刀 欄目:開發(fā)技術(shù)

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"})
	@ResponseBody
	public 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"})
	@ResponseBody
	public 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"})
	@ResponseBody
	public 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"})
	@ResponseBody
	public 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的特殊處理,需要在參數(shù)中增加_method.


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


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI