关于web项目中的资源跳转
1.跳转包括两种方式:
转发 forward
重定向 redirect
2.两种方式的代码:
AServlet类:
//向request范围中存储数据
request.setAttribute("username","zhangsan");
//转发forward:一次请求
//request.getRequestDispatcher("/b").forward(request,response);
//另外一种跳转方式是重定向
//重定向redirect:两次请求
//执行到此处之后将这个路径相应给浏览器,浏览器又向服务器发送了一次全新的请求
response.sendRedirect("/prj_servlet_16_war_exploded/b");
BServlet类:
//从request范围中取数据
Object obj = request.getAttribute("username");
System.out.println(obj);
- 转发
request.getRequestDispatcher("/b").forward(request,response);
- 重定向:
response.sendRedirect(request.getContextPath() + "/b");
3.转发和重定向的相同点和不同点:
- 相同点:
都可以完成资源跳转
- 不同点:
* 触发对象不同:
转发是request对象触发的,重定向是response对象触发的
* 请求次数不同
转发是一次请求,浏览器地址栏上地址不会变化,重定向是两次请求,浏览器地址栏上的地址发生变化[/a-->/b]
* 路径不同
重定向的路径需要加webapp的根路径,转发是在本项目内完成资源跳转
* 可跨范围不同
重定向可以完成跨项目跳转,跨app跳转资源
4.跳转的下一个资源可以是什么?
- 跳转的下一个资源可以是web服务器中任何一种资源:可以是Servlet,也可以是html,也可以是JSP...
5.什么时候采用转发,什么时候采用重定向?[大部分情况下都使用重定向]
* 若想完成跨app跳转,必须使用重定向
* 若在上一个资源中向request范围中存储数据希望在下一个资源中从request范围中将数据取出必须使用转发
* 重定向可以解决浏览器的刷新问题
6.重定向原理是什么?
a.response.sendRedirect("/jd/login");
b.程序执行到以上代码,将请求路径/jd/login反馈给浏览器,
c.浏览器自动又向web服务器发送了一次全新的请求:/jd/b
d.浏览器地址栏上最终显示的地址是:/jd/login
关于web项目中的资源跳转的更多相关文章
- web项目中实现页面跳转的两种方式
<a href="javascript:"></a>跳转在网页本身,URL不改变 <a href="#"></a> ...
- java web项目中打开资源文件中文乱码
1 java web项目中经常使用多模块管理.在某一个模块中添加了一些资源文件.但不是启动项目.有时候需要在程序中读取资源文件内容,打包后放到容器中就不能正常运行了.需要将所有资源文件放到启动项目的 ...
- 关于web项目中静态资源加载不了的一些解决思路
问题的产生: <!--springMVC前端控制器加载--> <servlet> <servlet-name>springmvc</servlet-name& ...
- web项目中各种路径的获取(复制,为以后好找资源)
web项目中各种路径的获取 1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获 ...
- 在web项目中使用shiro(认证、授权)
一.在web项目中实现认证 第一步,在web项目中导入shiro依赖的包 第二步,在web.xml中声明shiro拦截权限的过滤器 <filter> <filter-name> ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 【Filter 不登陆无法访问】web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面的功能
在web项目中写一个过滤器实现用户不登陆,直接给链接,无法进入页面,而重定向到登陆界面的功能. 项目是用springMVC+spring+hibernate实现 (和这个没有多大关系) 第一步: 首先 ...
- 转 web项目中的web.xml元素解析
转 web项目中的web.xml元素解析 发表于1年前(2014-11-26 15:45) 阅读(497) | 评论(0) 16人收藏此文章, 我要收藏 赞0 上海源创会5月15日与你相约[玫瑰里 ...
- (转)关于java和web项目中的相对路径问题
原文:http://blog.csdn.net/yethyeth/article/details/1623283 关于java和web项目中的相对路径问题 分类: java 2007-05-23 22 ...
随机推荐
- Redis笔记(一)
redis:1.什么是缓存? mybatis一级缓存和二级缓存 mybatis的一级缓存存在哪? SqlSession,就不会再走数据库 什么情况下一级缓存会失效? 当被更新,删除的时候sqlsess ...
- 在Excel中怎样才能在某一行前面一次插入多行?
你在要插入的行以下选中多少行,点插入,就能插入多少行.
- 实例说明C++的virtual function的作用以及内部工作机制初探
C++为何要引入virtual function? 来看一个基类的实现: 1 class CBase 2 { 3 public: 4 CBase(int id) : m_nId(id), m_pBas ...
- JAVA 之 每日一记 之 算法( 给定一个正整数,返回它在 Excel 表中相对应的列名称。 )
题目: 给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -& ...
- mybaits源码分析--事务管理(八)
一.事务管理 写到这也快进入收尾阶段了了,在介绍MyBatis中的事务管理时不可避免的要接触到DataSource的内容,所以接下来会分别来介绍DataSource和Transaction两块内容. ...
- shell脚本之case语句
case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行 ...
- 单片机学习(十二)1-Wire通信协议和DS18B20温度传感器
目录 一.DS18B20 1. DS18B20简介 2. 电路原理图 3. 内部结构 内部完整结构框图 存储器结构 二.单总线(1-Wire BUS) 1. 单总线简介 2. 电路规范 3. 单总线的 ...
- 测试开发【提测平台】分享9-DBUntils优化数据连接&实现应用搜索和分页功能
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 从本期开始知识点讲以思维导图的形式给出,内容点会按照讲解-应用-展示的形式体现,这样会更清晰些. DBUntils连接池 在项目中链接数据 ...
- (8)java Spring Cloud+Spring boot+mybatis企业快速开发架构之SpringCloud-Spring Cloud Eureka是什么?
Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 做了二次封装,主要负责实现微服务架构中的服务治理功能. ...
- Spring Boot 2.x 之 Logging
[源起] 最近在看Apollo的源码,发现其all-in-one项目的脚本demo.sh在执行的时候,竟然没有向控制台输出Spring Boot的日志. 我们修改后构建的Fat Jar,在启动时却打印 ...