1. 程式人生 > >RESTful風格(使用Ajax+Spring MVC框架實現)

RESTful風格(使用Ajax+Spring MVC框架實現)

一、環境配置
①、開發前的基礎配置:配置好相應的Spring MVC、JSON和Restful需要的依賴程式包。
②、Tomcat9.0伺服器配置
③、在專案配置web.xml

    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param> 
        <param-name
>
contextConfigLocation</param-name> <param-value>classpath:applicationContext-mvc.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 路徑是 '/' 斜槓 --> <url-pattern
>
/</url-pattern> </servlet-mapping>

④、建立一個測試類TextRestful .java,測試環境是否可用

@Controller 
public class TextRestful {
    @RequestMapping(value="/restful",produces="text/plain;charset=UTF-8")
    public @ResponseBody String info() {
        return "Hello World!";
    }
}

瀏覽器輸入路徑:http://localhost/XXXX

(專案名稱) / restful(方法路徑)
頁面顯示:Hello World!則代表環境搭建完成。
⑤準備要測試的Vo類

public class Emp implements Serializable {
    private Integer empno;
    private String ename;
    private double sal;
    private Date hiredate;
    //此處省略setter()、getter()和toString()方法
}

⑥準備好測試的test.JSP頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    // request.setCharacterEncoding("UTF-8") ;
%>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/restful.js"></script>
<title>Insert title here</title>
</head>
<body>
    <input type="button" id="addBut" name="addBut" value="增加"><br>
    <input type="button" id="editBut" name="editBut" value="更新"><br>
    <input type="button" id="deleteBut" name="deleteBut" value="刪除"><br>
    <input type="button" id="getBut" name="getBut" value="查詢"><br>
    <input type="button" id="listBut" name="listBut" value="分頁顯示"><br>
    <div id="showDiv"></div>
</body>
</html>

二、Restful風格實現CRUD
1、POST請求實現資料增加:
①、在TextRestful.java中增加:

@RequestMapping(value="/restful",method=RequestMethod.POST,produces="application/json;charset=UTF-8")
    public @ResponseBody Object add(Emp vo){
        log.info("資料增加成功:"+vo);
        JSONObject js = new JSONObject();
        js.put("flag", true);
        return js;
    }

②、在restful.js中增加:

$(addBut).on("click",function(){
        $.ajax({
            url: "restful",
            type : "post",
            data : {
                empno : 110,
                ename : "RESTful",
                sal : 1.1,
                hiredate : "1111-11-11"
            },
            success : function(data){
                $(showDiv).append("<p> 資料增加成功:"+data.flag+"</p>");
            },
            dataType : "json",
            error : function(data){
                $(showDiv).append("<p>出錯了</p>");
            }
        })
    });

2、PUT請求實現資料更新
①、在TextRestful.java中增加:

@RequestMapping(value="/restful",method=RequestMethod.PUT,produces="application/json;charset=UTF-8")
    public @ResponseBody Object edit(Emp vo){
        log.info("資料更新成功:"+vo);
        JSONObject js = new JSONObject();
        js.put("flag", true);
        return js;
    }

②、在restful.js中增加:

$(editBut).on("click",function(){
        $.ajax({
            url: "restful",
            type : "post",
            data : {
                _method : "put",
                empno : 110,
                ename : "RESTful",
                sal : 1.1,
                hiredate : "1111-11-11"
            },
            success : function(data){
                $(showDiv).append("<p> 資料更新成功:"+data.flag+"</p>");
            },
            dataType : "json",
            error : function(data){
                $(showDiv).append("<p>出錯了</p>");
            }
        })
    });

3、DELETE請求實現資料刪除
①、在TextRestful.java中增加:

@RequestMapping(value="/restful",method=RequestMethod.DELETE,produces="application/json;charset=UTF-8")
    public @ResponseBody Object remove(int mid){
        log.info("要刪除的是:"+mid);
        JSONObject js = new JSONObject();
        js.put("flag", true);
        return js;
    }

②、在restful.js中增加:

$(deleteBut).on("click",function(){
        $.ajax({
            url: "restful",
            method : "post" ,
            data : {
                _method : "delete",
                mid : 1
            },
            dataType : "json",
            success : function(data){
                $(showDiv).append("<p> 資料刪除成功:"+data.flag+"</p>");
            },
            error : function(data){
                $(showDiv).append("<p>出錯了</p>");
            }
        })
    });

