JAVA SSM框架 重定向与RESTFul架构支持

news/2024/7/24 5:47:33 标签: java

拓展:跳转

状态码介绍

200:服务器处理成功
404:你找的资源不存在
500:服务器处理失败

redirect 重定向

适用于原先的网页不继续提供服务了
案例:
介绍:比如说现在京东,发展到现在,有了很多网站京东金融 京东物流
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
在这里插入图片描述

设计思路:

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

新建一个UserController.java

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
在这里插入图片描述
转发后浏览器的地址栏变为转发后的地址。
在chrome的调试窗口中network中查看status code
在这里插入图片描述

forward 转发

转发后浏览器地址栏还是原来的地址。所以转发前请求的参数在转发后仍然可以读取到。
如下例子:
在这里插入图片描述

java">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执行:
使用断点跟踪会发现username传到loginByNamePwd方法中了。
http://localhost:8080/loginByC?username=123&pwd=456
在这里插入图片描述

重定向redirect和转发forward的区别

重定向redirect和转发forward的区别
1,重定向浏览器地址栏显示新的地址,转发地址栏不变
2,重定向可以重定向别的网站,转发只能转发到本网站中的方法。



RESTFul架构支持

RESTFul要求通过url传输数据

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

普通传递参数的方法是 url?itemName=手机

传参数有两种方式

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

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

register@pathVarible String username,@PathVariable String pwd

}

接收单个参数

@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上
形成RUSTFul形式,这将是未来的发展趋势。它更加简洁,安全。强化URL GET访问方式。
controller中代码:

创建:RegisterController 类

java">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
在这里插入图片描述


http://www.niftyadmin.cn/n/1756560.html

相关文章

三大框架之spring框架+IoC控制反转、DI依赖注入

三大框架:业务层框架SpringIoCDI 往期文章:jsp与cookie、重定向与RESTFul架构支持 下一章节: 持久层框架MyBatis 初识Spring框架 MyBatis 入门https://www.w3cschool.cn/mybatis/mybatis-dyr53b5w.html 1.解决什么问题 业务层&#xff1…

三大框架:持久层框架MyBatis基础入门

持久层框架MyBatis(中文音译:麦-波蒂斯) 上期内容:三大框架之spring框架IoC控制反转、DI依赖注入 一、是什么? 是一个数据库框架 以前用的是hibernate 二、如何用? 1.创建springboot项目,添加mybatis,mysql依赖 …

第一章:Linux常用命令+VIM+SSH介绍+SSH密钥登录

目录 一、Linux常用命令 1)# 与 $ 提示的区别 2)ifconfig 3) su 4) cd 5) 目录查看 6) 查看文件内容 7)创建目录及文件 8)复制和移动 9)其他 10) …

持久层框架MyBatis的增删改查、映射与表间关系

复习 一、使用mybatis的流程 创建springboot项目,添加mybatis,mysql,web生成或者手写sql,sql是放在UserMapper.xml,是通过UserMapper.java接口,gernerator项目不是必须的。UserMapper.selectByExample()U…

持久层框架MyBatis 多表查询 一对一

四、多表查询 一对一 上一章内容:持久层框架MyBatis的增删改查、映射与表间关系 实现: 思路: 1)在sqlyog中分析表的关系 2)画图分析代码实现思路 1.需求: 用户和订单信息一对一关联;查询…

持久层框架MyBatis 多表查询一对多、高级搜索、动态SQL语句

持久层框架MyBatis 多表查询 一对多 往期内容:持久层框架MyBatis 多表查询 一对一 需求 商品分类表 商品详情表 SELECT category.category_id,category.category_name,item_name FROM category,item WHERE category.category_id1 AND item.category_idcatego…

JAVA基础入门 使用IDEA创建maven、springboot、springboot springmvc项目

1.安装idea IDEA官网https://www.jetbrains.com/zh-cn/products/#typeide IDEA破解教程:https://tech.souyunku.com/?p30970 Idea设置 代码提示 不区分大小写 Filesettings进入设置界面 Editor–>General–>code completions 进入图中的界面&#xff…

JAVA基础 自增变量

自增自减运算符 1、自增()自减(–) 运算符是一种特殊的算术运算符,在算术运算符中需要两个操作数来进行运算,而自增自减运算符是一个操作数。 public class selfAddMinus{public static void main(String[…