JavaWeb学习——页面跳转方式
JavaWeb学习——页面跳转方式
摘要:本文主要学习了请求转发和响应重定向,以及两者之间的区别。
请求转发
相关方法
使用HttpServletRequest对象的 getRequestDispatcher(String path) 方法获取RequestDispatcher类型的转发器。
使用RequestDispatcher转发器的 forward(ServletRequest request, ServletResponse response) 方法进行转发。
实例
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/test.html").forward(req, resp);
}
响应重定向
相关方法
使用HttpServletResponse对象的 sendRedirect(String location) 方法进行重定向到其他资源。
实例
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/HelloWorld/test.html");
}
请求转发和响应重定向的区别
发送次数
转发只发送一次请求。
重定向发送两次请求。
地址栏变化
转发地址栏没有变化,执行刷新相当于重新发送信息到原页面。
重定向地址栏有变化,执行刷新将发给新页面。
访问限制
转发可以访问WEB-INF下的资源。
重定向不可以访问WEB-INF下的资源。
发生位置
转发发生在服务器内部。
重定向发生在浏览器端。
跳转地址
转发不能跳转到本应用外的URL。
重定向可以跳转到任意URL。
访问属性
通过 request.setAttribute(); 设置的属性,如果让下一个页面访问,只能通过转发。
通过 session.setAttribute(); 设置的属性,如果让下一个页面访问,转发和重定向都可以,建议使用转发。
JavaWeb学习——页面跳转方式的更多相关文章
- JSP页面跳转方式
JSP页面跳转方式 1.利用按钮+javascript进行跳转 <input type="button" name="button2" value=&qu ...
- 微信小程序 页面跳转方式
// 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面. // 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,但是 redirectT ...
- SpringMVC 04: SpringMVC中4种页面跳转方式
转发和重定向的页面跳转方式 页面跳转方式,本质上只有2种方式:转发 + 重定向 但在SpringMVC的具体实现上,转发可以细分为:普通的页面转发 + 经由action方法的页面转发 重定向可以细分为 ...
- JS页面打开方式丶对话框及页面跳转方式
一.js页面的三种打开方式 1. window.open 2. window.navigate("url") 跳转到目标页面 3. window.location.href=&qu ...
- iOS学习——页面的传值方式
一.简述 在iOS开发过程中,页面跳转时在页面之间进行数据传递是很常见的事情,我们称这个过程为页面传值.页面跳转过程中,从主页面跳转到子页面的数据传递称之为正向传值:反之,从子页面返回主页面时的数据传 ...
- 乱码问题-页面跳转方式-Servlet配置文件
1.HttpServletRequest a)HttpServletRequest是一个接口,继承了ServletRequest接口: b)HttpServletRequest对象由服务器创建,并作为 ...
- springMVC 几种页面跳转方式
今天主要写一下响应界面跳转的几种方式 1.在注解的方式中 1.1通过HttpServletResponse的API直接输出(不需要配置渲染器) controller类的主要代码 @Controller ...
- 原创+转发:微信小程序navigator、redirectTo、switchTab几种页面跳转方式
什么是事件? 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 详解(以常见的tap点击事情为例) 模板.wxml代码: <view id="tapTest ...
- JavaWeb学习笔记--跳转方法小结
服务端跳转:1. RequestDispatcher.forward() public void doGet(HttpServletRequest request, HttpServletRespo ...
随机推荐
- python核心编程笔记(转)
解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找python路径 1.4 –v 冗 ...
- springboot整合netty的多种方式
netty作为一个高性能的io框架,是非好用的一个技术框架, Netty 是一个基于NIO的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户. ...
- day 26 约束、自定义异常、加密hashlib、logging
一.约束 建议使用: class BaseMessage(object): def send(self): """ 必须继承BaseMessage,然后其中必须编写sen ...
- VS #region
1.C# 预处理指令 #region使您得以在使用Visual Studio代码编辑器的大纲显示功能时指定可展开或折叠的代码块. #region name 其中:name 希 ...
- C语言l博客作业01
2.1 你对软件工程专业或者计算机科学与技术专业了解是怎样?(2分) 计算机科学与技术是国家一级学科,下设信息安全,软件工程,计算机软件与理论等专业,主要培养符合教育部门实际需要的计算机教学及应用管理 ...
- c语言作业07
问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/8655 我在 ...
- PHP 获取服务器详细信息的原生方法
获取系统类型及版本号: php_uname() (例:Windows NT PCA15130 6.1 build 7601 (Windows 7 Ultimate Edition Ser ...
- 主机配置静态IP
LVS虚拟机配置网关 路径: CentOS 6: vim /etc/sysconfig/network-scripts/ifcfg-eth0 CentOS 7: vim /etc/sysconfig/ ...
- Spring boot如何快速的配置多个Redis数据源
简介 redis 多数据源主要的运用场景是在需要使用多个redis服务器或者使用多个redis库,本文采用的是fastdep依赖集成框架,快速集成Redis多数据源并集成lettuce连接池,只需引入 ...
- 云享专家倪升武:微服务架构盛行的时代,你需要了解点 Spring Boot
[摘要] 微服务架构的本质在于分布式.去中心化. 随着互联网的高速发展,庞大的用户群体和快速的需求变化已经成为了传统架构的痛点. 在这种情况下,如何从系统架构的角度出发,构建出灵活.易扩展的系统来快速 ...