最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC注解全攻略之從請求到響應(yīng)的過程詳解

 更新時間:2026年03月04日 14:30:01   作者:稻草貓.  
這篇文章主要介紹了SpringMVC的注解使用,包括建立連接、請求、響應(yīng)等方面的詳細內(nèi)容,本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧

咱們學(xué)習(xí)Spring MVC,就是學(xué)習(xí)Spring MVC的各種注解。使用重點也就是學(xué)習(xí)如何通過瀏覽器和用戶程序進行交互. 主要分以下三個方面: 

1. 建立連接:將用戶(瀏覽器)和Java程序連接起來,也就是訪問?個地址能夠調(diào)?到我們的Spring程序。

 2. 請求:用戶請求的時候會帶?些參數(shù),在程序中要想辦法獲取到參數(shù),所以請求這塊主要是獲取參數(shù) 的功能。

3. 響應(yīng):執(zhí)行了業(yè)務(wù)邏輯之后,要把程序執(zhí)行的結(jié)果返回給用戶,也就是響應(yīng).

Spring MVC注解

一. 建立連接

1.1 @RequestMapping

@RequestMapping:URL路由映射

路徑映射(Path Mapping) 就是把瀏覽器訪問的 URL 地址,和后端代碼里處理請求的方法(Controller 方法)對應(yīng)起來的規(guī)則。

資源路徑:類路徑+方法路徑(如果一個方法路徑它有類路徑就必須加上)

注意:@RequestMapping括號中的 / 可加可不加

@RequestMapping既是類注解(對應(yīng)類路徑)也是方法注解(對應(yīng)方法路徑)(既可以加在類上也可以加在方法上)

@Request Mapping對于請求方法來說,默認既支持GET也支持POST方法(通過瀏覽器發(fā)起的請求都是默認GET請求,并且請求方式是由客戶端決定,服務(wù)端進行支持的

如何讓它只支持某一種請求:

@RequestMapping(value = "/hello",method = RequestMethod.GET)

當只支持這一種請求方法時,用另一種請求就會請求失敗

也可以加更多的請求方式:

如:

 @RequestMapping(value = "/hello",method = {RequestMethod.GET,RequestMethod.POST,RequestMethod.DELETE})

還可以用其它的注解來指定請求方式(這里只寫一部分,其它的類似):

  • @GetMapping():僅支持GET請求
  • @PostMapping():僅支持POST請求
  • @DeleteMapping():僅支持DELETE請求

注意:

  • @GetMapping(“/hello”)=@RequestMapping(value = "/hello",method = RequestMethod.GET)
  • 如果類注解有method規(guī)定請求方法,而方法注解沒有--則“繼承類”的。如果方法注解有加,則支持方法自己的

其余類似

1.2 @RestController

@RestController是類注解

在上面這個代碼中@RestController的主要作用:告訴Spring,這個類中有處理HTTP請求的能力(有處理HTTP請求的接口類),請求來了就到我這里來查-----相當于Spring的查找范圍(沒有就不會查)

二. 請求

訪問不同的路徑,就是發(fā)送不同的請求.在發(fā)送請求時,可能會帶?些參數(shù),所以學(xué)習(xí)Spring的請求,主要 是學(xué)習(xí)如何傳遞參數(shù)到后端以及后端如何接收. 傳遞參數(shù),咱們主要是使?瀏覽器和Postman來模擬.

2.1 傳遞單個參數(shù)

當參數(shù)為Boolean類型時,可以傳1/0也可以傳true/false(SpringMVC會幫我們轉(zhuǎn)換),其余的數(shù)字不可以

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public  String r1(Boolean flag) {
         return "接收到參數(shù):"+flag;
    }
}

參數(shù)重命名:使用@RequestParam注解(使用了@RequestParam注解的參數(shù)默認為必傳參數(shù)-------如何修改--@RequestParam(value="number",required=false)即可)

