加法計算器
前端代碼
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body>
<form action="return/sum" method="post"><h1>計算器</h1>數字1:<input name="a" type="text"><br>數字2:<input name="b" type="text"><br><input type="submit" value=" 點擊相加 ">
</form>
</body></html>
后端代碼
@RequestMapping("/sum")public String sum(Integer a , Integer b){Integer sum = a + b;return "<h1>計算結果為: "+ sum +" </h1>";}
運?測試
我們先定義接口
(1) 請求路徑:return/sum
(2) 請求方式:get/post
(3) 接口描述"計算兩個整數相加
登錄案例
分析需求
用戶輸入賬號和密碼 后端進行校驗是正確
(1)如果不正確前端進行用戶告知
(2)如果正確跳轉首頁顯示用戶信息
提前準備
將前端文件導入
創建后端代碼
定義接口
(1)登錄接口
/user/login/username = ? & password = ?
接口返回:校驗成功/失敗
true密碼成功
false密碼錯誤
(2)獲取用戶的登錄信息
/user/getUserInfo
接口返回:當前登錄用戶的名稱
編寫后端代碼
package com.example.demo.demos.web.controller;import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;@RequestMapping("/user")
@RestController
public class UserController {@RequestMapping("/login")public Boolean login(String username, String password, HttpSession session){//校驗參數合法性//如果username和password的值是null或者長度為0就會返回一個falseif(!StringUtils.hasLength(username) || !StringUtils.hasLength(password)){return false;}//對用戶名和密碼進行校驗若對就設置session否則就返回falseif("admin".equals(username) && "admin".equals(password)){//設置Sessionsession.setAttribute("username","admin");return true;}return false;}@RequestMapping("/getUserIofo")public String getUserInfo(HttpServletRequest request){//我們要顯示用戶就需要從session拿到username//要拿到session就需要從request中拿到HttpSession session = request.getSession();String username = null;if (session != null){username = (String) session.getAttribute("username");}return username;}
}
演示:
留言板
輸入留言信息 點擊提交
頁面展示留言信息
接口定義
獲取全部留言用List可以用JSON來描述List
請求:
GET/message/getList
使用JSON格式響應
準備工作
導入前端代碼
使用lombok工具
lombok是一個java工具庫通過添加注解方式簡化java開發
使用
lombok通過?些注解的?式,可以幫助我們消除?冗?代碼,使代碼看起來簡潔?些?如之前的Person對象就可以改為
例如一個person類
package com.example.demo.demos.web;import lombok.Data;@Data
public class Person2 {public String name;public Integer age;public Integer id;
}
這里加個注解@Data就等于上面的代碼
@Data=@Getter+@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor
針對上面lombok也提供更精細粒度的注解可以單獨對類的屬性使用
里面有很多方法當我們要在這個類增加一個屬性的時候tostring方法又要重新寫相當麻煩
然后我們使用lombok中的注解就可以解決這個問題
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
上述引?lombok依賴,需要去找lombok的坐標
然后我們也可以使用EditStarter引入依賴重啟Idea
在pom.xml?件中,單擊右鍵,選擇Generate進?EditStarters的編輯界?,添加對應依賴即可.
留言版服務器代碼實現
package com.example.demo.demos.web.controller;import com.example.demo.demos.web.MessageInfo;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
import java.util.List;@RequestMapping("/message")
@RestController
public class MessageController {private List<MessageInfo> messageInfos = new ArrayList<>();@RequestMapping("/getList")public List<MessageInfo> getList(){return messageInfos;}@RequestMapping("/publish")public boolean publish(MessageInfo messageInfo){System.out.println(messageInfo);if(StringUtils.hasLength(messageInfo.getFrom())&&StringUtils.hasLength(messageInfo.getFrom())&&StringUtils.hasLength(messageInfo.getMessage())){messageInfos.add(messageInfo);return true;}return false;}}
示例