JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发
时间:2022-07-22
本文章向大家介绍JavaWeb中的实现页面跳转的同卵双胞胎兄弟——重定向与请求转发,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
重定向与请求转发
1、重定向
response.sendRedirect();
介绍
重定向,也称客户端跳转,相当于客户端向服务端发送请求之后,服务器返回一个响应,客户端接收到响应之后又向服务端发送一次请求,一共是2次请求,前后页不共用一个request,不能读取转向前通过request.setAttribute()设置的属性值。在前后两次执行后,地址栏发生改变,是目标文件的地址。
一般应用于数据的修改、删除、添加操作的相关信息显示操作
写法(注意斜杠)
URL种所包含的"/"表示根目录的路径
a. 跳转到jsp页面:
response.sendRedirect("/WebApps下的相对路径") 或者
response.sendRedirect(request.getContextPath()+"/相对路径")
b. 跳转到servlet中的某个方法(mvc架构下)
response.sendRedirect(request.getContextPath()+"/servlet/servlet项目名/method=方法名")
举例:
1、重定向到servlet中的某个方法
2、重定向到某个jsp页面
2、请求转发
request.getRequestDispatcher().forward(request, response)
介绍
请求转发,也称服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,两个文件(当前文件和目标文件)属于同一次请求,前后页共用一个request,可以通过此来传递一些数据或者session信息,request.setAttribute()和request.getAttribute()。在前后两次执行后,地址栏不变,仍是当前文件的地址。 一般用于数据的查询,插入,更新等操作的相关信息显示操作。
写法
注意斜杠、以及后跟.forward(request, response) URL中所包含的“/”表示应用程序(项目)的路径。
a. 跳转到jsp页面
request.getRequestDispatcher("/WebRoot下的相对路径").forward(request, response);
b. 跳转到servlet中的某个方法(mvc架构下)
request.getRequestDispatcher("/servlet/servlet项目名/method=方法名").forward(request, response);
举例
1、请求转发到某个jsp页面
2、请求转发到servlet中的某个方法
- 游戏开发完整学习路线(各个版本都有)
- spring mvc4:异常处理
- TCP/IP, WebSocket 和 MQTT
- struts2: 玩转 rest-plugin
- 设置系统环境变量立即生效的VBS脚本
- velocity模板引擎学习(1)
- mybatis 3.x 缓存Cache的使用
- XStream、JAXB 日期(Date)、数字(Number)格式化输出xml
- mac: vmware fusion中cent os启动假死的解决办法
- java:hibernate + oracle之坑爹的clob
- 启用WCF NetTcpBinding的共享端口
- asp中的md5/sha1/sha256算法收集
- UE4从零搭建CF游戏关卡(蓝图篇)
- 通用的序列号生成器库
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- CentOS7使用yum安装PostgreSQL和PostGIS的方法
- Linux Windows下设置定时执行任务的方法
- 详解ssh免密码登录配置方法(图示加命令)
- centos 7 修改sshd | 禁止 root登录及sshd端口脚本定义
- Linux 全能系统监控工具dstat的实例详解
- 解决-BASH: /HOME/JAVA/JDK1.8.0_221/BIN/JAVA: 权限不够问题
- linux常用工具vi/vim的使用完整版
- Linux下监视NVIDIA的GPU使用情况详解
- Linux下安装jdk1.8并配置环境变量的教程
- Linux中Homebrew的正确使用方法
- Linux中awk的使用方法详解
- Django上线部署之Apache的方法
- centos7系统下python2与python3共存
- linux把一个文件的内容复制到另一个文件的末尾
- 详解linux下nohup日志输出过大问题解决方案