JavaWeb中如何实现Response重定向及其原理剖析?

更新于
2026-09-27 23:38:26
23阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1070个文字,预计阅读时间需要5分钟。

JavaWeb中如何实现Response重定向及其原理剖析?

@[toc]一. 实现重定向重定向是一个非常广泛的概念,即通过各种方法将网络请求重定向到其他位置。例如:- 网页重定向:将一个网页的请求自动跳转到另一个网页。- 域名重定向:将一个域名的请求重定向到另一个域名。- 数据包重定向:将数据包重定向到其他位置,如将数据包从服务器A重定向到服务器B。

@[toc]

一.实现重定向

重定向是一个非常广泛的概念,即通过各种方法将各种网络请求重定向到其他位置,如网页重定向、域名重定向、数据包重定向等。

如上图,A为客户端,A向服务端B请求一个资源,B返回告诉A去访问C,然后A去请求C,从而获取资源的过程为重定向。

常见的使用场景:登录操作。

1.1 重定向实战

1。我们先看一下重定向的方法函数,sendRedirect。

void sendRedirect(String var1) throws IOException;

2.新建一个类,类名为:Redirectservlet。

3.继承HttpServlet类,重写doGet。

4.写重定向,resp.sendRedirect,指向img的url。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.sendRedirect("/Response/img"); }

5.注册url,添加映射:

<servlet> <servlet-name>Redirect</servlet-name> <servlet-class>com.gowork.servlet.Redirectservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Redirect</servlet-name> <url-pattern>/red</url-pattern> </servlet-mapping>

6.启动项目,访问localhost:8080/Response/red。

7.结果如下:

访问red路径,瞬间会重定向到img。

我们打开f12,查看网络,可以看到red的状态代码为302,为重定向。

1.2 笔试题目

请你谈谈重定向与转发的区别?

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会发生变化。
  • 重定向的时候,url会发生变化。

如下图的区别:

二 重定向实例

1.我们新建立一个类,类名为:requesttext,继续基础继承HttpServlet类,重写doGet。

public class requesttext extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("现在已经进入这个请求了!"); } }

如果我们进入过这个重定向页面就会输出:现在已经进入这个请求了。

2.注册url,映射url:

<servlet> <servlet-name>newRedirect</servlet-name> <servlet-class>com.gowork.servlet.requesttext</servlet-class> </servlet> <servlet-mapping> <servlet-name>newRedirect</servlet-name> <url-pattern>/loign</url-pattern> </servlet-mapping>

如果我们访问/rednew,就会向后端的com.gowork.servlet.requesttext发出请求。

3.到项目的主页面:index.jsp。

4.这提交的路径,需要寻找到项目的路径。

我们搜索jsp maven,进入maven官网,找到jsp

<!-- mvnrepository.com/artifact/javax.servlet.jsp/jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> <scope>provided</scope> </dependency>

我们进入pom.xml,导入上面的jsp。

导入成功,我们可以明显的看到:

5.我们启动项目,访问主页,得到如下:

因为客户端编码问题,暂时显示了乱码,不过这不影响我们的查看,第一个是用户名,下面的是密码。我们在俩列里填完之后,我们点击提交:

JavaWeb中如何实现Response重定向及其原理剖析?

因为中文太长了,我测试写了1234和143314,提交之后,url就会显示出来,因为是get传输。

6.处理请求。我们在B里处理拿到需要的数据,然后再重定向。

String name =req.getParameter("username"); String pass =req.getParameter("password"); System.out.println(name+":"+pass); resp.sendRedirect("");

重定向要注意路径问题,否则容易404问题。

到了这里对应重定向需求就已经完成了。

本文共计1070个文字,预计阅读时间需要5分钟。

JavaWeb中如何实现Response重定向及其原理剖析?

@[toc]一. 实现重定向重定向是一个非常广泛的概念,即通过各种方法将网络请求重定向到其他位置。例如:- 网页重定向:将一个网页的请求自动跳转到另一个网页。- 域名重定向:将一个域名的请求重定向到另一个域名。- 数据包重定向:将数据包重定向到其他位置,如将数据包从服务器A重定向到服务器B。

@[toc]

一.实现重定向

重定向是一个非常广泛的概念,即通过各种方法将各种网络请求重定向到其他位置,如网页重定向、域名重定向、数据包重定向等。

如上图,A为客户端,A向服务端B请求一个资源,B返回告诉A去访问C,然后A去请求C,从而获取资源的过程为重定向。

常见的使用场景:登录操作。

1.1 重定向实战

1。我们先看一下重定向的方法函数,sendRedirect。

void sendRedirect(String var1) throws IOException;

2.新建一个类,类名为:Redirectservlet。

3.继承HttpServlet类,重写doGet。

4.写重定向,resp.sendRedirect,指向img的url。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.sendRedirect("/Response/img"); }

5.注册url,添加映射:

<servlet> <servlet-name>Redirect</servlet-name> <servlet-class>com.gowork.servlet.Redirectservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Redirect</servlet-name> <url-pattern>/red</url-pattern> </servlet-mapping>

6.启动项目,访问localhost:8080/Response/red。

7.结果如下:

访问red路径,瞬间会重定向到img。

我们打开f12,查看网络,可以看到red的状态代码为302,为重定向。

1.2 笔试题目

请你谈谈重定向与转发的区别?

相同点:

  • 页面都会实现跳转

不同点:

  • 请求转发的时候,url不会发生变化。
  • 重定向的时候,url会发生变化。

如下图的区别:

二 重定向实例

1.我们新建立一个类,类名为:requesttext,继续基础继承HttpServlet类,重写doGet。

public class requesttext extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("现在已经进入这个请求了!"); } }

如果我们进入过这个重定向页面就会输出:现在已经进入这个请求了。

2.注册url,映射url:

<servlet> <servlet-name>newRedirect</servlet-name> <servlet-class>com.gowork.servlet.requesttext</servlet-class> </servlet> <servlet-mapping> <servlet-name>newRedirect</servlet-name> <url-pattern>/loign</url-pattern> </servlet-mapping>

如果我们访问/rednew,就会向后端的com.gowork.servlet.requesttext发出请求。

3.到项目的主页面:index.jsp。

4.这提交的路径,需要寻找到项目的路径。

我们搜索jsp maven,进入maven官网,找到jsp

<!-- mvnrepository.com/artifact/javax.servlet.jsp/jsp-api --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> <scope>provided</scope> </dependency>

我们进入pom.xml,导入上面的jsp。

导入成功,我们可以明显的看到:

5.我们启动项目,访问主页,得到如下:

因为客户端编码问题,暂时显示了乱码,不过这不影响我们的查看,第一个是用户名,下面的是密码。我们在俩列里填完之后,我们点击提交:

JavaWeb中如何实现Response重定向及其原理剖析?

因为中文太长了,我测试写了1234和143314,提交之后,url就会显示出来,因为是get传输。

6.处理请求。我们在B里处理拿到需要的数据,然后再重定向。

String name =req.getParameter("username"); String pass =req.getParameter("password"); System.out.println(name+":"+pass); resp.sendRedirect("");

重定向要注意路径问题,否则容易404问题。

到了这里对应重定向需求就已经完成了。