关于java后端重定向

这篇具有很好参考价值的文章主要介绍了关于java后端重定向。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

两个问题

  1. Servlet中,重定向之后的代码是否会继续执行?
  2. 重定向是在所有代码执行完毕后跳转,还是执行到重定向代码时立即跳转?

1.重定向之后的代码会继续执行

2.当前程序所有代码执行完毕后,才会执行重定向跳转

3.重定向之后,加上return,可让之后的代码不再执行

boolean flag = true;
if (flag) {
    response.sendRedirect("url");
    return;
}

要点:重定向和请求转发的区别

  1. 重定向是客户端行为,请求转发是服务器行为
  2. 重定向是response对象调用方法,请求转发是request对象调用方法
  3. 重定向是多次请求、多次响应,请求转发只有一次请求所以可以实现request域对象中的数据共享
  4. 重定向由服务端将重定向请求返回给客户端,再由客户端发起,而请求转发直接由服务器发起,效率要高于重定向
  5. 由于重定向客户端会出现两次请求访问,而请求转发是服务端行为,服务器直接转发,所以重定向效率较低
  6. 重定向地址栏会发生变化,请求转发url地址栏不变
  7. 重定向可以访问外部资源,而请求转发只能访问内部资源

后端重定向流程图:

关于java后端重定向

后端重定向默认以get方式

后端使用post方式重定向

public class RedirectWithPost {
  Map<String, String> parameter = new HashMap<String, String>();
  HttpServletResponse response;
  
  public RedirectWithPost(HttpServletResponse response) {
    this.response = response;
  }
  
  public void setParameter(String key, String value) {
    this.parameter.put(key, value);
  }
  
  public void sendByPost(String url) throws IOException {
    this.response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = this.response.getWriter();
    out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    out.println("<HTML>");
    out.println(" <HEAD>");
    out.println(" <meta http-equiv=Content-Type content=\"text/html; charset=utf-8\">");
    out.println(" <TITLE>loading</TITLE>");
    out.println(" <meta http-equiv=\"Content-Type\" content=\"text/html charset=GBK\">\n");
    out.println(" </HEAD>");
    out.println(" <BODY>");
    out.println("<form name=\"submitForm\" action=\"" + url + "\" method=\"post\">");
    Iterator<String> it = this.parameter.keySet().iterator();
    while (it.hasNext()) {
      String key = it.next();
      out.println("<input type=\"hidden\" name=\"" + key + "\" value=\"" + this.parameter.get(key) + "\"/>");
    }
    out.println("</from>");
    out.println("<script>window.document.submitForm.submit();</script> ");
    out.println(" </BODY>");
    out.println("</HTML>");
    out.flush();
    out.close();
  }
}

后端post重定向文章来源地址https://www.toymoban.com/news/detail-469557.html

   private  void loginTokenApi(HttpServletResponse httpServletResponse, String username, String password) throws IOException, ServletException {
        RedirectWithPost redirectWithPost = new RedirectWithPost(httpServletResponse);
        //redirectUrl请求地址
        String redirectUrl = "/loginRecordApi";
        redirectWithPost.setParameter("username", username);
        redirectWithPost.setParameter("password", password);
        redirectWithPost.sendByPost(redirectUrl);
    }

