重定向的概述和使用(基于web方面),很简单

news2025/2/27 1:15:00

大家好,今天分享一下重定向的概述以及使用

我们要知道,重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置

同时,重定向有好几类
1.网页重定向、
2.域名的重定向、
3.路由选择
4. Linux上的文件重定向操作

就是要知道,这几个方面都有重定向的操作

我们今天分享的是基于web的重定向(就是指网页重定向)

一个场景,看我画的图:

在这里插入图片描述

你作为一个用户,你使用浏览器访问一个网站,你访问的网站资源放在了服务器当中,你是通过URL(理解成一个资源路径地址)访问到一个资源的 ,如果你使用原生的代码去写项目,会使用到servlet这个技术,就会知道,我们作为开发者是可以人为调度服务器资源位置的,但是如果这个位置的一个普通访问者通过URL搜索到的资源不存在或者将地址搞错了,在这种情况下,可能会发生两件事

  1. 页面会直接报错
  2. 搜索到的网页不是你想看见的那个,地址栏中的地址自动的变成了另一个地址
    这个情况一旦发生,服务器就会向浏览器发出302的响应状态码(里面有资源的目标地址)

这就是重定向,

使用大白话去讲,就是,服务器告诉浏览器给某个地址发送请求

做个案例

在这里插入图片描述

选择webapp

在这里插入图片描述

起一个项目名

在这里插入图片描述

设置maven

在这里插入图片描述

搭建完成

在这里插入图片描述

导入jar包

<dependencies>
         <!--加入servlet依赖(servlet的jar)-->
         <dependency>
             <groupId>javax.servlet</groupId>
             <artifactId>javax.servlet-api</artifactId>
             <version>4.0.1</version>

         </dependency>
         <!--jsp的依赖(jsp相关的jar加进来)-->
         <dependency>
             <groupId>javax.servlet.jsp</groupId>
             <artifactId>javax.servlet.jsp-api</artifactId>
             <version>2.2.1</version>

         </dependency>


     </dependencies>

截图

在这里插入图片描述

看一下项目结构:

在这里插入图片描述

在这里插入图片描述

写一个类(就是业务,也是servlet程序)

在这里插入图片描述

写第一个类AddServlet (就是相对于一个网页,路径为/add)

package shuaige.com;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/add")
//   这里我们使用了注解的方式
public class AddServlet   extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
       
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
           System.out.println("添加完成");
           //就是简单输出了一句话
           

    }
}

截图:

在这里插入图片描述

写另一个网页(路径为/data)

package shuaige.com;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/data")
public class TestServlet    extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
        doGet(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("展示数据");
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().println("下面是数据");

    }
}

截图:

在这里插入图片描述

改第一个网页的代码,设置让它自动跳转到第二个网页

就这一条核心的代码,意思就是让用户通过浏览器访问/add(第一个网页)的时候,自动跳到第二个网页/data

 resp.sendRedirect("data");
package shuaige.com;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/add")
public class AddServlet   extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);

    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
        System.out.println("添加完成");
//        在这里配置自动跳转到TestServlet   这个页面,并将对应的内容返回给用户看
//        使用重定向的技术来做这个
//        返回302,重定向url
        resp.sendRedirect("data");
    }
}

截图:

在这里插入图片描述

设置Tomcat连接

在这里插入图片描述

就这样点击就行
在这里插入图片描述

照做

在这里插入图片描述

开启Tomcat服务器
在这里插入图片描述

服务器启动之后,初始页面会出现在你的眼前

在这里插入图片描述

输入/data 发现就是它自身的页面(就是第二个网页)

在这里插入图片描述

它的后台部分

在这里插入图片描述

输入/add (第一个页面的路径,这个时候还没有点击回车)

在这里插入图片描述

点击回车(看见路径变成了/data , 其内容也是第二个网页的)

这就是重定向的操作

在这里插入图片描述

看一下后台
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
到这里,我们基于web的重定向就可以了,但是有几个特点要注意:

  1. 在进行重定向, servlet容器会将response对象上存放的数据全部清空,以免对其他的网络请求造成干扰
  2. 重定向的地址是随意的
  3. 重定向之后,浏览器地址栏里的地址会发生改变

好了,有关于重定向的操作以及概述就到这里了,谢谢大家

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197556.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QTransform的使用

目录引言基础知识缩放矩阵平移矩阵旋转矩阵矩阵乘法实际使用实现思路完整代码参考资料引言 A transformation specifies how to translate, scale, shear, rotate or project the coordinate system, and is typically used when rendering graphics. A QTransform object can …

6 -【Faster R-CNN 代码精读】之 Proposals 、 Filter Proposals

6 -【Faster R-CNN 代码精读】之 Proposals 、 Filter Proposals1、前言2、数据回顾3、计算候选框位置&#xff08;proposal coordinates&#xff09;4、筛选候选框&#xff08;filter proposals&#xff09;及相关处理1&#xff09;筛选出 预测概率 排前 2000 的proposals2&am…

TCP协议面试灵魂12 问(四)

005: 介绍一下 TCP 报文头部的字段 报文头部结构如下(单位为字节): 请大家牢记这张图&#xff01; 源端口、目标端口 如何标识唯一标识一个连接&#xff1f;答案是 TCP 连接的四元组——源 IP、源端口、目标 IP 和目标端口。 那 TCP 报文怎么没有源 IP 和目标 IP 呢&#x…

2021年下半年信息系统项目管理师《综合知识》《案例分析》《论文》真题与答案

