SpringMvc-restful設計風格

Restful

  • 1、入門
    • 1.1 簡介
    • 1.2 實例

1、入門

1.1 簡介

RESTFul是什么
RESTFul是WEB服務接口的一種設計風格。
RESTFul定義了一組約束條件和規范,可以讓WEB服務接口更加簡潔、易于理解、易于擴展、安全可靠。
在這里插入圖片描述

1.2 實例

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--字符編碼過濾器--><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceRequestEncoding</param-name><param-value>true</param-value></init-param><init-param><param-name>forceResponseEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--隱藏的HTTP請求方式過濾器--><filter><filter-name>hiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>hiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>Springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!--            初始化參數時 可以指定springmvc配置文件的位置 以及名稱--><!--            其默認是存放在WEB-INF 下 名稱默認是<servlet-name>-servlet.xml--><param-name>contextConfigLocation</param-name><!--            表示在根路徑下  即放在resources目錄下 名稱是 springmvc.xml--><param-value>classpath:springmvc.xml</param-value></init-param><!--        這是一個優化策略 表示在服務器啟動時就初始化DispatcherServlet 而不是在用戶第一次請求時 可以增加用戶體驗--><load-on-startup>0</load-on-startup></servlet><servlet-mapping><servlet-name>Springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<context:component-scan base-package="com.cky"></context:component-scan><!--視圖解析器--><bean id="thymeleafViewResolver" class="org.thymeleaf.spring6.view.ThymeleafViewResolver"><!--作用于視圖渲染的過程中,可以設置視圖渲染后輸出時采用的編碼字符集--><property name="characterEncoding" value="UTF-8"/><!--如果配置多個視圖解析器,它來決定優先使用哪個視圖解析器,它的值越小優先級越高--><property name="order" value="1"/><!--當 ThymeleafViewResolver 渲染模板時,會使用該模板引擎來解析、編譯和渲染模板--><property name="templateEngine"><bean class="org.thymeleaf.spring6.SpringTemplateEngine"><!--用于指定 Thymeleaf 模板引擎使用的模板解析器。模板解析器負責根據模板位置、模板資源名稱、文件編碼等信息,加載模板并對其進行解析--><property name="templateResolver"><bean class="org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver"><!--設置模板文件的位置(前綴)--><property name="prefix" value="/WEB-INF/templates/"/><!--設置模板文件后綴(后綴),Thymeleaf文件擴展名不一定是html,也可以是其他,例如txt,大部分都是html--><property name="suffix" value=".html"/><!--設置模板類型,例如:HTML,TEXT,JAVASCRIPT,CSS等--><property name="templateMode" value="HTML"/><!--用于模板文件在讀取和解析過程中采用的編碼字符集--><property name="characterEncoding" value="UTF-8"/></bean></property></bean></property></bean><!--配置視圖控制器--><mvc:view-controller path="/c" view-name="c"/><!--開啟注解驅動--><mvc:annotation-driven></mvc:annotation-driven><!--靜態資源訪問配置--><mvc:resources mapping="/static/**" location="/static/"/>
<!--   或者 <mvc:default-servlet-handler></mvc:default-servlet-handler>-->
</beans>

項目目錄
在這里插入圖片描述

Mycontroller.java

package com.cky.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@Controller
public class Mycontroller {
@RequestMapping(value = "/users",method = RequestMethod.GET)
public String a(){System.out.println("查詢所有");return "ok";
}
@RequestMapping("/")
public String index(){return "index";
}
@RequestMapping(value = "/users/{id}",method = RequestMethod.GET)
public  String getone(@PathVariable("id") int id){System.out.println("查詢1號");return "ok";
}
@RequestMapping(value = "/users/{id}",method = RequestMethod.POST)
public String addusers(@PathVariable("id") int id){System.out.println("新增用戶");return "ok";
}@RequestMapping(value = "/users/{id}",method = RequestMethod.PUT)
public String modify(@PathVariable("id") int id){System.out.println("修改用戶");return "ok";
}@RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)public String delete(@PathVariable("id") int id){System.out.println("刪除用戶");return "ok";}
}

