Redirección del marco JAVA SSM y compatibilidad con el marco RESTFul

Expansión: Jump

Introducción al código de estado

200: el servidor se procesó correctamente
404: el recurso que estaba buscando no existía
500: el servidor no pudo procesar

redireccionar

Aplicable a la página web original y ya no proporciona servicios.
Caso:
Introducción: Por ejemplo, ahora
JD.com se ha desarrollado hasta ahora. Hay muchos sitios web. JD Finance y JD Logistics www.jd.com tienen una página de inicio de sesión. Más tarde, hay varios sitios web que requieren un inicio de sesión unificado.
jd.com 2003 jd.com/login.html
inicio de sesión único
https://passport.jd.com/new/login.aspx?sso=1&ReturnUrl=https://sso.jdl.cn/sso/redirect
Inserte la descripción de la imagen aquí

Ideas de diseño:

@Controller
  UserController{
    
    
	@RequestMapping("/login"){
    
    
     public String login() {
    
    
     return "redirect:https//路径"
}
}

Crea una nueva clase 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";
	}
}

Después de que se
Inserte la descripción de la imagen aquí
reenvía http: // localhost: 8080 / login , la barra de direcciones del navegador se convierte en la dirección reenviada.
Ver el código de estado en la red en la ventana de depuración de Chrome
Inserte la descripción de la imagen aquí

adelante

Después del reenvío, la barra de direcciones del navegador sigue siendo la dirección original. Por lo tanto, los parámetros solicitados antes del reenvío aún se pueden leer después del reenvío.
El siguiente ejemplo:
Inserte la descripción de la imagen aquí

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";
	}
}

Ejecución de DeBUG AS:
utilice el seguimiento de puntos de interrupción para encontrar que el nombre de usuario se pasa al método loginByNamePwd.
http: // localhost: 8080 / loginByC? username = 123 & pwd = 456
Inserte la descripción de la imagen aquí

La diferencia entre redireccionar y reenviar

La diferencia entre redireccionar y reenviar
1. La barra de dirección de redireccionamiento del navegador muestra la nueva dirección, y la barra de dirección de reenvío permanece sin cambios.
2. La redirección puede redirigir otros sitios web, y el reenvío solo se puede reenviar a este sitio web.



Soporte de arquitectura RESTFul

RESTFul requiere transmisión de datos a través de URL

https://blog.csdn.net/qq_34337272/article/details/108347545
https://www.zhihu.com/question/328810338/answer/720393487

La forma normal de pasar parámetros es url? ItemName = phone

Hay dos formas de pasar parámetros

普通? username = a & pwd = 1
restful / a / 1

@restController
    RegisterController{
    
    
@requestMapping("/reg/{username}/{name}")

register@pathVarible String username,@PathVariable String pwd

}

Recibe un solo parámetro

@PathVariable se utiliza para mapear las variables de la plantilla en la URL de la solicitud a los parámetros del método de procesamiento de la función para
formar un formulario RUSTFul, que será la tendencia de desarrollo futura. Es más conciso y seguro. Reforzar el método de acceso URL GET.
Código en el controlador:

Crear: clase 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
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/QQ1043051018/article/details/112675238
Recomendado
Clasificación