實際上:我們服務(wù)器在Spring框架下接收到的數(shù)據(jù)都是String類型,它會根據(jù)你服務(wù)器方法實際要的數(shù)據(jù)類型進行轉(zhuǎn)換(String類型轉(zhuǎn)換成實際需要接收的參數(shù)類型,且轉(zhuǎn)化成Java基礎(chǔ)數(shù)據(jù)類型是轉(zhuǎn)換成功后直接賦值,而轉(zhuǎn)化為對象時Spring還會幫我們new對象)

注意:有的時候Spring在進行轉(zhuǎn)換時也會轉(zhuǎn)換失敗,如:

2.2 傳遞多個參數(shù)

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public  String r1(String name,Integer num) {
         return "接收到參數(shù):"+name+" "+num;
    }
}

在傳遞時順序可以不保持一致,但是參數(shù)名要保持一致

在傳遞參數(shù)時:

多傳參數(shù)---不會報錯,多的會被忽略

少傳參數(shù)---可能會報錯---原因:未傳的參數(shù)Spring就會設(shè)為null,如果方法參數(shù)為基本數(shù)據(jù)類型(如 int,double,boolean等)就不能接收,就會報錯。如果是其它的參數(shù)就不會報錯(可以被賦值為null)

2.3 傳遞對象

package com.example.demo;
import org.springframework.web.bind.annotation.*;
class person{
    String name;
    int num;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    @Override
    public String toString() {
        return "person{" +
                "name='" + name + '\'' +
                ", num=" + num +
                '}';
    }
}
@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public  String r1(person person) {
         return person.toString();
    }
}

在Spring代碼中定義的類必須要有一個無參的構(gòu)造方法和Setter/getter,不然會報錯

為什么必須要 setter?
Spring 底層是這么干的:

// 1. 調(diào)用無參構(gòu)造
User user = new User();

// 2. 賦值!必須靠 set 方法!
user.setName("張三");
user.setAge(20);
沒有 setXxx(),Spring 根本沒法給對象賦值!

注意:

  • 對于對象來說,不傳參數(shù)給Java基礎(chǔ)類型的變量,不會報錯---因為類中的變量都有對應(yīng)的初始值(如int的初始值就是0)
  • 在沒加其它注解的情況下,對象的傳參只能在URL上(有一種注解可以使對象在body在進行傳參,下面會講到)

2.4 傳遞數(shù)組

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public  String r1(String[] arr) {
         return Arrays.toString(arr);
    }
}

傳遞數(shù)組有兩種方法:

2.5 傳遞集合

傳遞集合必須要使用注解 @RequestParam

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public  List<String> r1(@RequestParam List<String> list) {
         return list;
    }
}

注意:注意:參數(shù)為數(shù)組/集合類時,對于客戶端來說,傳遞參數(shù)時的格式都是一樣的;但對于服務(wù)端來說,如果不加 @RequestParam,Spring 只能直接接收數(shù)組,集合必須加上這個注解才能正常接收。

2.6 傳遞JSON數(shù)據(jù)

JSON概念:

JSON(JavaScript Object Notation)
是一種輕量級、純文本、跨語言的數(shù)據(jù)交換格式。
- 本質(zhì):字符串格式的結(jié)構(gòu)化數(shù)據(jù)
- 作用:前后端、不同語言之間傳遞數(shù)據(jù)
- 特點:簡單、易讀、體積小、幾乎所有語言都支持,且空行與換行無效

JSON 語法:
1. 對象用  { } ,鍵值對結(jié)構(gòu)(其中key對應(yīng)于一個對象中的一個屬性,value則對應(yīng)屬性的值)
2. 鍵必須用雙引號  "key" (不能單引號、不能省略)
3. 鍵值之間用 冒號  : 
4. 多組用 逗號  ,  分隔
5. 數(shù)組/集合用  [ ] 
6. 值支持:
- 字符串(雙引號)
- 數(shù)字
- 布爾  true / false 
-  null 
- 對象  {} 
- 數(shù)組/集合  [] 
7. 最后一個成員后面不能加逗號

下面就是一個json格式的數(shù)據(jù):