1、“十四五”期间&#xff0c;我国关注推动政务信息化共建共用、推动构建网络空间命运共同体&#xff0c;属于()的建设内容.A、科技中国 B、数字中国 C、制造强国 D、创新强国0参考答案&#xff1a;B2、()关注的是业务&#xff0c;以业务驱动技术&#xff0c;强调IT与业务的对…

零基础学FPGA(八):可编程逻辑单元(基本结构,Xilinx+Altera)

目录日常唠嗑一、概述二、基于多路选择器的逻辑单元1、基于多路选择器的逻辑单元&#xff08;早期&#xff09;2、基于PLD结构的逻辑单元&#xff08;类CPLD&#xff09;3、基于查询表的逻辑单元&#xff08;目前主流&#xff09;三、Xilinx基本结构四、Altera 基本结构日常唠嗑…

Java语言还能火多久? 还能选择Java开发吗?

​​整个互联网行业“不进则退&#xff0c;慢进亦退”。对于用人要求持续增高的互联网企业来说&#xff0c;中高级Java程序员才是当下市场最紧缺的。 现在的你&#xff0c;是十年前你的决定&#xff0c;十年后的你&#xff0c;是现在你的决定。选择很重要 为什么选择Java开发…

代码随想录算法训练营第六十天_第九章_动态规划 | 647. 回文子串、516.最长回文子序列、动态规划总结篇

LeetCode 647. 回文子串 给你一个字符串 s &#xff0c;请你统计并返回这个字符串中 回文子串 的数目。具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被视作不同的子串。 视频讲解https://www.bilibili.com/video/BV17G4y1y7z9/?spm_i…

Linux 进程知识总结

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Linux操作…

高阶数据结构之哈希的应用

文章目录位图&#xff08;bitMap&#xff09;位图的实现将数据添加到位图中检查数据是否在位图中存在将数据的对应位置置为0位图的应用布隆过滤器为什么会有误差布隆过滤器的实现布隆过滤器的删除使用Google下的guava组件操作布隆过滤器布隆过滤器的缺陷布隆过滤器的使用场景海…

分享69个ASP源码,总有一款适合您

分享69个ASP源码&#xff0c;总有一款适合您 69个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1XXwBL0Y0nOSel9xJVqz0Ow?pwdertw 提取码&#xff1a;ertw Python采集代码下载链接&#xff1a;https://wwgn.lanzoul.com/iKGwb0kye3wj base_url "https://d…

关于JavaScript编译原理以及作用域的深入探讨

前言 几乎所有编程语言最基本的功能之一&#xff0c;就是能够储存变量当中的值&#xff0c;并且能在之后对这个值进行访问或修改。事实上&#xff0c;正是这种储存和访问变量的值的能力将状态带给了程序。 若没有了状态这个概念&#xff0c;程序虽然也能够执行一些简单的任务…

高码率QPSK调制解调方案(2.1 QPSK调制)

2 全数字高码率QPSK调制解调软件设计 2.1 QPSK调制 2.1.1 QPSK调制原理 QPSK调制即正交相移键控信号,其信号表达式为 (1) 其中,和分别表示每比特的能量和持续

​LabView​动态改变显示文本框的属性(颜色、字体)

目录 问题&#xff1a; 解决方式 1、在程序框图面板上&#xff0c;选择显示文本框&#xff0c;右键创建属性节点 2、选择属性节点为数值文本&#xff0c;依据需要改变的类型选择文本颜色或字体 3、依据下位机上传的数值大小&#xff0c;选择-条件结构类型&#xff0c;依据…

03俯瞰全局:gRPC是如何进行通信的

gRPC作为Web网站和APP后端的最常用服务提供方式之一和分布式微服务架构不同节点间的最常见通信方式之一,它自身是如何进行通信的呢,这个问题就是我们本篇文章将要研究的重点,先从全局的角度分析gRPC服务端和客户端进行通信的主要流程,再从细节剖析gRPC是如何进行高效的远程…

Qt QVector “isDetached()“

文章目录摘要尝试通过加锁解决lock&unlockQMutexLockertry_lock改变量属性Q_ASSERT参考关键字&#xff1a; ASSERT、 isDetached、 崩溃、 QVector、 Detach摘要 今天在公司填坑的时候&#xff0c;有随机获得了一个新的BUG&#xff0c;就是一直报ASSERT&#xff1a;”isD…

剑指 Offer 35. 复杂链表的复制

题目 请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 思路 方法一&#xff1a;哈希表 利用哈希表的查询特点&#xff…

【Linux】项目自动化构建工具-make/Makefile与Linux调试器-gdb使用

文章目录Linux项目自动化构建工具-make/MakefileLinux调试器-gdb使用Linux项目自动化构建工具-make/Makefile 背景 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录…

SpringBoot+Vue图书馆管理系统

简介&#xff1a;本项目采用了基本的SpringBootVue设计的图书馆管理系统。详情请看截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVue图书馆管理系统源码作者LHL项目类型Java EE项目 &#xff08;…

【iMessage苹果推推送】将看到一个可扩大选项“AppleDevelopmentPushServices”6.扩展此选项并右键单击“Appledge”>

推荐内容IMESSGAE相关 作者✈️IMEAX推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者✈️IMEAX推荐内容3.日历推 *** …

基于NOSTR协议的“公有制”版本的Twitter,去中心化社交软件Damus用后感,一个极端走向另一个极端

最近&#xff0c;一个幽灵&#xff0c;Web3的幽灵&#xff0c;在网络游荡&#xff0c;它叫Damus&#xff0c;这玩意诠释了什么叫做病毒式营销&#xff0c;滑稽的是&#xff0c;一个Web3产品却在Web2的产品链上疯狂传销&#xff0c;各方大佬纷纷为其背书&#xff0c;到底发生了什…