session里的空属性判断问题

记录一个今天遇到的小问题:(新手编程,若有错误,希望各位及时指正,感激不尽)
首先,若后端放session时,某些属性为空值(比如下面的resume属性),则到了session里时会变为空字符串,而不是null。

原因:
首先什么是session?
“当访问服务器某个网页的时候,会在服务器端的内存里开辟一块内存,这块内存就叫做session”

由此可以看出,当访问页面的时候是已开辟了一段内存的,而null是不指向任何对象,不分配内存空间的;空字符串“”才会分配内存空间。

故此时一切对session里空属性的判断不能对null判断,而应是对空字符串判断,如下面的应为sj.resume!=' '而不能是sj.resume!=null

下面是一段前端代码

function sendResume(jid,jobName,uname){

        alert("点击确定开始投递");

        /*定义个数组放发送的变量并赋值*/
        var sj = {};

        sj.jid=jid;
        sj.jobName=jobName;
        sj.uname=uname;
        sj.sid='${session.sid }';
        sj.name='${session.name }';
        sj.resume='${session.resume}';
        /*若后端放session时,某些属性为空值,则到了session里时会变为空字符串,
            故此时一切对其空属性的判断不能对null判断,而是对空字符串判断,如下面的sj.resume!='' */
        if (sj.resume!='') {

            alert("要进入ajax了");
          $.ajax({
            /*请求类型*/
            type:"post",
            /*请求路径*/
            url:"${pageContext.request.contextPath}/application/sendResume",
            /*设置类型*/
            contentType:"application/json;charset=UTF-8",
            /*向后端传数据,stringify方法将sj转换为json格式*/
            data: JSON.stringify(sj),
            /*然后在这个弹窗里去显示出来*/
            success:function(data) {

                /*后端return的值默认都装在叫data的变量里*/
                if(data="0"){
                    alert("投递成功!");
                }else{
                    alert("投递失败!");
                }
                window.location.reload();
              }

          });
        }
        else
            alert("请先上传简历!");
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容