{
 "squadName": "Super hero squad",
 "homeTown": "Metro City",
 "formed": 2016,
 "secretBase": "Super tower",
 "active": true,
 "members": [{
 "name": "Molecule Man",
 "age": 29,
 "secretIdentity": "Dan Jukes",
 "powers": ["Radiation resistance", "Turning tiny", "Radiation 
blast"]
 }, {
 "name": "Madame Uppercut",
 "age": 39,
 "secretIdentity": "Jane Wilson",
 "powers": ["Million tonne punch", "Damage resistance", "Superhuman 
reflexes"]
 }, {
 "name": "Eternal Flame",
 "age": 1000000,
 "secretIdentity": "Unknown",
 "powers": ["Immortality", "Heat Immunity", "Inferno", 
"Teleportation", "Interdimensional travel"]
 }]
}

JSON有兩種格式:

  • 對象格式:最外層用 { } 包裹鍵值對
  • 數(shù)組格式:最外層用 [ ] 包裹對象/字符串/數(shù)字.....

可以使?在線JSON格式化?具來進行校驗和書寫:在線JSON校驗格式化?具(https://www.bejson.com/

JSON和Java對象可以相互轉(zhuǎn)換---轉(zhuǎn)換工具:常見有三種:

1. Gson 2.fastjson 3.jackson(由于jackson是Spring框架本身引入的,下面就以jackson演示)

使用到ObjectMapper這個類

@SpringBootTest
class DemoApplicationTests {
	@Test
	void contextLoads() throws JsonProcessingException {
		//對象轉(zhuǎn)json
		ObjectMapper objectMapper = new ObjectMapper();
        person person=new person();
		person.setName("zhangsan");
		person.setNum(21);
       String json=objectMapper.writeValueAsString(person);
		System.out.println(json);
		//json轉(zhuǎn)對象
		person p=objectMapper.readValue(json, com.example.demo.person.class);
		System.out.println(p);
	}
}

注意:JSON 實際上就是一個具有特定格式的字符串,用來表示結(jié)構(gòu)化數(shù)據(jù)。

我們在接收JSON對象時。有兩種方式:

  • 使用String來接收
  • 使用自定義類來接收

這兩種方式都要用到注解 @RequestBody,由于我們把json數(shù)據(jù)都是放在body中的,@RequestBody就是在告訴Spring,參數(shù)在body中,如果不加@RequestBody,Spring只會在URL中查找參數(shù)。

使用自定義類來接收:@RequestBody還會自動將JSON數(shù)據(jù)轉(zhuǎn)化為Person對象

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public String r1(@RequestBody person person) {
        return person.toString();
    }
}

使用String來接收:@RequestBody不會將JSON數(shù)據(jù)轉(zhuǎn)化為Person對象(如果想要這個Sting數(shù)據(jù)轉(zhuǎn)化為對象可以借助ObjectMapper這個類來實現(xiàn))

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public String r1(@RequestBody String json) throws JsonProcessingException {
        //將拿到的JSON原始數(shù)據(jù)轉(zhuǎn)化為對象
        ObjectMapper objectMapper=new ObjectMapper();
        person person=objectMapper.readValue(json, com.example.demo.person.class);
        return person.toString();
    }
}

2.7 獲取URL中的參數(shù)

使用@PathVariable注解:Spring MVC 中用于從 URL 路徑中提取變量值的注解,它將 URL 中的占位符參數(shù)綁定到控制器方法的形參上。

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1/{articleID}/{username}")
    public String r1(@PathVariable Integer articleID,@PathVariable("username") String name){
        return "接收到參數(shù)"+" "+articleID+" "+name;
    }
}

注意:雖然 @PathVariable  本身不要求參數(shù)順序,但路徑變量的類型和位置必須嚴格對應(yīng)。

2.8 上傳文件

使用注解 @RequestPart

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public String r1(@RequestPart MultipartFile file) throws IOException {
        file.transferTo(new File("D:\\新建文件夾\\"+file.getOriginalFilename()));//將文件拷貝到改路徑下
        return file.getOriginalFilename();//返回文件名
    }
}

2.9 獲取Cookie

獲取Cookie有兩種方法:

