关于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 ...
随机推荐
- linux shell 脚本输入参数解析
文件名: test.sh #!/bin/bash para="para: "; while [ $# -ge 2 ] ; do case "$1" in --a ...
- idea控制台中文乱码解决办法
也可以通过idea右下角的设置,但是properties文件是不能设置的,这个只能在file->setting->file encodings 设置
- Photoshop 批量修改图像大小
- JUC原子操作类与乐观锁CAS
JUC原子操作类与乐观锁CAS 硬件中存在并发操作的原语,从而在硬件层面提升效率.在intel的CPU中,使用cmpxchg指令.在Java发展初期,java语言是不能够利用硬件提供的这些便利来提 ...
- [考试总结]noip模拟45
真开心,挂没了.. 考完:"你们怎么第二题打了这么点分,明明一个爆搜就有65pts!!!怎么跟别人打?!" 然后我看了看我的爆搜,30pts. 然后认为自己打爆了... 我又想为什 ...
- 第05课:GDB 常用命令详解(上)
本课的核心内容如下: run 命令 continue 命令 break 命令 backtrace 与 frame 命令 info break.enable.disable 和 delete 命令 li ...
- 多文件Makefile编写
工作过程中,平时不怎么关注Makefile的书写规则,对于遇到的编译错误一般能看懂Makefile的基本规则也能解决.但如果想要编写Makefile文件还是有相当的难度的,更不用说包含多个目录和文件的 ...
- Stream流方法引用
一.对象存在,方法也存在,双冒号引用 1.方法引用的概念: 使用实例: 1.1先定义i一个函数式接口: 1.2定义一个入参参数列表有函数式接口的方法: 1.3调用这个入参有函数式接口的方法: lamb ...
- C# 中 AppDomain 的一些理解
C# 中 AppDomain 的一些理解 前言 一直想写一个这样的程序:与其它的程序完全解耦,但可以动态的加载其它程序,并执行其中的特定方法,执行完后可以卸载,完全不影响该程序本身.最近无意间发现了 ...
- 密码学系列之:Argon2加密算法详解
目录 简介 密钥推导函数key derivation function Password Hashing Competition Argon2算法 Argon2的输入参数 处理流程 简介 Argon2 ...