Response重定向

目录

 面试题:重定向与转发的区别

表单验证和获取参数

index.jsp

success.jsp


 

B 一个web资源收到客户端A请求后,B他会通知客户端A去访问另外一个web资源C ,这个过程叫重定向,

URL会变

requset请求的是转发,URL不变

常见场景:

这个方法是重定向 

package com.kuang.servlet;

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

public class RedirectServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.sendRedirect("/r/img");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

 

 

 面试题:重定向与转发的区别

重定向:  别找我  转发:  我帮你去拿

相同点:页面都会实现跳转

不同点:

重定向:url会变

转发:url不会变

 总结:1.转发是一次请求,重定向是两次2.转发不会改变url,重定向会改变3.请求转发是在服务器内部完成的,而重定向是在客户端完成的4.转发的url必须是当前web工程内部的地址,重定向可以是任意地址

index.jsp

<html>
<body>
<h2>Hello World!</h2>
<%--这里提交的路径,需要寻找到项目下的路径--%>
<%--${pageContext.request.contextPath}代表请求当前的项目--%>
    <form action="${pageContext.request.contextPath}/login" method="get">
        用户名: <input type="text" name="username"><br>
        密码: <input type="password" name="password"><br>
        <input type="submit">

    </form>


</body>
</html>

表单验证和获取参数

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<body>
<h2>Hello World!</h2>
<%--这里提交的路径,需要寻找到项目下的路径--%>
<%--${pageContext.request.contextPath}代表请求当前的项目--%>
    <form action="${pageContext.request.contextPath}/login" method="get">
        用户名: <input type="text" name="username"><br>
        密码: <input type="password" name="password"><br>
        <input type="submit">

    </form>


</body>
</html>

success.jsp


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>Success</h1>
</body>
</html>
package com.kuang.servlet;

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

public class RequestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //处理请求
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println("username:"+username);
        System.out.println("password:"+password);
        resp.sendRedirect("/r/success.jsp");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用@RestController注解时,返回的一般是JSON格式的数据,而不是重定向。如果你想要实现重定向功能,可以使用其他方式来处理。 一种方式是在方法中使用HttpServletResponse对象进行重定向。你可以在方法中使用response.sendRedirect("重定向URL")来实现重定向。这样的话,你不需要使用@RestController注解,而是使用普通的@Controller注解。 另外一种方式是在方法中返回字符串,使用"redirect:/other/controller/"来实现重定向。这种方式适用于Spring MVC项目,但在Spring Boot中使用@RestController注解时,这种方式是不起作用的。所以,如果你在Spring Boot中使用@RestController注解,你需要使用其他方式来实现重定向。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [SpringBoot项目@RestController使用 redirect 重定向无效](https://blog.csdn.net/yan88888888888888888/article/details/83502897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Spring Boot项目@RestController使用重定向redirect](https://blog.csdn.net/wang_jing_jing/article/details/115656730)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值