请求转发(forward):一种服务器内部的资源跳转方式

实现方式:

reg.getRequestDispatcher("要跳转的路径").forward(req,resp);

创建两个Servlet,并配置他们的访问路径

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/d3")
public class ServletForward3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("d3.........");req.getRequestDispatcher("/d4").forward(req,resp);}}

通过上面的程序,请求转发给下面的程序

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/d4")
public class ServletForward4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("d4.......");}}

最后输出    d3.........

d4............

请求转发资源之间共享数据:使用Request对象

void  setAttribute(String name,Object  o)    存储数据到request域中。

Object getAttribute(String name)  根据键,获取值

void removeAttribute(String name)  根据键,删除键值对

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/d3")
public class ServletForward3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("d3.........");req.setAttribute("张三","男");req.getRequestDispatcher("/d4").forward(req,resp);  //数据存入域}
}
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/d4")
public class ServletForward4 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("d4.......");System.out.println(req.getAttribute("张三"));// 通过键获取域中的值}}

最后输出 :男

共享数据就成功了

请求转发的特点:

浏览器地址栏路径不发生变化

只能请求转发到当前服务器的内部资源

一次请求,可以转发的资源之间使用request共享数据

forward请求转发相关推荐

  1. 前端页面请求转发(forward)与重定向(redirect)

    页面跳转有两种实现方式:请求转发和页面重定向. 请求转发(forward) 请求转发可以理解成是服务器端的行为.客户端发起一次请求,这个请求在整个服务端可以被多次传递,但都是由服务器端的处理程序传递给 ...

  2. Servlet之请求转发和响应重定向

    多个servlet之间的跳转有两种方式: 请求转发:request.getRequestDispatcher("转发路径").forward(request, response); ...

  3. 请求包含(Include)和请求转发(Forward)

    定义 请求包含是指将另一个Servlet的请求处理流程包含进来. 请求转发是指将请求转发给别的Servlet处理. 实现 实现请求包含和请求转发,可以使用HttpServletRequest的getR ...

  4. JSP--(使用请求转发的动作标识jsp:forward)

    版权声明:To be or not to be, that's a question. https://blog.csdn.net/qq_32823673/article/details/795425 ...

  5. 如何在请求转发的时候对url解码_Java技术分享:Forward和Redirect这两种转发方式的区别...

    用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的.根据转发方式的不同,可以区分为直接请求转发 ...

  6. 请求重定向与请求转发的比较(HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法)...

    尽管HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很 ...

  7. SpringMVC控制器内请求转发关键字forward无效原因

    最近在写控制器代码时,请求结束后需要将请求转发到另一个控制器的url里去,但是return "forward:/这里是方法"却不奏效,处理完之后不报错,不跳转,在浏览器显示retu ...

  8. 请求转发(Forward)和重定向(Redirect)的区别

    转载于昊子豪的博客 请求转发(Forward)和重定向(Redirect)的区别 forward(转发): 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些 ...

  9. 请求转发(Forward)和重定向(Redirect)

    1.重定向(Redirect) 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL 1.工作原理: 用户第一次通过手动方式通过浏览器访问OneServlet, ...

最新文章

  1. [解题报告]10929 - You can say 11
  2. 如何快速增加网站收录?
  3. python中numpy与matlab的对应关系
  4. Matlab中的continue、break和return语句
  5. 第6章—渲染web视图—使用Thymeleaf
  6. 使用模块优化工资计算器
  7. 重邮数据结构实验课全部代码目录
  8. 帕斯卡恒等式(二项式相关
  9. 机器学习实战决策树画图理解
  10. CSS3——制作带动画效果的小图片
  11. 分享107个PHP源码,总有一款适合您
  12. 微信互动营销有哪些方式?
  13. Markdown添加目录(自定义目录)
  14. HTML基础学习记录
  15. pycharm使用虚拟环境时出现的那些问题
  16. boostraptable 表格数据未刷新
  17. 阿里巴巴校招三面面经
  18. 伺服驱动器cn1引脚定义_PCI-9014端子板DIN-68S和安川驱动器(SGDV-R90A01A002000)接线图...
  19. 相似对角化的意义(转载)
  20. xxx2xxx转换工具邪恶八进制收集整理上传专用主题(不断更新)https://forum.eviloctal.com/viewthread.php?tid=14426

热门文章

  1. git上传代码到指定分支
  2. google文件出错啦,发生浏览器错误!
  3. c语言中执行cl exe时出错,执行cl.exe时出错怎么办
  4. 如何在未越狱的ios系统安装ipa文件
  5. 信号和电源隔离的有效设计技术
  6. ldf 和mdf 各是数据库的什么文件?
  7. Android 如何关闭Navigation Bar
  8. 图卷积(1)——从欧式空间到非欧式空间
  9. Failed to connect to github.com port 443: Timed out 及 ping github.com请求超时
  10. 服务熔断和服务降级的区别