4、GET請求實現資料查詢
①、在TextRestful.java中增加:

@RequestMapping(value="/restful/{mid:\\d+}",method=RequestMethod.GET,produces="application/json;charset=UTF-8")
    public @ResponseBody Object get(@PathVariable("mid") int mid){
        log.info("要檢視的是:"+mid);
        Emp vo = new Emp();
        vo.setEmpno(mid);
        vo.setEname("SMITH");
        vo.setSal(1.1);
        vo.setHiredate(new Date());
        JSONObject js = new JSONObject();
        js.put("emp", vo);
        return js;
    }

②、在restful.js中增加:

$(getBut).on("click",function(){
        $.ajax({
            url: "restful/1",
            method : "get" ,
            data : {
            },
            dataType : "json",
            success : function(data){
                $(showDiv).append("<p> 編號:"+data.allMembers.empno+",名稱:"+data.allMembers.ename+",工資"+
                        data.allMembers.sal+",日期:"+data.emp.hiredate+"</p>");
                console.log(1);
            },
            error : function(data){
                $(showDiv).append("<p>出錯了</p>");
            }
        })
    });

5、PATCH請求實現資料分頁
①、在TextRestful.java中增加:

@RequestMapping(value="/restful/{condition}",method=RequestMethod.PATCH,produces="application/json;charset=UTF-8")
    public @ResponseBody Object list(@PathVariable("condition") String param){
        log.info("檢視的是:"+param);
        int currentPage = 4;
        int lineSize = 5;
        List<Emp> all = new ArrayList<Emp>() ;
        for (int x = ((currentPage-1)*lineSize);x< currentPage *lineSize; x ++) {
            Emp vo = new Emp() ;
            vo.setEmpno(x);
            vo.setEname("姓名 - " + x);
            vo.setSal(10000.0 + x);
            vo.setHiredate(new Date());
            all.add(vo) ;
        }
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("allEmps", all);
        return map;
    }

②、在restful.js中增加:

$(listBut).on("click",function(){
        $.ajax({
            url: "restful/1",
            method : "PATCH" ,
            dataType : "json",
            success : function(data){
                for(var t=0;t<data.allEmps.length;t++){
                    $(showDiv).append("<p> 編號:"+data.allEmps[t].empno+",名稱:"+data.allEmps[t].ename+",工資"+
                            data.allEmps[t].sal+",日期:"+data.allEmps[x].hiredate+"</p>");
                }
            },
            error : function(data){
                $(showDiv).append("<p>出錯了</p>");
            }
        })
    });

相關推薦

RESTful風格(使用Ajax+Spring MVC框架實現)

一、環境配置 ①、開發前的基礎配置:配置好相應的Spring MVC、JSON和Restful需要的依賴程式包。 ②、Tomcat9.0伺服器配置 ③、在專案配置web.xml <servlet-name

Spring-MVC框架實現過程

fix CP 邏輯 頁面 per 黃色 9.png memcache start   我們在基於Spring框架進行web開發時,通常會有dao層(數據庫操作),service層(業務邏輯操作,比如判斷是否在redis,memcached等緩存中查找數據,何時調用dao層)

JQuery Ajax 結合.net MVC框架實現頁面區域性重新整理

JQuery Ajax的非同步重新整理可實現html靜態頁面率先載入完畢,呈現給使用者,對提升使用者體驗很有幫助.本文舉一個小例子,在.net的MVC框架下面實現JQuery Ajax的非同步重新整理. 我們模擬一個場景,在頁面載入完畢後,通過Ajax獲取使用

