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
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
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
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:
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
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