一:

1.介绍知识点

  1). 本质区别: 请求的转发只发出了一次请求, 而重定向则发出了两次请求.

  具体:

    ①. 请求的转发: 地址栏是初次发出请求的地址.
       请求的重定向: 地址栏不再是初次发出的请求地址. 地址栏为最后响应的那个地址

    ②. 请求转发: 在最终的 Servlet 中, request 对象和中转的那个 request 是同一个对象.
          请求的重定向: 在最终的 Servlet 中, request 对象和中转的那个 request 不是同一个对象.

    ③. 请求的转发: 只能转发给当前 WEB 应用的的资源
       请求的重定向: 可以重定向到任何资源.

    ④. 请求的转发: / 代表的是当前 WEB 应用的根目录
       请求的重定向: / 代表的是当前 WEB 站点的根目录.

二:程序

1.web.xml(关于配置使用注解了)

1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
5     id="WebApp_ID" version="3.1">
6     <display-name>JspTest</display-name>
7 </web-app>

2.jsp文件(两种链接代表两种知识点)

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <!-- 请求转发 -->
11     <a href="forwardServlet">Forward</a>
12
13     <br><br>
14
15     <!-- 重定向 -->
16     <a href="redirectServlet">RedirectServlet</a>
17 </body>
18 </html>

3.ForwardServlet.java

 1 package Servlets;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.RequestDispatcher;
 6 import javax.servlet.ServletException;
 7 import javax.servlet.annotation.WebServlet;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 /**
13  * Servlet implementation class ForwardServlet
14  */
15 @WebServlet("/forwardServlet")
16 public class ForwardServlet extends HttpServlet {
17     private static final long serialVersionUID = 1L;
18
19     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
20         System.out.println("ForwardServlet doGet");
21         //请求转发
22         String path="nextServlet";
23         RequestDispatcher requestDispatcher=request.getRequestDispatcher("/"+path);
24         requestDispatcher.forward(request, response);
25     }
26
27 }

4.NextServlet.java

 1 package Servlets;
 2
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9
10 /**
11  * Servlet implementation class NextServlet
12  */
13 @WebServlet("/nextServlet")
14 public class NextServlet extends HttpServlet {
15     private static final long serialVersionUID = 1L;
16
17     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18         System.out.println("NextServlet doGet");
19     }
20 }

5.RedirectServlet.java

 1 package Servlets;
 2
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9
10 /**
11  * Servlet implementation class RedirectServlet
12  */
13 @WebServlet("/redirectServlet")
14 public class RedirectServlet extends HttpServlet {
15     private static final long serialVersionUID = 1L;
16
17     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18         System.out.println("RedirectServlet doGet");
19
20         //重定向
21         String path="nextServlet";
22         response.sendRedirect(path);
23     }
24 }

6.效果

  分别点击一次链接。

  

转载于:https://www.cnblogs.com/juncaoit/p/7420940.html

JSP的学习二(请求转发与 重定向)相关推荐

  1. jsp:请求转发和重定向

    HttpServletResponse对象的sendRedirect(String location)方法称作重定向, 如果location地址前面加上"/",则表示相对于Serv ...

  2. 【Servlet】请求转发、重定向、Cookie使用之三天自动登陆

    三天自动登陆项目源码:GitHub地址-LoginSystem JDBC 手写SORM框架 手写Servlet 开发环境:Eclipse 一.请求乱码问题解决 // 设置请求.响应编码格式req.se ...

  3. java中请求转发与重定向_JavaEE进阶 请求转发与请求重定向

    JavaEE进阶 请求转发与请求重定向 本篇JavaEE进阶教程将为大家讲解JavaEE进阶编程的知识点,看完这篇文章会让你对JavaEE进阶编程的知识点有更加清晰的理解和运用.在转发的过程中,可以把 ...

  4. 详解请求转发和重定向

    ** 详解请求转发和重定向 **servlet请求转发与重定向的区别: request.setAttribute("test","hello"); reques ...

  5. 请求转发和重定向区别

    一.转发和重定向区别详解 作为一名程序员,特别是java web开发的程序员,在使用servlet/jsp的时候,我们必须要知道实现页面跳转的两种方式的区别和联系:即转发和重定向的区别. Reques ...

  6. 【相对/绝对路径】JavaWeb项目中,请求转发与重定向的路径写法

    相对路径.全路径 是要不以/开头,都是相对路径.相对路径是从当前资源出发,去寻找其他资源. 只要路径中以/开肉,就是全路径.全路径是从项目根目录出发,去寻找其他资源. 在开发中,写文件路径时,最好使用 ...

  7. 【JavaWeb】Response请求转发与重定向辨析

    请求转发与重定向对比 辨析 请求转发只有一次请求.一次响应,是在服务端内部跳转 重定向有两次请求.两次响应:将结果返回给客户端,让客户端重新发起一次跳转 请求转发的登陆界面实现 login.jsp & ...

  8. 【JavaWeb】一文Servlet全解:继承关系、生命周期、容器和请求转发与重定向等

    文章目录 一.Servlet 概述 二.Servlet HelloWorld 三.Servlet 继承关系 四.Servlet 生命周期 五.ServletConfig 和 ServletContex ...

  9. ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段...

    原文地址:ServletRequest HttpServletRequest 请求方法 获取请求参数 请求转发 请求包含 请求转发与重定向区别 获取请求头字段 ServletRequest 基本概念 ...

  10. 请求转发与重定向的区别和执行流程

    请求转发与重定向的区别和执行流程 文章目录 请求转发与重定向的区别和执行流程 1 请求转发与重定向区别 2 现实生活的例子 2.1 重定向 2.2 请求转发 3 重定向-流程图.代码.结果 3.1 流 ...

最新文章

  1. AI一分钟 | 小米MIX 2S将于3月27号发布,搭载骁龙845;张朝阳:在研究区块链 但相信AI的力量
  2. react-native侧滑
  3. 001_日志系统的架构模型
  4. 使用localStorage解决浏览器刷新后无法再从vuex中获取数据的问题
  5. 系统同传软件_如何戴耳机录制自己的同传练习?
  6. sap 供应商表_财务人员学习SAP的路线图
  7. 在微信小程序中使用字体图标
  8. WCF 之 数据契约
  9. iOS 8 新特性介绍
  10. python文件操作(路径、移动、复制、见目录)
  11. 卫星地图上有没有UFO影像?
  12. android 手机型号 命名规则,自己整理:各大品牌安卓手机的型号命名规律
  13. python 爬虫 微博 github_GitHub - berluo/weiboSpider-1: 新浪微博爬虫,用python爬取新浪微博数据...
  14. 第十二章 Android第三方库源码
  15. uc浏览器设置里面的的浏览器ua是什么意思
  16. 使用DOM技术操纵文档
  17. [在线挑战]【i春秋】渗透测试入门 —— 渗透测试笔记 --转
  18. [华为机试真题]69.姓名的夫妻相
  19. xlsx发现不可读取的内容,是否恢复此工作簿的内容?
  20. 神奇的水滴效果导航栏-BezierIndicator

热门文章

  1. 用 Java 对 hbase 进行CRUD增删改查操作
  2. golang中的select详解
  3. 防止头文件的重复包含
  4. 在windows下 格式化SD卡或U盘最快捷、安全的方法!
  5. tomcat源码研究
  6. jsp:请求转发和重定向
  7. 前端三十二:超链接(a标签)
  8. 【数道云大数据】大数据平台哪一个好用?武汉2019年大数据平台排行版?...
  9. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
  10. AI 学习之路——轻松初探 Python 篇(一)