JAVA SSM 프레임 워크 리디렉션 및 RESTFul 프레임 워크 지원

확장 : 점프

상태 코드 소개

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
여기에 사진 설명 삽입

추천

출처blog.csdn.net/QQ1043051018/article/details/112675238