到了这里,关于关于java后端重定向的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Servlet重定向转发及自动加载

    学好Servlet必须紧紧围绕着请求和响应这两个概念 以上写的代码只是进行请求,然后再响应到客户端。请求的时候没有带数据给Servlet 下面开始写在请求的时候前端带数据到servlet里面,我们servlet要接收前端给我们的这个数据 login.jsp servlet实例 web.xml 请求时候的乱码问题: 响应

    2024年01月25日
    浏览(44)
  • chatgpt汇编,两个关于chatgpt的问题

    编写一个高级的可自主学习的AI语言模型是一个复杂且庞大的工程,需要深入的专业知识和大量的时间精力。下面是一个简化的示例,演示如何使用C++实现一个基本的可自主学习的AI语言模型。 首先,你需要定义一个类来表示AI语言模型。这个类将包含以下成员变量和函数:

    2024年02月12日
    浏览(28)
  • java关于后端怎么去接收Date、LocalDateTime类型的参数

    Date类型后端入参的格式默认为2019/01/18 11:11:11 Get方式传参 是 没有时区的影响的 @JsonFormat的作用: 返回给前端的时间是经过@JsonFormat格式化的时间。 @DateTimeFormat的作用: 前端需要按照@DateTimeForma的格式进行传参 示例: Date 类型直接作为参数的情况 Date类型属性的实体类作为参

    2024年02月05日
    浏览(45)
  • 关于.NET6后端程序(api)部署ssl证书的问题(https) 解决ing

    首先 一般情况下,后端不用https,但vs默认创建工程时,很容易勾选,这是需要将https改为http 改两处 一、把program.cs的 //app.UseHttpsRedirection(); 注释了 二、launchSettings里的iisSettings中 443改为0 再加一处 launchSettings的\\\"applicationUrl\\\": \\\"http://localhost:5001\\\"需要把s删掉 如果不改 用post会默认

    2024年01月17日
    浏览(63)
  • 板块一 Servlet编程:第四节 HttpServletResponse对象全解与重定向 来自【汤米尼克的JAVAEE全套教程专栏】

    在上一节中,我们系统的学习了请求响应在Servlet中 service() 方法的第一个形参HttpServletRequest(请求)对象,这一节中我们将学习它的兄弟, service() 方法的第二个形参HttpServletResponse(响应)对象 在我们已然熟悉的浏览器访问Servlet的过程中。Request和Response 对象分别代表请求和

    2024年02月21日
    浏览(40)
  • 解决 IDEA出现 java: 程序包javax.servlet不存在 问题

            1.点击File → Project Strcture 2.转到如下页面:第一步:点击Libraries,第二步:点击+   3.出现New Project Library,点击Java   4.弹出如下页面:在Tomcat解压文件夹下选择lib文件找到servlet-api.jar,点击ok   5.应用该包,如图所示,点击Apply即可  完成以上步骤Tomcat就可以运行啦

    2024年02月04日
    浏览(57)
  • 解决后端无法对前端的ajax请求重定向

    本章目录: 问题描述 AJAX请求后端直接重定向失败 解决方案 后端拦截请为响应头添加 重定向标志 后端拦截器为响应头添加 重定向路径 前端响应拦截器获取响应头数据,并通过location.href = url 完成页面跳转 本来想在拦截器里设置未登录用户访问指定接口时,跳转到登录页面

    2024年02月15日
    浏览(75)
  • JavaWeb《后端内容:1. Tomcat - Servlet - Thymeleaf》

    目录 1. 基础概念 1.1 BS架构和CS架构 1.2 Tomcat图解 2.TomCat 2.1 IDEA配置web项目和tomcat 2.2 idea启动TomCat因为端口号失败的问题 3.Servlet使用流程 3.1 Servlet简单图解 3.2 Servlet导入依赖  3.3 编写Servlet和add.html 3.4 试着使用Jdbc和Dao层连接水果库存数据库 0. 基础结构的代码 1. 数据库表创建

    2024年02月03日
    浏览(47)
  • 关于Nginx下301重定向域名的方法

    在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。 linux中nginx 301重定向跳转方法总结,有需要的朋友可参考一下。 第一种情况 :访问aaaaaaa站定向到bbbbbbbbbbb站 代码如下: server { server_naaaaaaame www.aaaaaaa.com ; r

    2024年02月10日
    浏览(39)
  • LeetCode Java两个单链表相交的一系列问题

    题目描述 单链表可能有环,也可能无环。给定两个单链表的头节点 head1和head2,这两个链表可能相交,也可能不相交。 请实现一个函数,如果两个链表相交,请返回相交的第一个节点;如果不相交,返回null 即可。 要求:如果链表1的长度为N,链表2的长度为M,时间复杂度请

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包