您的位置:首页技术文章
文章详情页

java实现响应重定向发送post请求操作示例

【字号: 日期:2022-09-03 08:50:42浏览:4作者:猪猪

本文实例讲述了java实现响应重定向发送post请求操作。分享给大家供大家参考,具体如下:

关于重定向我们用的比较多的还是redirect:重定向,默认发送的get请求。

return 'redirect:/index';

但有时候请求地址必须为post请求,比如security登录就只能接收post请求,下面来看一下如何后台如何发送post请求响应重定向。

首先可以定义一个map,用于存放参数键值对

Map<String, String> parameter = new HashMap<String, String>();

添加参数方法

public void setParameter(String key, String value) { this.parameter.put(key, value);}

发送请求代码:

//url参数为请求地址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();}

RedirectWithPost请求类全部代码

import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.PrintWriter;import java.util.HashMap;import java.util.Iterator;import java.util.Map; /** * 用POST方式 重定向 * * @author royFly */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(); }}

实例化RedirectWithPost请求类

RedirectWithPost redirectWithPost = new RedirectWithPost(response);//redirectUrl请求地址String redirectUrl = '/login';

添加请求参数

redirectWithPost.setParameter('username', nickname);redirectWithPost.setParameter('password', openid);

调用方法,发送请求

redirectWithPost.sendByPost(redirectUrl);

更多关于java相关内容感兴趣的读者可查看本站专题:《Java Socket编程技巧总结》、《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

标签: Java
相关文章: