JavaWeb开发,简化新增、修改功能中的取值问题(包括js中取html标签值,servlet中取request中的参数)

html+jquery+servlet+javaBean开发Demo

 

原开发方式:在新增和修改功能的提交时,需要先获取表单标签中的value值,再做为发送请求时的参数,发送给servlet处理

     例如:

获取此处input的value值,需通过:$("#title").val()来获取,或者使用jquery的$().serialize()序列化方法来序列化(name=value&name2=value2),这样的话,在servlet中进行取值的时候,就是request.getParameter("name");这样的话,如果参数很多,需要多次获取,比较繁琐

 

修改为序列化的方式

在jquery中,采用

var dataJson = $(":input").serializeJson();

的方式将表单参数,序列化为json对象,并使用

JSON.stringify(dataJson)

将json对象格式化为string字符串,作为参数传递(需post请求方式)给servlet

 

在servlet中,采用从流中读取的方式,读取出字符串,再通过fastJson的反序列化方式,将其转化为我们想要的对象

Entry entryObj = JSON.parseObject(entryStrJson, Entry.class);

此处的entryObj对象即是用我们请求对象传递过来的参数,反序列化而来的。

 

 

关键代码:

jquery中,引入以下代码作为工具

(function($){
    $.fn.serializeJson=function(filter){
        var serializeObj={};
        var array=this.serializeArray();
        var str=this.serialize();
        $(array).each(function(){
            if(this.name!=filter){
                if(serializeObj[this.name]){
                    if($.isArray(serializeObj[this.name])){
                        serializeObj[this.name].push(this.value);
                    }else{
                        serializeObj[this.name]=[serializeObj[this.name],this.value];
                    }
                }else{
                    serializeObj[this.name]=this.value;
                }
            }
        });
        return serializeObj;
    };
})(jQuery);

servlet中,从流中读取字符串参数的方法

String request(HttpServletRequest request, HttpServletResponse response) {
    String param= null;
    try {
        BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(), "UTF-8"));
        StringBuilder responseStrBuilder = new StringBuilder();
        String inputStr;
        while ((inputStr = streamReader.readLine()) != null) {
            responseStrBuilder.append(inputStr);
        }
        JSONObject jsonObject = JSONObject.parseObject(responseStrBuilder.toString());
        param= jsonObject.toJSONString();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return param;
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值