现象:
在Java程序中直接输出html,形成表单,且自动提交表单。在程序中直接response写回浏览器 浏览器将自动提交表单到指定路径
适用范围:
适用于参数在后台拼接然后通过表单提交的方式提交到指定地址
方法:
1:action 中的方法
2:在方法中拼接html 的头部内容
3:在拼接表单的内容、提交的地址、以及js自动提交表单的js代码
4:代码
(1):生成页面html头部代码
/**
* 生成跳转中间页的整页HTML代码
* @return 整个html页面代码
*/
public static String buildRedirectFullPage(String url,String tSignature,String sErrorUrl) {
StringBuffer html = new StringBuffer();
html.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
html.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;
charset=utf-8\" /><title>直接跳转页面</title></head>");
html.append(buildRedirectHtml(url, tSignature,sErrorUrl));
html.append("<body></body></html>");
return html.toString();
}
(2)生成表单内容和js自动提交代码
/**
* 生成跳转JS代码
* @return 跳转JS代码
*/
public static String buildRedirectHtml(String url, String tSignature,String sErrorUrl) {
StringBuffer html = new StringBuffer();
html.append("<form id=\"epayredirect\" name=\"epayredirect\" action=\"" + url + "\"
method=\"post\">");
html.append("<input type=\"hidden\" name=\"MSG\" value=\"" + tSignature + "\"/>");
html.append("<input type=\"hidden\" name=\"errorPage\" value=\"" + sErrorUrl + "\"/>");
html.append("<input type=\"submit\" value=\"submit\" style=\"display:none;\"></form>");
html.append("<script>document.forms['epayredirect'].submit();</script>");
return html.toString();
}