傳統(tǒng)servl方式:

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/r1")
    public String r1(HttpServletRequest request, HttpServletResponse response) {
        Cookie[] cookies = request.getCookies();//獲取一個Cookie數(shù)組
if(cookies!=null){
    for (Cookie cookie : cookies) {
        if (cookie != null) {
            System.out.println(cookie.getName() + "=" + cookie.getValue());//循環(huán)遍歷打印每一個Cookie鍵值對
        }
    }
}
        return "獲取Cookie成功";
    }
}

如果我們的請求沒有Cookie,我們可以手動設(shè)置Cookie(Cookie是可以偽造的)

注意:當一個 HTTP 請求到達時,Spring 會自動創(chuàng)建一個 HttpServletRequest  對象,封裝了本次請求的所有信息(如 URL、請求頭、參數(shù)、Cookie 等)。

用注解獲取Cookie:(這個方法只能逐個獲取單個Cookie鍵值對,不能一下子獲取所有Cookie)

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/getCookie")
    public String getCookie(@CookieValue("name") String name) {
        return "獲取Cookie成功,name:"+name;
    }
}

注意:獲取Cookie的前提是要有Cookie

2.10 獲取Session

在獲取Session之前要先獲取Session1對象然后再設(shè)置Session才能獲取得到

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/getSession")
    public String getSession(HttpServletRequest request) {
        HttpSession session=request.getSession();//拿到Session對象后,我們才能往Session中存數(shù)據(jù)
        session.setAttribute("name","zhangsan");
        session.setAttribute("age","22");
        return "設(shè)置Session成功";//我們設(shè)置的Session數(shù)據(jù)只是保存在服務(wù)器中,不會外傳
    }
}

當客戶端向服務(wù)器發(fā)送請求并且代碼主動要Session服務(wù)器才會第一次創(chuàng)建Session對象

每創(chuàng)建一個 session 對象,服務(wù)器都會通過響應(yīng)發(fā)送一個 SessionID 給客戶端。

request.getSession() : 如果客戶端發(fā)送的請求中帶有一個有效的SessionID,服務(wù)器就會依據(jù)這個SessionID找到對應(yīng)的Session對象并返回。如果沒有SessionID/沒有找到SessionID對應(yīng)的Session對象,服務(wù)器就會創(chuàng)建出一個新的Session對象,并且返回客戶端一個SessionID。

總之:每一個客戶端對應(yīng)的Session對象是不同的,通過Session對象對應(yīng)的SessionID來識別

注意:

  • Session默認存儲在內(nèi)存中,服務(wù)器重啟后Session會丟失
  • 服務(wù)器可以存放并生成多個Session對象
  • 如果我們將自己的攜帶的SessionID改為其它的SessionID(Cookie是可以偽造的)---身份改變

獲取Session有三種方式(如果沒有Session,都要先設(shè)置Session信息*):

法一:

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/setSession")//設(shè)置Session
    public String setSession(HttpServletRequest request,String name) {
        HttpSession session=request.getSession();
        session.setAttribute("name",name);
        return "設(shè)置Session成功";
    }
    @RequestMapping("/getSession1")//獲取Session
    public String getSession(HttpServletRequest request) {
        HttpSession session=request.getSession();//先獲取Session對象再獲取其參數(shù)
        return "獲取Session成功"+"name: "+session.getAttribute("name");
    }
}

法二:(Spring獲取Session的方式):通過@SessionAttribute注解

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/setSession")//設(shè)置Session
    public String setSession(HttpServletRequest request,String name) {
        HttpSession session=request.getSession();
        session.setAttribute("name",name);
        return "設(shè)置Session成功";
    }
   @RequestMapping("/getSession2")//獲取Session
    public String getSession(@SessionAttribute("name") String name) {
        return "獲取Session成功"+"name: "+name;
    }
}

 法三:

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/setSession")
    public String setSession(HttpServletRequest request,String name) {
        HttpSession session=request.getSession();
        session.setAttribute("name",name);
        return "設(shè)置Session成功";
    }
    @RequestMapping("/getSession3")
    public String getSession(HttpSession session) {
        return "獲取Session成功"+"name: "+session.getAttribute("name");
    }
}

2.11 獲取Header

獲取Header有兩種方式

法一:

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/getHeader")
    public String getSession(HttpServletRequest request) {
       String User_Agent=request.getHeader("User-Agent");
        return "獲取Header成功:User-Agent= "+User_Agent;
    }
}

