servlet请求转发、包含以及重定向
时间:2022-05-08
本文章向大家介绍servlet请求转发、包含以及重定向,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
请求转发:
方式一:
ServletContext对象.getRequestDispatcher(目标资源的URI).forward(request,response);
目标资源的URI "/servlet/GetParam" 必须以"/"开头,否则报错,此"/"就表示的是当前应用(绝对路径表示法)
方式二:
request.getRequestDispatcher(目标资源的URI).forward(request,response);
目标资源的URI "/servlet/GetParam" 如果以"/"开头,就表示的是当前应用(绝对路径表示法)。
GetParam" 如果不以"/"开头,就表示相对路径。相对路径:两个绝对路径去掉前面相同的部分
由源组件转发到目标组件时,容器会清空源组件输出的数据。响应头信息是不清空的,客户端地址栏URL不变
编码原则:不要在转发前后向页面输出数据,也不要关闭输出流。
1 public void forward(HttpServletRequest request,
2 HttpServletResponse response) throws ServletException, IOException {
3 // 方式一
4 // RequestDispatcher rd=getServletContext().getRequestDispatcher("/servlet/NewPage");
5 // 方式二
6 RequestDispatcher rd=request.getRequestDispatcher("NewPage");
7
8 rd.forward(request, response);
9 }
包含(动态包含):
request.getRequestDispatcher(目标资源的URI).include(request,response);
由源组件包含到目标组件时,容器会清空目标组件的头,所以源组件设置的头才有效。响应体信息是不清空的。
编码原则:不要在目标组件中设置响应头。
1 public void include(HttpServletRequest request,
2 HttpServletResponse response) throws ServletException, IOException{
3 RequestDispatcher rd=request.getRequestDispatcher("/servlet/NewPage");
4 rd.include(request, response);
5 }
重定向:
response.sendRedirect("/../...")
目标资源的URI /应用名/路径.. 绝对路径,"/"后跟应用名
客户端跳转,request中数据不传递!客户端地址栏URL改变。
1 public void redirect(HttpServletRequest request,
2 HttpServletResponse response) throws IOException{
3 response.sendRedirect("/WebProjectName/newURL");
4 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux中利用grep命令如何检索文件内容详解
- laravel框架学习笔记之组件化开发实现方法
- PHP7创建销毁session的实例方法
- Vim如何使用相对行号实现一切操作详解
- laravel 框架执行流程与原理简单分析
- 对python自动生成接口测试的示例讲解
- 解决pip install xxx报错SyntaxError: invalid syntax的问题
- PHP如何使用JWT做Api接口身份认证的实现
- 解决python3 Pycharm上连接数据库时报错的问题
- php把文件设置为插件的技巧方法
- Python中fnmatch模块的使用详情
- tp5框架使用cookie加密算法实现登录功能示例
- python实现停车管理系统
- 浅谈Pycharm调用同级目录下的py脚本bug
- Python中logging.NullHandler 的使用教程