手寫Spring MVC框架(包含Java註解的實現

主要從以下幾點入手 : 一、瞭解SpringMVC執行流程及九大元件 二、梳理自己的SpringMVC的設計思路 三、實現自己的SpringMVC框架瞭解SpringMVC執行流程及九大元件執行流程:1.使用者傳送請求->DispatcherServlet;使用者向服務

Spring MVC框架下利用Servlet3.0 API實現檔案上傳

Servlet3.0提供了對檔案上傳的原生支援,不需藉助任何第三方元件,直接使用Servlet3.0提供的API就能夠實現檔案上傳功能。本文使用IDEA IDE工具,在Spring MVC框架下,基於註解對映和資料繫結編寫Java業務程式碼,利用Servlet3

jQuery中Ajax+Spring MVC實現跨域請求

          專案開發中,某個可獨立、也可整合的子業務模組需要向外開放相關API介面,先說下專案本身使用了jersery來實現RESTful webservice以名詞形式釋出API。有意思的

Ajax+Spring MVC實現跨域請求(JSONP)

先來說說場景,JSON,這貨大家應該都懂,不懂的請自動面壁思過,那麼什麼是JSONP,不是JSON放了個P就叫JSONP,而是JSON with Padding,在進行跨域請求的時候需要的資料,什麼是跨域,打個比方:在user.weixin.com下的某個頁面下,使用者

Spring MVC 框架結構介紹(二)

指定 let url 16px () isp -s 一個 ping Spring MVC框架結構    Spring MVC是圍繞DispatcherServlet設計的,DispatcherServlet向處理程序分發各種請求。處理程序[email prot

Spring MVC框架下 將數據庫內容前臺頁面顯示完整版【獲取數據庫人員參與的事件列表】

XML 獲取 utf-8 字段 eas jsp r.java 增刪 otp 1.書寫jsp頁面包括要顯示的內容【people.jsp】 <!-- 此處包括三個方面內容: 1.包含 文本輸入框 查詢按鈕 查詢結果顯示位置 (p

spring mvc 框架的著重點

如果 web根目錄 目錄 b- color 相對路徑 ring 一個 方式 一、springmvc 的規定   springmvc一般是將jsp頁面放在web-inf 目錄下面,而靜態資源則是放在webroot目錄,訪問靜態資源直接使用下面這種方式 備註:這是因為Tomc

Spring+Quartz框架實現定時任務(集群,分布式)

log cor alt 放置 這一 表達 mod 建數據庫 strac 1、定時任務的必要性:定時任務在應用中的重要性不言而喻,大多是應用,特別是金融應用更是離不開定時任務,能用定時任務來處理異常訂單,完成跑批,定時活動(雙11)等。在初期應用的訪問量並不是那麽大,

spring MVC框架(入門篇)-1

app 容器 入門 pri 初始 調度員 att url 結果 Spring Web MVC 簡稱(Spring MVC),是一個Spring提供給web應用的一個框架設計 1.MVC是什麽? MVC框架是一種理念,被廣泛應用到各類語言和開發中。 M-MODEL(模型層)

spring MVC框架 使用tomcat啟動後的日誌信息

sin 8 8 com ava rec fec tld ctu root 五月 11, 2018 8:44:25 下午 org.apache.catalina.startup.VersionLoggerListener log信息: Server version:

C#使用MVC框架實現登陸驗證

ring 數據庫訪問 傳輸數據 圖片 ont resource 使用 如果 database 步驟一:需求分析 我的目標是利用MVC框架實現簡單登陸驗證。從客戶端輸入用戶名和密碼。然後傳給數據庫驗證。如果數據庫存在此用戶名ID和密碼,則返回客戶端賬戶姓名的成功提示。否則返回

使用Spring MVC 框架構造超市訂單系統-1總結

訪問 單例模式 pri 通過 res 使用 靜態 cep 總結 單例模式:(Singleton)是一種常見的設計模式,通過單例模式可保證系統在運行期間有且僅有一個實例。常見的兩種實現方法:餓汗模式和賴漢模式。 搭建SpringMVC+Spring+JDBC的框架,需要在We

Java Spring MVC專案搭建(一)——Spring MVC框架整合

轉自:https://www.cnblogs.com/eczhou/p/6287852.html 1、Java JDK及Tomcat安裝 我這裡安裝的是JDK 1.8 及 Tomcat 8,安裝步驟詳見:http://www.cnblogs.com/eczhou/p/6285248.html

Spring-mvc框架

什麼是springmvc: Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動型別的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC

Spring MVC 登陸實現跨域

適用於 4.2版本以上 ,在@Controller 的方法加上@CrossOrigin即可 @RequestMapping(value = "login", method = { RequestMethod.POST }) @CrossOrigin @ResponseBody pu

.net mvc 框架實現後臺管理系統 3

左側選單實現 預設html <div class="layui-side layui-bg-black h-slide"> <div class="layui-side-scroll"> <ul class="layui-nav layui-nav-tree" lay-fil