java實現(xiàn)響應重定向發(fā)送post請求操作示例
本文實例講述了java實現(xiàn)響應重定向發(fā)送post請求操作。分享給大家供大家參考,具體如下:
關于重定向我們用的比較多的還是redirect:重定向,默認發(fā)送的get請求。
return "redirect:/index";
但有時候請求地址必須為post請求,比如security登錄就只能接收post請求,下面來看一下如何后臺如何發(fā)送post請求響應重定向。
首先可以定義一個map,用于存放參數(shù)鍵值對
Map<String, String> parameter = new HashMap<String, String>();
添加參數(shù)方法
public void setParameter(String key, String value) {
this.parameter.put(key, value);
}
發(fā)送請求代碼:
//url參數(shù)為請求地址
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";
添加請求參數(shù)
redirectWithPost.setParameter("username", nickname);
redirectWithPost.setParameter("password", openid);
調用方法,發(fā)送請求
redirectWithPost.sendByPost(redirectUrl);
更多關于java相關內容感興趣的讀者可查看本站專題:《Java Socket編程技巧總結》、《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
SpringMVC源碼之HandlerMapping處理器映射器解析
這篇文章主要介紹了SpringMVC源碼之HandlerMapping處理器映射器解析,在Spring?MVC中,HandlerMapping處理器映射器用于確定請求處理器對象,請求處理器可以是任何對象,只要它們使用了@Controller注解或注解@RequestMapping,需要的朋友可以參考下2023-08-08
Intellij 下 mybatis 插件 MyBatisCodeHelperPro破解步驟詳解
這篇文章主要介紹了Intellij 下 mybatis 插件 MyBatisCodeHelperPro破解步驟,本文分步驟給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
解決springboot3:mybatis-plus依賴錯誤:org.springframework.beans.fac
這篇文章主要介紹了解決springboot3:mybatis-plus依賴錯誤:org.springframework.beans.factory.UnsatisfiedDependencyException問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
WeakHashMap?和?HashMap?區(qū)別及使用場景
這篇文章主要為大家介紹了WeakHashMap?和?HashMap?的區(qū)別是什么以及何時使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
IDEA 2020.1打開時閃退的問題及解決方法(完美解決方法)
這篇文章主要介紹了IDEA 2020.1打開時閃退問題及解決方法,本文給大家分享我的處理方案,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
SpringBoot?+?Redis如何解決重復提交問題(冪等)
在開發(fā)中,一個對外暴露的接口可能會面臨瞬間的大量重復請求,本文就介紹了SpringBoot + Redis如何解決重復提交問題,具有一定的參考價值,感興趣的可以了解一下2021-12-12