通過查看Fiddler判斷獲取到的數(shù)據(jù)是否正確

法二:使用 @RequestHeader 注解

@RestController
@RequestMapping("/r")
public class Test {
    @RequestMapping("/getHeader")
    public String getSession(@RequestHeader("User-Agent") String User_Agent) {
        return "獲取Header成功:User-Agent= "+User_Agent;
    }
}

三. 響應(yīng)

3.1 返回靜態(tài)頁面

使用 @Controller 注解(標明我們返回的是一個視圖)

-  @RestController :類級別注解,所有方法默認返回數(shù)據(jù),不返回視圖。

(@RestController =@Controller+@ResponseBody)
-  @Controller :類級別注解,方法默認返回視圖,如需返回數(shù)據(jù)需添加  @ResponseBody 。
-  @ResponseBody :方法級別注解,使單個方法直接返回數(shù)據(jù),不返回視圖。

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping("/html")
    public String getSession() {
        return "/AAA.html"; //注意前面要加 /
    }
}

注意我們要把要返回的靜態(tài)頁面放在靜態(tài)資源下面的文件中

3.2 返回HTML代碼片段

后端返回數(shù)據(jù)(不是視圖)時,如果數(shù)據(jù)中有HTML代碼,也會被瀏覽器解析。

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping("/html")
    @ResponseBody
    public String getSession() {
        return "<h1> HTML</h1>";
    }
}

3.3 返回JSON

當我們返回的數(shù)據(jù)是對象/map/list等,Spring會自動將響應(yīng)頭中的content-type設(shè)置為application/json,并返回json數(shù)據(jù)

返回對象:

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping("/returnjson")
    @ResponseBody
    public Person returnjson() {
     Person person=new Person();
     person.setNum(21);
     person.setName("zhangsan");
        return person;
    }
}

返回map:

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping("/returnjson")
    @ResponseBody
    public Map<String,String> returnjson() {
    Map<String,String> map=new HashMap<>();
    map.put("old","29");
    map.put("name","zhangsan");
     return map;
    }
}

3.4 設(shè)置狀態(tài)碼

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping("/setstatus")
    @ResponseBody
    public String setstatus(HttpServletResponse response) {
        response.setStatus(400);
        return "設(shè)置狀態(tài)碼成功";
    }
}

3.5 設(shè)置 Header

Http響應(yīng)報頭也會向客?端傳遞?些附加信息,?如服務(wù)程序的名稱,請求的資源已移動到新地址等,如: Content-Type,Local等. 這些信息通過 @RequestMapping 注解的屬性來實現(xiàn) 先來看 @RequestMapping 的源碼:

1.value:指定映射的URL

2. method:指定請求的method類型,如GET,POST等

3. consumes:指定處理請求(request)的提交內(nèi)容類型(Content-Type),例如application/json, text/html;

4. produces:指定返回的內(nèi)容類型,還可以同時設(shè)置返回值的字符編碼

5. Params:指定request中必須包含某些參數(shù)值時,才讓該?法處理

6. headers:指定request中必須包含某些指定的header值,才能讓該?法處理請求

 設(shè)置 Content-Type:

設(shè)置Content-Type:通過@RequestMapping的produces屬性設(shè)置

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping(value = "/setContentType",produces = "application/json")
    @ResponseBody
    public String setstatus(HttpServletResponse response) {
        return "{\"name\":\"zhangsan \"}";
    }
}

如果不手動設(shè)置Content-Type,Spring會根據(jù)方法的返回參數(shù)自動設(shè)置,返回類型為Spring---設(shè)置為text/plain(返回類型是對象/map等---設(shè)置為application/json)

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping(value = "/setContentType")
    @ResponseBody
    public String setstatus(HttpServletResponse response) {
        return "{\"name\":\"zhangsan \"}";
    }
}

設(shè)置其它Header

@Controller
@RequestMapping("/r")
public class Test {
    @RequestMapping(value = "/setHeader")
    @ResponseBody
    public String setHeader(HttpServletResponse response) {
       response.setHeader("MyHeader","header");
       return "設(shè)置header成功";
    }
}

