java实现重定向(springboot)

一、如何重定向

最近有业务需要用到重定向,摸索了很久,下面是代码:

@RestController
public class FirstController {

    @PostMapping("/test")
    public void login(HttpServletRequest req,HttpServletResponse resp) throws IOException {

        // 构造重定向的路径:
        String username = req.getParameter("username");
        String password = req.getParameter("password ");           
        url.append("http://192.168.xx.xx/login?").append("username=").append(username).append("&")
                .append("password=").append(password);
        String redirectToUrl = url.toString();
        // 发送重定向响应:
        resp.sendRedirect(redirectToUrl);
    }
}

实现的功能:访问/test接口,将参数username和password拼接在需要重定向的url上一起重定向到指定的地址。

二、对于参数的获取

在接口参数里添加HttpServletRequest request

1、如果是get请求或者post的form-data类型使用如下方法:

//values是参数的值,可以是参数的名称
String value = request.getParameter(key);

2、如果是post请求的body类型:

//获取到body的json字符串
private String getBodyData(HttpServletRequest request){
    LOG.info("get request body");
    StringBuffer data = new StringBuffer();
    String line;
    BufferedReader reader = null;
    try {
        reader = request.getReader();
        while (null != (line = reader.readLine()))
            data.append(line);
    } catch (IOException e) {
        LOG.warn("get request body error: ", e);
        throw new CustomSsoException("获取body异常");
    } finally {
        if (reader != null){
            try {
                reader.close();
            } catch (IOException e) {
                LOG.error("reader close error:",e);
            }
        }
    }
    return data.toString();
}
//利用上面的方法获取到body的json字符串,然后取值
//value是需要取得参数的值,key是参数名
public void getValue(HttpServletRequest request){
    String jsonBody = getBodyData(request);
    JSONObject jsonObject = JSON.parseObject(jsonBody);
    String value = jsonObject.getString(key)
}

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值