forward和redirect请求方式
之前一直对forward和redirect有点疑问,现在练习一下加深点记忆,理解理解,forward是一次请求,在一个request范围内,而redirect是二次请求
实例:
@Controller
public class ForwardController {
@RequestMapping("/makeDataForward2.html")
public String makeDataResponse(Model model,HttpServletRequest request) {
//在model和request中保存属性
model.addAttribute("modelData", "model data");
//得到完整路径
System.out.println("request.getRequestURL()"+request.getRequestURL());
//得到除去ip地址的路径
System.out.println("request.getRequestURI()"+request.getRequestURI());
request.setAttribute("requestData", "reuqest data");
//正常响应
return "success";
} //请求转发
@RequestMapping("/makeDataForward.html")
public String makeDateForward(Model model,HttpServletRequest request) {
//在model和request中保存属性
model.addAttribute("modelData", "model data");
request.setAttribute("requestData", "reuqest data");
//请求转发过去后值也传递过去了
return "forward:toSuccessPage.html";
}
@RequestMapping("/makeDataRedirect.html")
public String makeDataRedirect(Model model, HttpServletRequest request) {
//在model和request中保存属性
model.addAttribute("modelData", "model data");
request.setAttribute("requestData", "reuqest data");
//重定向
return "redirect:toSuccessPage2.html";
} @RequestMapping("/toSuccessPage.html")
public String toSuccessPage() {
return "success";
} @RequestMapping("/toSuccessPage2.html")
public String toSuccessPage2(@ModelAttribute("modelData") String modelData) {
//@ModelAttribute("modelData")
//可以获取重定向传递过来的页面的model值,这样在前端就可以获取了
//如果没有这个参数,页面就获取不到值
return "success";
}
@RequestMapping("/toSuccessPage3.html")
//RedirectAttributes可以向url传递参数,包括中文
public String toSuccessPage3(RedirectAttributes redirectAttributes) {
redirectAttributes.addAttribute("param", "王");
return "redirect:/WEB-INF/jsp/success.jsp?method=号";
} }
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
model中数据:${modelData}
<br/>
<br/>
request中数据:${requestData }
<br/>
</body>
</html>
forward和redirect请求方式的更多相关文章
- 直接请求转发(Forward)和间接请求转发(Redirect)两种区别?
用户向服务器发送了一次HTTP请求,该请求肯能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的.根据转发方式的不同,可以区分为直接请求转发 ...
- java web (sevlet)请求之get,post,forward,redirect
[参考]web请求之get,post,forward,redirect 1,form表单:可以采用post或者get请求,客户端主动跳转,url地址会改变为提交后的地址 2,forward:forwa ...
- JAVA常见面试题之Forward和Redirect的区别
用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的.根据转发方式的不同,可以区分为直接请求转发 ...
- forward和redirect的区别(转)
Redirect Forward 不同的request 不同的对象,但是可以渠道上一个页面的内容 send后面的语句会继续执行,除非return Forward后面的语句不会继续发送给客户端 速度慢 ...
- Forward和Redirect的区别
一:间接请求转发(Redirect) 二:直接请求转发(Forward) 用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求 ...
- JAVA之Forward 和 Redirect的区别
1.从地址栏显示来说forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址 ...
- JSP 中 forward 和 redirect 的区别_2014.12.31
重定向,只能访问工程下(WebRoot文件夹)的页面,不能访问到内部(WEB_INF文件夹)的页面 1.从地址栏显示来说:forward浏览器显示路径不变,redirect浏览器显示路径改变forwa ...
- forward 和redirect的区别
1.从地址栏显示来说 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地 ...
- forward和redirect
Forward和Redirect代表了两种请求转发方式:直接转发和间接转发. 直接转发方式(Forward),客户端和浏览器只发出一次请求,Servlet.HTML.JSP或其它信息资源,由第二个信息 ...
随机推荐
- 推荐一些优秀的SAP网站
著名的SAP论坛:(人气比较旺,可以找到很多问题的回答) http://www.sapfans.com/ 著名的It专业网站的SAP部分:(查找部分资料) http://sap.ittoolbox.c ...
- Sublime Text3 最新版3207 安装及破解
注:原文地址 https://www.abbeyok.com/archives/337 Sublime Text 3最近更新了新版本,最新版本:3207,之前的license无效了,新版破解方法如下: ...
- [ActionSprit 3.0] FMS客户端调用服务器端命令或方法
有时候客户端需要和服务器端进行通信,服务器端会有个main.asc文件(当然,文件名可以自己定义),这个就是服务器端程序,是在服务器上执行的,你可以用trace调试,trace的内容会在管理服务器的页 ...
- uC/OS-II 函数之时间相关函数
获得更多资料欢迎进入我的网站或者 csdn或者博客园 对于有热心的小伙伴在微博上私信我,说我的uC/OS-II 一些函数简介篇幅有些过于长应该分开介绍.应小伙伴的要求,特此将文章分开进行讲解.上文主要 ...
- jquery将json数据放入表格当中
数据: var datas = [{ name:"淘宝", url:"www.taobao.com", type:"购物网站" },{ na ...
- Intellij idea maven 引用无法搜索远程仓库的解决方案
打开项目的POM文件,ALT+Insert键 出来添加引用的窗口 说明无法搜索到远程仓库,需要怎么设置呢? 在intellij idea 中配置好maven后 是这样的 如果加载失败,则需要自定义远程 ...
- RN_ 错误整理
1. this.setState is not a function 或者 this.setState is undefined 在 constructor 中加入 this.select = t ...
- 深入理解计算机系统10——系统级I/O
系统级I/O 输入/输出 是在主存和外部设备之间拷贝数据的过程. 外部设备可以是:磁盘驱动器.终端和网络. 输入和输出都是相对于主存而言的. 输入是从I/O设备拷贝数据到主存.输出时从主存拷贝数据到I ...
- 2019年华南理工大学程序设计竞赛(春季赛)A NB群友
https://ac.nowcoder.com/acm/contest/625/A 题意:给出一个区间范围 , 求有多少个数的每一位的积是在这个区间里面的 分析:没错了 ,就是记忆化暴力搜索 ,不断的 ...
- 三种实现日志过滤器的方式 (过滤器 (Filter)、拦截器(Interceptors)和切面(Aspect))
1.建立RequestWrapper类 import com.g2.order.server.utils.HttpHelper; import java.io.BufferedReader; impo ...