提交application/x-www-form-urlencoded类型数据

提交application/x-www-form-urlencoded类型数据



发送application/x-www-form-urlencoded接收通知

举例:发送通知以及接收通知

说明:此demo非常简化,使用tomcat服务器运行,本文说明:

  • 包含文件

    1.SendNotification.jsp:发送通知页面,表单提交数据的类型为multipart/x-www-form-urlencoded

    2.RecvNotification.jsp:接收通知页面

    3.页面简单使用了Bootstrap样式

  • 接收参数方式 :request.getParameter(“param”);

Demo下载地址:

http://download.csdn.net/detail/musuny/8761707


关键代码

  • SendNotification.jsp

    <form action="RecvNotification.jsp" method="post" enctype="application/x-www-form-urlencoded">
    <table class="table-responsive">
        <tr>
            <td>
                <span>message:</span>
                <textarea  rows="5" class="form-control" name="message" id="message" content=""
                           placeholder="例如:PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8%2BPE1vQmFvQWNjb3VudCBNZXNzYWdlVHlwZT0iTm90aWZ5UGF5UmVzdWx0Ij48T3JkZXJObz5NMjAxNTA1NTYwOTg4MzY8L09yZGVyTm8%2BPFRyYWRlQW10PjUwMDAuMDA8L1RyYWRlQW10PjxDdXN0UGFyYW0%2BMTIzPC9DdXN0UGFyYW0%2BPFRyYWRlVGltZT48L1RyYWRlVGltZT48L01vQmFvQWNjb3VudD4="></textarea>
                <br/>
            </td>
        </tr>
        <tr>
            <td>
                <span>signature:</span>
                <textarea  class="form-control" rows="5" name="signature" id="signature"
                       placeholder="例如:33D13212133895FB6AF9C1556948996AC4A636F6A98E1E9DDE6296D0179E7466BF04C44F97EA3E6A29B69FED16C36C14BD8BFAFCB04806579573DC2F560DDB9820B4CC242038B33BC444C2C143D76EA9AD4F8F824EB9D1B5963DC867AA8B0C11D5B7A2D981151642E6DEDA845D94D9731ECD42E668AEA0D7EDD00C5817EF5DE8"
                        content=""></textarea>
                <br/>
            </td>
        </tr>
    </table>
    
    <input type="button" onclick="setDefaultValue()" style="margin-left: 200px;" value="使用默认值" class="btn-lg btn-success"/>
    <input type="submit" value="模拟发送通知" style="margin-left: 200px;" class="btn-lg btn-danger"/>
    </form>
  • RecvNotification.jsp
<%
    String ip = request.getHeader("X-Forwarded-For");
    if (ip == null)
        ip = request.getRemoteHost();
    Map param = new HashMap();
    param.put("ip", ip);
    String message = request.getParameter("message");
    param.put("message", message);
    String signature = request.getParameter("signature");
    param.put("signature", signature);
    String messageDecode = URLDecoder.decode(message, "UTF-8");
    String base64decoded = new String(new BASE64Decoder().decodeBuffer(messageDecode), "GBK");
    param.put("base64decoded", base64decoded);
    request.setAttribute("notification", param);
    Map notification = (Map) request.getAttribute("notification");
%>
<h2>接收到的支付通知消息</h2>

<div class="table-responsive">
    <table border="1" class="table table-bordered table-hover">
        <thead>
        <td class="col-lg-1 ">字段名</td>
        <td class="col-lg-6 ">接收到的值</td>
        <td class="col-lg-3 ">说明</td>
        </thead>
        <tr>
            <td class="col-lg-1 ">IP地址</td>
            <td class="col-lg-6 "><%=notification.get("ip")%>
            </td>
            <td class="col-lg-3 ">支付通知方IP地址</td>
        </tr>
        <tr>
            <td class="col-lg-1 ">message</td>
            <td class="col-lg-6 "><textarea rows="5" class="form-control" cols="300" readonly><%=notification.get("message")%></textarea>
            </td>
            <td class="col-lg-3 ">message经过base64编码以及URLEncode UTF-8编码</td>
        </tr>
        <tr>
            <td class="col-lg-1 ">message明文</td>
            <td class="col-lg-6 "><textarea rows="5" class="form-control" cols="300" readonly><%=notification.get("base64decoded")%></textarea>
            </td>
            <td class="col-lg-3 ">message经过base64解码以及URLEncode UTF-8解码</td>
        </tr>
        <tr>
            <td class="col-lg-1">signature</td>
            <td class="col-lg-6 "><textarea rows="5" class="form-control" cols="300" readonly><%=notification.get("signature")%></textarea>
            </td>
            <td class="col-lg-3 ">签名信息</td>
        </tr>
    </table>
