详解Java从后台重定向(redirect)到另一个项目的方法

(1)通过ModelAndView跳转

@RequestMapping("alipayforward")
  public ModelAndView alipayforward(HttpServletRequest req, HttpServletResponse resp) throws Exception {
    String contNo =req.getParameter("contNo");
    logger.info("访问/downloadRequestElecCont.action");
    String url = "redirect:http://baidu.com/downloadRequestElecCont.action?contNo="+contNo;
    return new ModelAndView(url);
  } 

(2)通过HttpServletResponse跳转

@RequestMapping("alipayforward/{contNo}")
  public void alipayforward(@PathVariable("contNo") String contNo, HttpServletRequest req, HttpServletResponse resp) throws Exception {
    //String contNo =req.getParameter("contNo"); //保单号
    logger.info("访问/downloadRequestElecCont.action");
    resp.sendRedirect("http://baidu.com/downloadRequestElecCont.action?contNo="+contNo);
  } 

(3)通过redirect返回String类型跳转,注意这种方法不允许Spring控制器用@RestController注解,因为@RestController相当于类中的所有方法都标注了@ResponseBody,这些方法不会返回一个视图,而是返回一个json对象,这样的话只是在页面上打印出字符串,而不跳转。控制器用@Controller注解即可

@RequestMapping("alipayforward")
  public String alipayforward(@RequestParam("contNo") String contNo, HttpServletRequest req, HttpServletResponse resp) throws Exception {
    //String contNo =req.getParameter("contNo"); //保单号
    logger.info("访问/downloadRequestElecCont.action");
    return "redirect:http://baidu.com/downloadRequestElecCont.action?contNo="+contNo;
  } 

下面是关于传参问题

重定向传参为get方式,如果传参数较多,可以封装到map或modelMap中

@RequestMapping(params = "action=alipayforward")
  public String alipayforward(Map modelMap){
    modelMap.put("userName", "呵呵");
    modelMap.put("password", "123456");
    modelMap.put("age", "25");
    return "redirect:http://localhost:8088/era/user/alipayforward4?modelMap="+modelMap;
  }

另一个项目用实体类对象接收

@RequestMapping("alipayforward4")
  public void alipayforward4(User user, HttpServletRequest req) throws Exception {
    System.out.println(user.getPassword());
    String modelMap = req.getParameter("modelMap");
    System.out.println(modelMap);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JAVA面试题之Forward与Redirect的区别详解

    前言 当用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相互转发请求,但是用户是感觉不到请求转发的.根据转发方式的不同,可以区分为直接请求转发(Forward)和间接请求转发(Redirect),那么这两种转发方式有何区别呢?本篇在回答该问题的同时全面的讲解两种请求转发方式的原理和区别. [关键考点] •请求转发的含义: •Forward转发请求的原理: •Redirect转发请求的原理. [考题分析] Forward和Redir

  • 详解Java从后台重定向(redirect)到另一个项目的方法

    (1)通过ModelAndView跳转 @RequestMapping("alipayforward") public ModelAndView alipayforward(HttpServletRequest req, HttpServletResponse resp) throws Exception { String contNo =req.getParameter("contNo"); logger.info("访问/downloadRequest

  • 详解JAVA生成将图片存入数据库的sql语句实现方法

    详解JAVA生成将图片存入数据库的sql语句实现方法 实现代码: 注释很清楚,不在重述~ public class Image2Hex { public static void main(String[] args) { try{ //存放图片的文件夹 File list = new File("d:/qmx"); File[] lists = list.listFiles(); String name; //生成的语句存放文件 PrintWriter pw = new PrintWr

  • 详解Java Web如何限制访问的IP的两种方法

    前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问.下面我简单介绍一下第一种方式,着重介绍第二种. 第一种方式(Tomcat配置项配置允许或限制IP访问) 这种是最简单的快捷的,主要就涉及Tomcat的server.xml配置. 第一步:找到server.xml文件在哪,在Tomcat的目录下的conf文件夹下. 第二步:打开server.xml文件

  • 详解Java编程中线程同步以及定时启动线程的方法

    使用wait()与notify()实现线程间协作 1. wait()与notify()/notifyAll() 调用sleep()和yield()的时候锁并没有被释放,而调用wait()将释放锁.这样另一个任务(线程)可以获得当前对象的锁,从而进入它的synchronized方法中.可以通过notify()/notifyAll(),或者时间到期,从wait()中恢复执行. 只能在同步控制方法或同步块中调用wait().notify()和notifyAll().如果在非同步的方法里调用这些方法,在

  • 详解Java中的线程让步yield()与线程休眠sleep()方法

    线程让步: yield() yield()的作用是让步.它能让当前线程由"运行状态"进入到"就绪状态",从而让其它具有相同优先级的等待线程获取执行权:但是,并不能保证在当前线程调用yield()之后,其它具有相同优先级的线程就一定能获得执行权:也有可能是当前线程又进入到"运行状态"继续运行! 示例: class ThreadA extends Thread{ public ThreadA(String name){ super(name); }

  • 详解Java的内置异常以及创建自定义异常子类的方法

    内置异常子类 在标准包java.lang中,Java定义了若干个异常类.前面的例子曾用到其中一些.这些异常一般是标准类RuntimeException的子类.因为java.lang实际上被所有的Java程序引入,多数从RuntimeException派生的异常都自动可用.而且,它们不需要被包含在任何方法的throws列表中.Java语言中,这被叫做未经检查的异常(unchecked exceptions ).因为编译器不检查它来看一个方法是否处理或抛出了这些异常. java.lang中定义的未经

  • 详解使用Nginx和uWSGI配置Python的web项目的方法

    基于python的web项目,常见的部署方法有: fcgi:用spawn-fcgi或者框架自带的工具对各个project分别生成监听进程,然后和http服务互动. wsgi:利用http服务的mod_wsgi模块来跑各个project. 不过还有个uwsgi,它既不用wsgi协议也不用fcgi协议,而是自创了一个uwsgi的协议,据作者说该协议大约是fcgi协议的10倍那么快.uWSGI的主要特点如下: 超快的性能. 低内存占用(实测为apache2的mod_wsgi的一半左右). 多app管理

  • 详解Java中的sleep()和wait()的区别

    详解Java中的sleep()和wait()的区别 对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态. 在调用sleep()方法的过程中,线程不会释放对象锁. 而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象

  • 详解Java快速上手用户后台管理系统

    目录 主要功能 登录功能 管理员列表 用户列表 订单管理 主要功能 管理员登录功能.管理员列表操作.用户列表操作.订单管理 登录功能 设计思路:前端页面获取输入的数据,然后发送Ajax请求,在servlet中获取数据并调用service层中的方法进行处理,service层中调用dao层的实现方法,最终servlet返回一个结果集,判断登录是否成功. login.html主要功能代码: <script> $(function () { $("#btn_login").clic

  • 详解 Java Maximum redirects (100) exceeded

    详解 Java Maximum redirects (100) exceeded 这些是可以用于定制默认HttpClient实现行为的参数: 'http.protocol.handle-redirects':定义了重定向是否应该自动处理.这个参数期望得到一个Java.lang.Boolean类型的值.如果这个参数没有被设置,HttpClient将会自动处理重定向. 'http.protocol.reject-relative-redirect':定义了是否相对的重定向应该被拒绝.HTTP规范需要

随机推荐