확장 : 점프
상태 코드 소개
200 : 서버가 성공적으로 처리되었습니다.
404 : 찾고 있던 리소스가 존재하지 않습니다.
500 : 서버가 처리하지 못했습니다.
리디렉션
원본 웹 페이지에 적용 가능하며 더 이상 서비스를 제공하지 않습니다.
사례 :
소개 : 예를 들어 지금까지
JD.com이 개발되었습니다. 많은 웹 사이트가 있습니다. JD Finance 및 JD Logistics www.jd.com에 로그인 페이지가 있습니다. 나중에, 통합 로그인이 필요한 웹 사이트가 여러 개 있습니다.
jd.com 2003 jd.com/login.html
싱글 사인온
https://passport.jd.com/new/login.aspx?sso=1&ReturnUrl=https://sso.jdl.cn/sso/redirect
디자인 아이디어 :
@Controller
UserController{
@RequestMapping("/login"){
public String login() {
return "redirect:https//路径"
}
}
새 UserController.java 클래스 만들기
package com.tedu.webDemo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class UserController {
//模拟有个以前的登录方法
@RequestMapping("/login")
public String login() {
return "redirect:http://www.jd.com";
}
}
http : // localhost : 8080 / login이
전달되면 브라우저의 주소 표시 줄이 전달 된 주소가됩니다.
크롬 디버깅 창에서 네트워크의 상태 코드보기
앞으로
전달 후 브라우저 주소 표시 줄은 원래 주소로 유지됩니다. 따라서 전달하기 전에 요청 된 매개 변수는 전달 후에도 읽을 수 있습니다.
다음 예 :
package com.tedu.webDemo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UserController {
@RequestMapping("/loginByNP")
@ResponseBody //方法返回字符串
//如果类加的是@RestController 不用加@ResponseBody
public String loginByNameAndPwd(String username,String pwd) {
//打上断点
return "loginByNameAndPwd";
}
@RequestMapping("/loginByC")
public String loginByCode(String username,String pwd,String code) {
//验证码通过
//调用loginByNameAndPwd
return "forward:/loginByNP";
}
//模拟有个以前的登录方法
@RequestMapping("/login")
public String login() {
return "redirect:http://localhost:8080/login";
}
}
DeBUG AS 실행 :
중단 점 추적을 사용하여 사용자 이름이 loginByNamePwd 메서드에 전달되었는지 확인합니다.
http : // localhost : 8080 / loginByC? username = 123 & pwd = 456
리디렉션과 전달의 차이점
리디렉션과 전달의 차이점
1. 리디렉션 브라우저 주소 표시 줄에 새 주소가 표시되고 전달 주소 표시 줄은 변경되지 않습니다
. 2. 리디렉션은 다른 웹 사이트를 리디렉션 할 수 있으며 전달은이 웹 사이트로만 전달할 수 있습니다.
RESTFul 아키텍처 지원
RESTFul은 URL을 통한 데이터 전송이 필요합니다.
https://blog.csdn.net/qq_34337272/article/details/108347545
https://www.zhihu.com/question/328810338/answer/720393487
매개 변수를 전달하는 일반적인 방법은 url? itemName = phone입니다.
매개 변수를 전달하는 두 가지 방법이 있습니다.
普通? username = a & pwd = 1
휴식 / a / 1
@restController
RegisterController{
@requestMapping("/reg/{username}/{name}")
register@pathVarible String username,@PathVariable String pwd
}
단일 매개 변수 수신
@PathVariable은 요청 URL의 템플릿 변수를 함수 처리 메서드의 매개 변수에
매핑하여 향후 개발 추세가 될 RUSTFul 양식 을 형성하는 데 사용됩니다. 더 간결하고 안전합니다. URL GET 액세스 방법을 강화하십시오.
컨트롤러의 코드 :
만들기 : RegisterController 클래스
package com.tedu.webDemo.controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RegisterController {
@RequestMapping("/reg/{username}/{pwd}")
public String register(
@PathVariable String username,
@PathVariable String pwd
) {
return username+","+pwd;
}
}
http : // localhost : 8080 / reg / abc / 123