/**

* 准备中间页面所需参数

* add by linyan  2014-9-22

* @param url

* @param params

* @param charset

* @return

*/

public static String[] operateParameter(String url,Map<String, String> params,String charset){

String[] ret=new String[2];

if(url!=null&&!"".equals(url)){

if(charset!=null&&!"".equals(charset)){

StringBuffer sb=new StringBuffer();

String parameterUtil=getParams(params,charset);

sb.append("<html>");

sb.append("<head>");

sb.append("<script type=\"text/javascript\">");

sb.append("function redirectUrl() {");

sb.append("document.form0.submit();");

sb.append("}");

sb.append("</script>");

sb.append("</head>");

sb.append("<body onload=\"redirectUrl()\">");

sb.append("<form name=\"form0\" action=\""+url+"\" method=\"post\">");

if(parameterUtil!=null){

sb.append(parameterUtil);

}

sb.append("</form>");

sb.append("</body>");

sb.append("</html>");

ret[0]=ThirdPayConstants.RECOD_SUCCESS;

ret[1]=sb.toString();

System.out.println("报文===="+sb.toString());

//把当前拼接的html参数通过response写到当前页面  完成自动提交功能

reponseWrite(sb.toString(),charset);

}else{

ret[0]=ThirdPayConstants.RECOD_FAILD;

ret[1]="form表单编码方式不存在";

}

}else{

ret[0]=ThirdPayConstants.RECOD_FAILD;

ret[1]="url不存在";

}

return ret;

}

/**

* 获取中间页面的form表单参数

* @param params

* @return

*/

private static String getParams(Map<String, String> params,String charset) {

// TODO Auto-generated method stub

String htmlParamss=null;

try{

if(params!=null){

StringBuffer sb=new StringBuffer();

Iterator iter = params.entrySet().iterator();

while (iter.hasNext()) {

Map.Entry entry = (Map.Entry) iter.next();

Object key = entry.getKey();

Object val = entry.getValue();

sb.append("<input type=\"hidden\" name='"+key.toString()+"\' value='"+val.toString()+"' />");

}

htmlParamss=sb.toString();

}

}catch(Exception e){

e.printStackTrace();

}

return htmlParamss;

}

/**

* 使用response将html拼接页面写到当前浏览器端完成自动提交功能

* @param htmlParamss

* @param charset

*/

public static void reponseWrite(String htmlParamss,String charset) {

try {

HttpServletResponse response = ServletActionContext.getResponse();

response.setContentType("text/html; charset=utf-8");

PrintWriter pw;

pw = response.getWriter();

pw.write(htmlParamss) ;

pw.flush() ;

pw.close() ;

} catch (IOException e) {

e.printStackTrace();

}

}

使用response将html拼接页面写到当前浏览器端完成自动提交功能的更多相关文章

  1. 转:HTML5页面如何在手机端浏览器调用相机、相册功能

    HTML5页面如何在手机端浏览器调用相机.相册功能 开发微信端浏览器访问的HTML5的页面,页面中有一个<input id="input" type="file&q ...

  2. HTML5页面如何在手机端浏览器调用相机、相册功能

    最近在做一个公司的保险信息处理系统项目,开发微信端浏览器访问的HTML5的页面,页面中有一个<input id="input" type="file"/& ...

  3. 如何在一个网站或者页面写js

    如何在一个网站或者页面写js: 1. JS的分层(功能):jquery(tools)  组件(ui)  应用(app).mvc(backboneJS) 2. JS的规划(管理):避免全局变量和方法(命 ...

  4. IDEA在jsp页面写out.print()代码报错

    如题,小编以前用myeclipse,eclipse的时候,在jsp里写java代码都是可以的,现在我换成了IDEA,却莫名报错 而且没有代码提示,比如说下图这样的,,虽然运行还是能运行...但对强迫症 ...

  5. wsgiref手写一个web服务端

    ''' 通过wsgiref写一个web服务端先讲讲wsgiref吧,基于网络通信其根本就是基于socket,所以wsgiref同样也是通过对socket进行封装,避免写过多的代码,将一系列的操作封装成 ...

  6. 网页页面NULL值对浏览器兼容性的影响

    网页页面NULL值对浏览器兼容性的影响       近期做项目中一个页面中的input radio出现浏览器兼容性问题. 主要问题: 在谷歌浏览器,360急速模式和搜狗急速模式中给radio初始动态赋 ...

  7. 哇塞,原来自己写 Google Chrome 浏览器扩展(插件)这么容易!

    1. 首先新建一个记事本,命名为 manifest.json,这是写 Google Chrome 浏览器扩展必须的文件 { "manifest_version": 2, " ...

  8. js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的

    js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...

  9. 黄聪:Pjax无刷新跳转页面实现,支持超链接与表单提交

    什么是pjax? 当你点击一个站内的链接的时候,不是做页面跳转,而是只是站内页面刷新.这样的用户体验,比起整个页面都闪一下来说, 好很多. 其中有一个很重要的组成部分, 这些网站的ajax刷新是支持浏 ...

随机推荐

  1. 猿族崛起-Alpha版本发布2

    标准开头 Q A 这个作业属于哪个课程 课程链接 这个作业要求在哪里 要求 团队名称 猿族崛起 这个作业的目标 完成alpha版本未完成的功能,并进行拓展 Sname Sno 向宏力 20173106 ...

  2. beta版本——第六次冲刺

    第六次冲刺 (1)SCRUM部分☁️ 成员描述: 姓名 李星晨 完成了哪个任务 修改注册时时候弹窗提醒不正确的问题 花了多少时间 0.5h 还剩余多少时间 1.5h 遇到什么困难 没有 这两天解决的进 ...

  3. c++查询特定字符串位置

    size_t find (const string& str, size_t pos = 0) const noexcept;(摘自c++官网:std::string::find) size_ ...

  4. centos服务器上git clone下载加速

    最近在服务器上直接git clone github上的仓库,下载速度只有十几KB,简直不要太慢! 网上搜了一些加速的,自己于是写了下面的总结. 1. nslookup命令 如果执行这个命令找不到,请先 ...

  5. ARTS-week1

    Algorithm 小A 和 小B 在玩猜数字.小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜.他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的 ...

  6. mysql-5.7.18 免安装版安装配置(Windows)

    mysql-5.7.18 免安装版安装配置(Windows) 一.在Mysql官网下载Mysql-5.7.18的ZIP文件 下载链接为:https://dev.mysql.com/downloads/ ...

  7. Python中实现count(distinct )

    假设一个表有6个字段c1,c2,c3,c4,c5,c6,有如下的sql语句: select c1,count(distinct(c6)) from tbl where c3>1 group by ...

  8. Web API design

    Web API design 28 minutes to read Most modern web applications expose APIs that clients can use to i ...

  9. nginx配置ssl加密(单/双向认证、部分https)

    nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换( ...

  10. 桥接:JS调用安卓方法报错Uncaught Error: Error calling method on NPObject

    说一说自己粗心踩到的一个不算坑的坑: 项目是安卓webview嵌入SPA单页应用页面,涉及到JS调用原生安卓方法,但就是在调用安卓方法时死活一直报错xxx  NPObject一堆错误.写了一个测试页面 ...