到此這篇關(guān)于SpringMVC注解全攻略:從請求到響應(yīng)的文章就介紹到這了,更多相關(guān)SpringMVC注解從請求到響應(yīng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot+Nginx+MySQL容器化實戰(zhàn)指南

    Spring Boot+Nginx+MySQL容器化實戰(zhàn)指南

    這篇文章主要介紹了Spring Boot+Nginx+MySQL容器化實戰(zhàn)指南,本文通過思路代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2026-03-03
  • Java如何實現(xiàn)內(nèi)存緩存

    Java如何實現(xiàn)內(nèi)存緩存

    內(nèi)存緩存(Memory?caching)是一種常見的緩存技術(shù),它利用計算機的內(nèi)存存儲臨時數(shù)據(jù),以提高數(shù)據(jù)的讀取和訪問速度,本文就來和大家聊聊Java如何實現(xiàn)內(nèi)存緩存吧
    2023-08-08
  • 23種設(shè)計模式(2) java工廠模式

    23種設(shè)計模式(2) java工廠模式

    這篇文章主要為大家詳細介紹了23種設(shè)計模式之java工廠模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 淺談Apache Maven ToolChains的使用

    淺談Apache Maven ToolChains的使用

    Maven是java中非常有用和常用的構(gòu)建工具,基本上現(xiàn)在大型的java項目都是Maven和gradle的天下了。本文將介紹Apache Maven ToolChains的使用。
    2021-06-06
  • 詳解SpringBoot中Controller接收對象列表實現(xiàn)

    詳解SpringBoot中Controller接收對象列表實現(xiàn)

    這篇文章主要介紹了詳解SpringBoot中Controller接收對象列表實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Spring Boot 通過CORS實現(xiàn)跨域問題

    Spring Boot 通過CORS實現(xiàn)跨域問題

    這篇文章主要介紹了Spring Boot 通過CORS實現(xiàn)跨域,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • springboot項目啟動自動跳轉(zhuǎn)到瀏覽器的操作代碼

    springboot項目啟動自動跳轉(zhuǎn)到瀏覽器的操作代碼

    這篇文章主要介紹了springboot項目啟動自動跳轉(zhuǎn)到瀏覽器的操作代碼,本文圖文實例代碼相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • Java插入、替換和刪除PDF圖像的操作完整指南

    Java插入、替換和刪除PDF圖像的操作完整指南

    在當今數(shù)字化的世界中,PDF 已經(jīng)成為文檔交換的標準格式,本教程將深入探討如何使用 Spire.PDF for Java 庫,輕松實現(xiàn) PDF 圖像的添加、替換與刪除操作,希望對大家有一定的幫助
    2025-10-10
  • 詳解spring boot集成RabbitMQ

    詳解spring boot集成RabbitMQ

    RabbitMQ作為AMQP的代表性產(chǎn)品,在項目中大量使用。結(jié)合現(xiàn)在主流的spring boot,極大簡化了開發(fā)過程中所涉及到的消息通信問題。
    2017-03-03
  • JavaWeb核心技術(shù)中Session與Cookie淺析

    JavaWeb核心技術(shù)中Session與Cookie淺析

    session的工作原理和cookie非常類似,在cookie中存放一個sessionID,真實的數(shù)據(jù)存放在服務(wù)器端,客戶端每次發(fā)送請求的時候帶上sessionID,服務(wù)端根據(jù)sessionID進行數(shù)據(jù)的響應(yīng)
    2023-02-02

最新評論

宜兰县| 新河县| 蓝田县| 莱芜市| 峨边| 洛宁县| 普陀区| 临潭县| 贵港市| 东山县| 余庆县| 中宁县| 盘山县| 梁河县| 安图县| 宾川县| 南汇区| 清水河县| 东辽县| 富裕县| 日照市| 大新县| 雷州市| 会同县| 武汉市| 旺苍县| 石河子市| 福州市| 广汉市| 清远市| 武城县| 富裕县| 台中市| 临漳县| 淮滨县| 东辽县| 金塔县| 泽库县| 琼海市| 东乌| 岳阳市|