首页 > 编程学习 > 重定向的概述和使用(基于web方面),很简单

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

我们要知道,重定向(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 {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}@Overrideprotected 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 {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);doGet(req, resp);}@Overrideprotected 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 {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);System.out.println("添加完成");
//        在这里配置自动跳转到TestServlet   这个页面,并将对应的内容返回给用户看
//        使用重定向的技术来做这个
//        返回302,重定向urlresp.sendRedirect("data");}
}

截图:

在这里插入图片描述

设置Tomcat连接

在这里插入图片描述

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

照做

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

它的后台部分

在这里插入图片描述

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

在这里插入图片描述

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

这就是重定向的操作

在这里插入图片描述

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

在这里插入图片描述

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

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

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


本文链接:https://www.ngui.cc/article/show-861258.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000