</div>

我的联系方式

  • Q Q:1250052380
  • 邮箱:[email protected]
时间: 2024-07-31 14:32:08

提交application/x-www-form-urlencoded类型数据的相关文章

easyui不提交window中的form表单数据

<form id="ff" method="post">, <div id="win" class="easyui-window" title="系统登录" style="width: 345px; height: 180px; padding: 10px" data-options="modal:true,collapsible:false,minimiza

ligerui_实际项目_003:form中添加数据,表格(grid)里面显示,最后将表格(grid)里的数据提交到servlet

实现效果: "Form"中填写数据,向本页"Grid"中添加数据,转换成Json数据提交,计算总和,Grid文本框可编辑,排序 图片效果: 总结: //display属性: editor:grid表格可以编辑其类容: //select类型:select+render实现选择填充效果 editor:{ type:"select", data:[{id:"1",text:"品牌一"},{id:"2&q

提交multipart/form-data类型数据

提交multipart/form-data类型数据 @(spring mvc)[文件上传|附加信息] 举例:工行签名证书上传保存 说明:框架使用的是spring mvc 4,接口测试工具使用postman,本文要实现的功能有: 文件上传 :文件上传信息填写在form-data区域,字段名即文件名,文件内容通过postman控件选择,存储在mysql数据库中类型为BLOB,对应的java类属性为byte[] 文件存储 :直接将文件存储到数据库,而非存储文件的URL: 其他信息 :同时上传文件的其他

Struts2+Jquery实现ajax并返回json类型数据

主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数据 网上看到很多关于Struts2+ajax+jquery+json的例子,但是很多都不完整,也看不明白,主要原因是返回jsno类型数据和原来的返回字符串类型数据不一样,并且网友们实现步骤没有说清楚,让初学的朋友捉摸不透到底该怎么做. 我做了个简单的demo,供网友们学习,最后我会附上链接,可以下载整个de

Ajax方式提交表单的常见编码类型总结

用Ajax方式提交表单,决定编码类型的是请求头中Content-Type,不同的值对应不同的提交和回调处理方式.而且,在项目中我们会用到前端的库或者框架,他们对于不同的Content-Type也有不同的参数写法,本文将以jQuery和AngularJS,加上XMLHttpRequest共三种方式为例,详细介绍不同Content-Type的发送请求的方式.本文考虑的Content-Type类型,共有如下几种: application/x-www-form-urlencoded multipart/

【整理】Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

[整理]Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据 发送数据 //当前页面地址 string currentUrl = Request.Url.ToString(); string fileName = "复制文件"; string url = currentUrl.Substring(0, currentUrl.LastIndexOf('/')) + "/Default2.aspx?id=" + fileNa

6.Struts2简单类型数据的接受

简单类型数据的接收 在Action类中定义与请求参数同名的属性, 即,要定义该属性的set方法,便能够使struts2自动接收请求参数并赋予同名属性. 简单类型数据的接受举例: 新建工程项目,名称为:receive_simple_params. Simple_Params_Action.java源码如下: package actions; public class Simple_Params_Action { private String username; private int age; p

Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

发送字符串数据发送数据 string strId = "guest"; string strPassword = "123456"; string postData = "userid=" + strId; postData += ("&password=" + strPassword); byte[] data = Encoding.UTF8.GetBytes(postData); // Prepare web re

Node.JS的表单提交及OnceIO中接受GET/POST数据的三种方法

OnceIO 是 OnceDoc 企业私有内容(文档)管理系统的底层Web框架,它可以实现模板文件.静态文件的全缓存,运行起来完全不需要I/O操作,并且支持客户端缓存优化,GZIP压缩等(只压缩一次),拥有非常好的性能,为您节约服务器成本.它的模块化功能,可以让你的Web进行分布式存储,在一个扩展包里即可包含前端.后端和数据库定义,只需通过添加/删除目录的方式就可实现功能删减,实现真正的模块化扩展.目前 OnceIO 已经开源,本文主要介绍node.js语言中的表单提交及OnceIO中接受GET