index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>restful</title>
</head>
<body>
<!--默認get-->
<a th:href="@{/users}">查詢所有</a>
<a th:href="@{/users/1}">查詢1號</a>
<!--新增-->
<form th:action="@{/users/100}" method="post"><input type="text" placeholder="用戶名"><input type="submit" value="提交">
</form>
<!--修改-->
<form th:action="@{/users/100}" method="post"><input type="hidden" name="_method" value="put"><input type="text" placeholder="用戶名"><input type="submit" value="修改">
</form><a th:href="@{/users/1}" onclick="del(event)">刪除1號用戶</a>
<form id="delForm" method="post"><input type="hidden" name="_method" value="delete">
</form>
<script>function del(event){//獲取表單let delForm=document.getElementById("delForm");//給表單賦值delForm.action=event.target.href;//發送post請求delForm.submit();//阻止超鏈接默認行為event.preventDefault();}
</script>
</body>
</html>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17647.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17647.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17647.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

5、xss-labs之level6

一、level6-----大小寫繞過 1、測試分析 測試了之前用過的payload&#xff0c;發現都不行&#xff0c;并且level4使用的Java偽協議也不行&#xff0c;可以得出<>、script、onclick都被過濾 2、構造payload 因為href被過濾&#xff0c;可以試一下大寫HREF 初試payload…

沒人愿意和我們最好的工程師一起工作

幾年前&#xff0c;有一位技術非常好的工程師&#xff08;我們叫他“喬恩”&#xff09;為我工作。 他的代碼寫得很好&#xff0c;代碼審查&#xff08;PRs&#xff09;也完成得很快。從技術角度來看&#xff0c;他是個出色的工程師。 但是我們從其他工程師那里得到了一些關于…

Python實現解碼二進制數據以匹配給定的C++結構體

要在Python中實現解碼二進制數據以匹配給定的C結構體Ytest&#xff0c;你需要了解每個字段在結構體中的偏移量&#xff08;由于結構體內存對齊&#xff0c;這些偏移量可能與字段的順序和大小不完全對應&#xff09;。不過&#xff0c;在沒有指定內存對齊的情況下&#xff0c;我…

使用nvm管理node多版本(安裝、卸載nvm,配置環境變量,更換npm淘寶鏡像)淘寶的鏡像域名更換

最近 使用nvm 管理 node 的時候發現nvm install node版本號 總是失敗。 nvm install 20.12.2Error retrieving "http://npm.taobao.org/mirrors/node/latest/SHASUMS256.txt": HTTP Status 404查看原因&#xff0c;因為淘寶的鏡像域名更換&#xff0c;由于 npm.taob…

2020職稱繼續教育--發揮好“顯著優勢”,堅持和完善生態文明制度體系,促進人與自然和諧共生

單選題&#xff08;共7題&#xff0c;每題5分&#xff09; 1、我國生態脆弱區廣布&#xff0c;適宜生存的空間不足&#xff08;&#xff09;。 B、三分之一 2、按照傳統文化的說法&#xff0c;制度體系與治理體系&#xff0c;是“體”和“用”的關系&#xff0c;強調&#xff…

BI系統:數據驅動的決策利器,引領企業走向智能化

在當今這個數據驅動的時代&#xff0c;商業智能&#xff08;BI&#xff09;系統已成為企業不可或缺的工具。BI系統不僅提高了數據處理和分析的效率&#xff0c;更重要的是&#xff0c;它能夠幫助企業做出更加明智和精準的決策。在數聚多年的從業經驗來看&#xff0c;BI系統的重…

基于直接二元搜索的片上偏振分束器設計 (Nature Photonics, 9, 6, (2015))案例復現

時間—2024.6.08 騰訊會議 智能算法驅動的光子學設計與應用

Dream

好像很多人夢寐以求的都是別人已經擁有的&#xff0c;多少人奮斗一生的目標&#xff0c;卻只是別人的起點&#xff0c;人生而自由&#xff0c;只是不在枷鎖之中&#xff0c;生活中沒有人不遺憾&#xff0c;只是沒有人喊疼&#xff0c;時間不會重來&#xff0c;已經過去了就讓它…

內存泄露問題? 怎么解決

內存泄漏在Android應用開發中是一個常見問題&#xff0c;它發生在對象不再被使用時&#xff0c;但仍然被引用&#xff0c;導致垃圾回收器無法釋放其占用的內存。這會逐漸消耗應用可用內存&#xff0c;最終可能導致應用運行緩慢、崩潰或被系統終止。以下是一些常見的內存泄漏場景…

vue3 使用vant

使用前提&#xff1a; vite創建的vue3項目 vanthttps://vant-ui.github.io/vant/#/zh-CN/home npm i vant 引入樣式&#xff1a; main.js import vant/lib/index.css vant封裝 import { showLoadingToast,closeToast,showDialog,showConfirmDialog } from vant;export func…

Typora圖床配置優化(PicGo-Core(command line) 插件 + gitee)

Typora圖床配置優化&#xff08;PicGo-Core(command line) 插件 gitee&#xff09; 前言 在日常使用Typora編寫markdown筆記時&#xff0c;經常需要插入圖片來幫助理解和整理邏輯。然而&#xff0c;由于圖片保存在本地&#xff0c;上傳到網上時經常出現圖片不見或錯誤警告的…

育菁桌面式數控機床助力教育裝備

桌面式數控機床是一種小型化的數控機床&#xff0c;它通常具有緊湊的設計和較小的體積&#xff0c;可以放置在桌面上進行操作。 這種車床結合了數控技術&#xff0c;通過計算機編程來控制機床的運動和加工過程&#xff0c;以實現高精度、高效率的工件加工。 桌面式數控車床是一…

如何部署一套高可用性的醫院信息管理系統?基于華為云、SpringBoot、Vue及Jenkins、Gitlab的CI/CD流程

目錄 一、項目背景 二、項目架構 三、項目部署流程 1、前端部署 2、后端部署 3、監控與運維 四、項目過程 一、項目背景 隨著醫療信息化程度的不斷加深&#xff0c;醫院信息管理系統的穩定性和可用性成為了醫療機構日常運營的關鍵。在這個數字化時代&am…

選擇快充時代下的理想充電器與電壓誘騙芯片PW6606

隨著科技的不斷進步&#xff0c;我們的電子設備對于充電速度和效率的要求越來越高。在快充技術迅猛發展的今天&#xff0c;了解不同類型的充電器及其對應的快充協議&#xff0c;以及如何選擇適合的電壓誘騙芯片&#xff0c;對于提升充電體驗和保障設備安全顯得尤為重要。 一、快…

生信網絡學院|05月31日《SOLIDWORKS Manage 產品周期管理》

課程主題&#xff1a;SOLIDWORKS Manage 產品周期管理 課程時間&#xff1a;2024年05月31日 14:00-14:30 主講人&#xff1a;付艦 生信科技 PLM實施顧問 1、SOLIDWORKS Manage介紹 2、周期流程管理 3、產品項目管理 4、項目會議管理 5、項目問題管理 安裝騰訊會議客戶端…

Android 13 VSYNC重學習

Android 13 VSYNC重學習 引言 學無止境&#xff0c;一個字干就完事&#xff01; 源碼參考基于Android 13 aosp&#xff01; 一. Android VSync模塊開胃菜 在開始正式的分析之前&#xff0c;我們先簡單對Android的Vsync模塊簡單介紹下,如下圖所示&#xff0c;其中: HW_VSync是…

【Java面試】一、Redis篇(上)

文章目錄 0、準備1、緩存穿透&#xff1a;不存在的key2、緩存擊穿&#xff1a;熱點key過期3、緩存雪崩&#xff1a;大批key同時過期4、雙寫一致性4.1 要求高一致性4.2 允許一定的一致延遲 5、面試 0、準備 Redis相關概覽&#xff1a; 以簡歷上所列的項目為切入點&#xff0c;展…

Steamdeck使用Windows系統游玩雪地奔馳時閃退問題解決方法

我非常喜歡雪地奔馳這款游戲&#xff0c;買sd的一部分也是為了它。可在我打開這個游戲時&#xff0c;游戲發生閃退問題。查閱了網絡各個途徑&#xff0c;基本沒有解決方法。因此我自己分析終于解決該問題。以下是我解決問題的思路&#xff0c;僅供記錄參考&#xff1a; 游戲在崩…

2024提升數字思維能力加快企業數字化轉型(74頁PPT)

方案介紹&#xff1a; 本報告的價值在于為企業提供了一套系統的提升數字思維能力、加快數字化轉型的理論框架和實踐指南。通過本報告的學習和應用&#xff0c;企業可以更加清晰地認識到數字化轉型的重要性和緊迫性&#xff0c;明確自身在數字化轉型中的優勢和不足&#xff0c;并…

已解決java.nio.charset.CoderMalfunctionError: 編碼器故障錯誤的正確解決方法,親測有效!!!

已解決java.nio.charset.CoderMalfunctionError: 編碼器故障錯誤的正確解決方法&#xff0c;親測有效&#xff01;&#xff01;&#xff01; 目錄 問題分析 報錯原因 解決思路 解決方法 確認與檢查字符集 驗證輸入數據 嘗試使用不同字符集 更新或更換編碼器/解碼器版本…