使用ajax判断用户是否登陆成功后跳转页面

求助!我按照教程做了一个登陆页面,用ajax提交表单的数据,并且登陆成功后跳转到首页。而且每次点登陆session是有了数据,它就是不跳转到指定的页面。目前就只有一次点击登陆后跳转到页面。是不是我的代码有错误?
1. 图片说明
2. 图片说明
3. 图片说明

4个回答

不知道你是否了解浏览器的开发者模式,如果知道的话就太好了。前端调试流程:

F12 打开浏览器的开发者模式,看控制台有没有错误,如果没有说明 ajax 请求正常处理了,然后再调试 switch 代码,看看具体进入了哪个分支。
在 switch 代码之前写一行 debugger; 语句,浏览器就会进入断点调试默认,然后看状态,逐步调试看看最后进入了什么分支。
再反向分析后台请求返回的是否正确。
qq_45440695
qq_45440695 控制台没看到错误,总感觉是message和switch 里调试出了问题。不想纠结了,用了php获取表单的方法获取了,不用ajax获取了。
7 个月之前 回复

如果后台返回的结果正确,确实的执行跳转语句无效的话建议换一种跳转方式

qq_45440695
qq_45440695 现在不知道是不是无效,登陆了几十次就只有一次能登陆后跳转到首页,switch可能判断方式有问题。
7 个月之前 回复

你的alert的方法有米有执行,如果有说明你window.href跳转的路径有问题,或者是你还有些什么fiter的管理,必须满足其他条件这个页面才允许你出现

qq_45440695
qq_45440695 应该是php里message里的错误。现在有时候能跳转,有时候不能。
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
登陆界面添加功能判断用户是否是第一次登陆,让他修改密码
1.现在数据库有字段判断是否是第一次登陆比如a 2.修改密码也有ajax的弹框 3.登陆的按钮使用的是submit提交。 问题是如何在submit提交,判断用户登录是否成功后。 然后使用a判断是否第一次登陆。如果是第一次登陆。 再跳回登陆界面并且跳出密码修改框。 现在的问题是:java如何实现这个跳转回页面并跳出密码修改框
ajax存取值 实现跳转页面问题
``` $(document).ready(function() { $("#zhuce").on("click", function() { var usename = $("#username").val(); $.ajax({ type : 'post', url : "/aidazhe-project/zhuceu", data : { uname : usename, }, dataType : "json", success : function(data) { if (data.flag == 'ok') { $("#div1").html(data.msg); sessionStorage.setItem("haha", "ok"); /* Map<String,String>map=new HashMap<String,String>(); map.put("hah",ok); */ } else { $("#div1").html(data.msg); } } }); /* alert(注册成功,请登录); */ }); }); function show() { /* String str =map.get("hah").toString(); */ if ( sessionStorage.getItem("haha")=='ok') { alert("注册成功"); sessionStorage.clear(); window.location = "Login.jsp" } } ``` 这是我写的一个注册页面转登录的方法 注册跳转/aidazhe-project/zhuceu判断用户名是否重复 ‘ok’就是不重复 然后跳到下面的show()方法中 弹框 跳转 我现在遇到的问题是 第一次 输入已有的用户名 会提示用户名已存在 改新用户正常注册跳转 但是 现在不刷新网页 输入任何已注册的用户 都不会提示用户已存在 而是直接跳转注册成功 sessionStorage.setItem这种方法会在服务器产生缓存 有没有更好的存取值的方法啊 因为上 面用的是ajax 所以没有页面跳转的 我的能力只能在下面加一个方法 希望哪位前辈能帮我解决一下
jquery ajax方法调用在session超时以后如何跳转到登录页面?
jquery ajax方法调用在session超时以后如何跳转到登录页面? session超时以后虽然被过滤器过滤到了,但是并不会跳转到登录页面请求具体的解决方法。 我参考了这篇文章,但是我调用ajaxStart不起作用。 http://www.blogjava.net/vickzhu/archive/2009/06/05/280223.html ext jquery 用户访问超时(ext session过期) 解决两种情况下的用户访问超时。 a)普通http请求的session超时。 b)异步http请求的session超时,使用ext后大部分的界面刷新都是异步的ajax请求。 不管是那种类型的http请求总是可以由一个过滤器来捕捉。 分类:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。 其实对于常见的ajax框架,header中还有标示自己身份的header信息。 对于普通的http请求,发现session超时后直接重定向到一个超时页面,显示访问超时。 对于异步http请求,发现session超时后则向请求的response中写入特定的超时头信息,客户端ajax对象检测 头信息,发现有超时状态标志后调用显示超时信息的javascript方法,提示用户访问超时。 服务器端session超时后在过滤器中为response添加新的头信息,标记该请求超时: if(r.getHeader("x-requested-with")!=null && r.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ response.setHeader("sessionstatus","timeout"); } 使用Ext.Ajaxt对象完成异步请求的交互,Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)。 注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件。在该事件的回调函数里面判断 访问请求是否超时。使用Ext.Ajax对象的好处是,只需要引入一个包含了几行超时处理代码的js文件,就可以 为当前应用增加超时处理功能,原有代码不需要做任何修改。 使用Ext.Ajaxt对象完成异步请求交互,假如checkUserSessionStatus是你的回调方法,每个页面引用: Ext.Ajax.on('requestcomplete',checkUserSessionStatus, this); function checkUserSessionStatus(conn,response,options){ //Ext重新封装了response对象 if(typeof response.getResponseHeader.sessionstatus != 'undefined'){ //发现请求超时,退出处理代码... } } 可以利用的几个特性:a)所有的ajax请求均带有x-requested-with:XMLHttpRequest头信息b)Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)c)注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件(概念类似spring的aop拦截)。 jquery提供了几个全局事件可以用来处理session过期请求,如当ajax请求开始时会触发ajaxStart()方法的回调函数;当ajax请求结束时,会触发ajaxStop()方法的回调函数。这些方法都是全局的方法,因此无论创建它们的代码位于何处,只要有ajax请求发生时,都会触发它们。类似的事件还有:ajaxComplete(),ajaxError(),ajaxSend(),ajaxSuccess()等。 如果使某个ajax请求不受全局方法的影响,那么可以在使用$.ajax()方法时,将参数中的global设置为false,jquery代码如下:$.ajax({ url:"test.html", global:false//不触发全局ajax事件}) 对于其他的ajax框架,解决用户访问请求超时这个问题的思路是类似的。
servlet跳转页面,ajax没有响应数据
![图片说明](https://img-ask.csdn.net/upload/201606/02/1464845235_854954.png) ![图片说明](https://img-ask.csdn.net/upload/201606/02/1464845247_234410.png) 首次进入列表页面有数据,点删除后进入删除的servlet,进行判断后没有删除,返回列表页面,可页面没数据了,刷新一下才有,为什么啊
java ajax跳转不了页面
function savemsg() { //判断是否是默认地址 if (document.getElementById("cbDefaultAddress").checked) { var info="1"; //是默认 } else { var info="0"; //不是默认 } var userName = "${username }";//用户名 var recipientsName=$("#addressName").val();//收 货 人 var areaID = getAreaID(); alert(areaID); alert(areaID.length); if(areaID.length == 2){ province = area_array[areaID]; alert(province); }else if(areaID.length == 4){ var index1 = areaID.substring(0, 2); city = area_array[index1] + " " + sub_array[index1][areaID]; alert(city); }else if(areaID.length == 6){ var index1 = areaID.substring(0, 2); var index2 = areaID.substring(0, 4); area = area_array[index1] + " " + sub_array[index1][index2] + " " + sub_arr[index2][areaID]; alert(area); } var address=$("#street").val();//详细地址 alert(address); var postalcode=$("#postcode").val();//邮政编码 alert(postalcode); var phone=$("#mobile").val();//手机号码 alert(phone); var fixed=$("#telephone").val();//固定电话 alert(fixed); $.ajax({ error:function(){alert("error");} , type:'post', //传送的方式,get/post url:'add.address', //发送数据的地址 data:{province:province,city:city,area:area,defaults:info,userName:userName,recipientsName:recipientsName,address:address,postalcode:postalcode,phone:phone,fixed:fixed}, dataType: "json", success:function(data){ if(data.success){ /* if(info==1){ var str='<p><input checked="checked" type="radio" name="sender" value="'+data.AddressId+'" id="default" />&nbsp;&nbsp;收件人:'+username+'&nbsp;&nbsp;&nbsp;联系电话:'+phone+'&nbsp;'+'&nbsp;&nbsp;&nbsp;收货地址:'+pca+address+'</p>'; $("#senderdetail").append(str); $("#formsender").toggle(); //隐藏添加地址div }else{ var str='<p><input type="radio" name="sender" value="'+data.AddressId+'" id="default" />&nbsp;&nbsp;收件人:'+username+'&nbsp;&nbsp;&nbsp;联系电话:'+phone+'&nbsp;'+'&nbsp;&nbsp;&nbsp;收货地址:'+pca+address+'</p>'; $("#senderdetail").append(str); $("#formsender").toggle(); //隐藏添加地址div } */ } }, error:function (event, XMLHttpRequest, ajaxOptions, thrownError) { alert("表单错误,"+XMLHttpRequest+thrownError); } }); }
页面向控制器传值是不是不刷新或者跳转页面就不会传值(除了AJAX)
最近写程序发现了许多问题,希望有大神能帮忙解答: 1.假设有一个注册页面,有用户名密码和验证码,验证码是后台程序生成的,那个值传到页面上怎么传我用的是SSH框架。同时还要判断验证码正确与否。 2.如果验证码是手机验证码请求,向页面传验证码,又要把验证码通过AJAX把值请求道聚合数据,这样一来就有两个AJAX,我不知道怎么处理。当然聚合数据短信验证不支持跨域访问,但是如果可以,怎么做。 3.一个submit按钮,我想让她控制多个form,按钮也有单独的一个form怎么办。 2.如果验证码是手机验证码请求,向页面传验证码,又要把验证码通过AJAX把值请求道聚合数据,这样一来就有两个AJAX,我不知道怎么处理。当然聚合数据短信验证不支持跨域访问,但是如果可以,怎么做。 3.一个submit按钮,我想让她控制多个form,按钮也有单独的一个form怎么办。
有没有好的办法判断session过期然后跳转到登录页面
1.项目中所有前台页面都是html 2.全部功能都是由ajax访问ashx,再由ashx调用各种类库来完成的, 3.有没有比较省力的方法
答题注册如何判断分数跳转页面
``` (function($) { $.fn.jquizzy = function(settings) { var defaults = { questions: null, startImg: 'images/start.gif', endText: '已结束!', shortURL: null, sendResultsURL: null, resultComments: { perfect: '你是爱因斯坦么?', excellent: '非常优秀!', good: '很好,发挥不错!', average: '一般般了。', bad: '太可怜了!', poor: '好可怕啊!', worst: '悲痛欲绝!' } }; var config = $.extend(defaults, settings); if (config.questions === null) { $(this).html('<div class="intro-container slide-container"><h2 class="qTitle">Failed to parse questions.</h2></div>'); return; } var superContainer = $(this), answers = [], introFob = ' <div class="intro-container slide-container"><a class="nav-start" href="#">请认真完成测试题。准备好了吗?<br/><br/><span><img src="'+config.startImg+'"></span></a></div> ', exitFob = '<div class="results-container slide-container"><div class="question-number">' + config.endText + '</div><div class="result-keeper"></div></div><div class="notice">请选择一个选项!</div><div class="progress-keeper" ><div class="progress"></div></div>', contentFob = '', questionsIteratorIndex, answersIteratorIndex; superContainer.addClass('main-quiz-holder'); for (questionsIteratorIndex = 0; questionsIteratorIndex < config.questions.length; questionsIteratorIndex++) { contentFob += '<div class="slide-container"><div class="question-number">' + (questionsIteratorIndex + 1) + '/' + config.questions.length + '</div><div class="question">' + config.questions[questionsIteratorIndex].question + '</div><ul class="answers">'; for (answersIteratorIndex = 0; answersIteratorIndex < config.questions[questionsIteratorIndex].answers.length; answersIteratorIndex++) { contentFob += '<li>' + config.questions[questionsIteratorIndex].answers[answersIteratorIndex] + '</li>'; } contentFob += '</ul><div class="nav-container">'; if (questionsIteratorIndex !== 0) { contentFob += '<div class="prev"><a class="nav-previous" href="#">&lt; 上一题</a></div>'; } if (questionsIteratorIndex < config.questions.length - 1) { contentFob += '<div class="next"><a class="nav-next" href="#">下一题 &gt;</a></div>'; } else { contentFob += '<div class="next final"><a class="nav-show-result" href="#">完成</a></div>'; } contentFob += '</div></div>'; answers.push(config.questions[questionsIteratorIndex].correctAnswer); } superContainer.html(introFob + contentFob + exitFob); var progress = superContainer.find('.progress'), progressKeeper = superContainer.find('.progress-keeper'), notice = superContainer.find('.notice'), progressWidth = progressKeeper.width(), userAnswers = [], questionLength = config.questions.length, slidesList = superContainer.find('.slide-container'); function checkAnswers() { var resultArr = [], flag = false; for (i = 0; i < answers.length; i++) { if (answers[i] == userAnswers[i]) { flag = true; } else { flag = false; } resultArr.push(flag); } return resultArr; } function roundReloaded(num, dec) { var result = Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec); return result; } function judgeSkills(score) { var returnString; if (score === 100) return config.resultComments.perfect; else if (score > 90) return config.resultComments.excellent; else if (score > 70) return config.resultComments.good; else if (score > 50) return config.resultComments.average; else if (score > 35) return config.resultComments.bad; else if (score > 20) return config.resultComments.poor; else return config.resultComments.worst; } progressKeeper.hide(); notice.hide(); slidesList.hide().first().fadeIn(500); superContainer.find('li').click(function() { var thisLi = $(this); if (thisLi.hasClass('selected')) { thisLi.removeClass('selected'); } else { thisLi.parents('.answers').children('li').removeClass('selected'); thisLi.addClass('selected'); } }); superContainer.find('.nav-start').click(function() { $(this).parents('.slide-container').fadeOut(500, function() { $(this).next().fadeIn(500); progressKeeper.fadeIn(500); }); return false; }); superContainer.find('.next').click(function() { if ($(this).parents('.slide-container').find('li.selected').length === 0) { notice.fadeIn(300); return false; } notice.hide(); $(this).parents('.slide-container').fadeOut(500, function() { $(this).next().fadeIn(500); }); progress.animate({ width: progress.width() + Math.round(progressWidth / questionLength) }, 500); return false; }); superContainer.find('.prev').click(function() { notice.hide(); $(this).parents('.slide-container').fadeOut(500, function() { $(this).prev().fadeIn(500); }); progress.animate({ width: progress.width() - Math.round(progressWidth / questionLength) }, 500); return false; }); superContainer.find('.final').click(function() { if ($(this).parents('.slide-container').find('li.selected').length === 0) { notice.fadeIn(300); return false; } superContainer.find('li.selected').each(function(index) { userAnswers.push($(this).parents('.answers').children('li').index($(this).parents('.answers').find('li.selected')) + 1); }); if (config.sendResultsURL !== null) { var collate = []; for (r = 0; r < userAnswers.length; r++) { collate.push('{"questionNumber":"' + parseInt(r + 1, 10) + '", "userAnswer":"' + userAnswers[r] + '"}'); } $.ajax({ type: 'POST', url: config.sendResultsURL, data: '{"answers": [' + collate.join(",") + ']}', complete: function() { console.log("OH HAI"); } }); } progressKeeper.hide(); var results = checkAnswers(), resultSet = '', trueCount = 0, shareButton = '', score, url; if (config.shortURL === null) { config.shortURL = window.location }; for (var i = 0, toLoopTill = results.length; i < toLoopTill; i++) { if (results[i] === true) { trueCount++; isCorrect = true; } resultSet += '<div class="result-row">' + (results[i] === true ? "<div class='correct'>#"+(i + 1)+"<span></span></div>": "<div class='wrong'>#"+(i + 1)+"<span></span></div>"); resultSet += '<div class="resultsview-qhover">' + config.questions[i].question; resultSet += "<ul>"; for (answersIteratorIndex = 0; answersIteratorIndex < config.questions[i].answers.length; answersIteratorIndex++) { var classestoAdd = ''; if (config.questions[i].correctAnswer == answersIteratorIndex + 1) { classestoAdd += 'right'; } if (userAnswers[i] == answersIteratorIndex + 1) { classestoAdd += ' selected'; } resultSet += '<li class="' + classestoAdd + '">' + config.questions[i].answers[answersIteratorIndex] + '</li>'; } resultSet += '</ul></div></div>'; } score = roundReloaded(trueCount / questionLength * 100, 2); resultSet = '<h2 class="qTitle">' + judgeSkills(score) + '<br/> 您的分数: ' + score + '</h2>' + shareButton + '<div class="jquizzy-clear"></div>' + resultSet + '<div class="jquizzy-clear"></div>'; superContainer.find('.result-keeper').html(resultSet).show(500); superContainer.find('.resultsview-qhover').hide(); superContainer.find('.result-row').hover(function() { $(this).find('.resultsview-qhover').show(); }, function() { $(this).find('.resultsview-qhover').hide(); }); $(this).parents('.slide-container').fadeOut(500, function() { $(this).next().fadeIn(500); }); return false; }); }; })(jQuery); ``` 想实现得到满分或者大于90分的情况下跳转注册页面,如何实现
Ajax异步处理跳转不了
这是第一个jsp页面的代码,可以正常进入AjaxServlet ``` var xmlHttpRequest=null; //页面加载 window.onload=function(){ //获取按钮对象 var but=document.getElementById("login"); but.onclick=function(){ //处理ajax //对浏览器判断 if (window.ActiveXOject) { //IE xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP); }else{ xmlHttpRequest=new XMLHttpRequest(); } //获取内容 var loginname=document.getElementById("loginname").value; var upassword=document.getElementById("upassword").value; var inputRand=document.getElementById("inputRand").value; //打开链接 xmlHttpRequest.open("get","AjaxServlet?loginname="+loginname+"&upassword="+upassword+"&inputRand="+inputRand+"&type=1"+"&random="+new Date().getTime(),true); //回调函数 xmlHttpRequest.onreadystatechange=AjaxCallBack; //发送 xmlHttpRequest.send(null); } }; //创建回调函数 function AjaxCallBack(){ if (xmlHttpRequest.readyState==4) { if (xmlHttpRequest.status==200) { //读取后台回传的数据 var content=xmlHttpRequest.responseText; var divObject=document.getElementById("resultdiv"); divObject.innerHTML=content; if (content=="登录成功") { window.location.href="index.jsp"; } } } } ``` 这是第二个jsp页面的代码,执行之后没有进入后台AjaxServlet,路径是没有错的 而且不光是进不了AjaxServlet,把URL改成随便的一个JSP页面或者Servlet也跳不过去 ``` var xmlHttpRequest=null; //页面加载 window.onload=function(){ //获取按钮对象 var but=document.getElementById("OK"); but.onclick=function(){ //处理ajax //对浏览器判断 if (window.ActiveXOject) { //IE xmlHttpRequest=new ActiveXOject(Microsoft.XMLHTTP); }else{ xmlHttpRequest=new XMLHttpRequest(); } //获取内容 var oldpassword=document.getElementById("oldpassword").value; var newpassword=document.getElementById("newpassword").value; var renewpassword=document.getElementById("renewpassword").value; //打开链接 //alert("执行到这里"); xmlHttpRequest.open("get","../../AjaxServlet?oldpassword="+oldpassword+"&newpassword="+newpassword+"&renewpassword="+renewpassword+"&type=2",true); //回调函数 xmlHttpRequest.onreadystatechange=AjaxCallBack; //发送 xmlHttpRequest.send(null); } }; //创建回调函数 function AjaxCallBack(){ if (xmlHttpRequest.readyState==4) { if (xmlHttpRequest.status==200) { //读取后台回传的数据 var content=xmlHttpRequest.responseText; var divObject=document.getElementById("resultdiv"); divObject.innerHTML=content; } } } ``` 我是初学者,如果是写法不对,想请教一下怎样在一个项目里面的多个JSP页面实现异步处理
ssh项目页面url包含Action名时ajax上传文件返回错误500
本人正在做一个网站,暂时做到能够正常登录和注销,现在希望在已登录页面加一个文件上传功能。 目前该功能代码已经完成,在一般的jsp和html页面内都能正常使用,在该网站项目内虽然也能正常使用,但是在执行success后会跳出java.lang.nullpointerexception,无法回到原页面上。现已经确认后台代码没有问题,问题发生在action的return后。代码如下,这一方面的一些原理我的确还不是很懂,还请各位指点一二,谢谢。 1.jsp、html以及网站内jsp都是使用的这一段代码,前两者可用项目内的不可用 ``` <form id="myForm"> 选择Excel:<input type="file" name="input"> <button onclick="btn()">上传</button> </form> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script type="text/javascript"> function btn(){ var formData = new FormData($("#myForm")[0]); $.ajax({ type : "post", url : "/Web_project/Fill/upload", data : formData, async: false, cache: false, contentType: false, processData: false, error: function (result) { alert('异常'); }, success: function (result) { if(result.error == ""){ alert("已上传"); }else{ alert("失败") } } }); } </script> ``` 2.upload.action对应的result ``` @Result(name="uploaded",type="json",params={"root","mm"}) ``` 3.jsp页面下的url和项目action跳转后的url,这是我发现的两者唯一区别,不知道是不是能证明什么问题 ![图片说明](https://img-ask.csdn.net/upload/201903/06/1551811215_326338.jpg) ![图片说明](https://img-ask.csdn.net/upload/201903/06/1551811226_117785.jpg) ******************** ************************************ 虽然不是很清楚原因,但是我个人认为是ajax提交了页面后,页面刷新,触发了登录用的action,再次检验用户登录,但是却没有取到数据,所以空指针。(个人猜测,没有详细了解) 我给action这段代码加了一个判断session是否为空,不为空则直接返回的代码段,这么一来在ajax提交页面后,action内验证登录的部分代码不会再次运行,页面也确实没有出现错误而是正常停留在原页面。 虽然没有能直接解决我的问题,但是很感谢各位的建议和帮助。
ssm 和 nginx html 跳转页面的问题
``` 我从前端登录后 $(function(){ $('#login').click(function(){ var username=$('#username').val(); var password=$('#password').val(); var datas={ "username":username, "password":password }; $.ajax({ url:'/register.xhtml', type:'post', contentType:"application/x-www-form-urlencoded", data:datas, success:function(data){ console.log("123"+data.username); }, error:function(data){ alert("系统出错") } }) }) }) 跳到后端 ``` ``` @RequestMapping("/register.xhtml") @ResponseBody public List<Map<String,Object>> login( @RequestParam("username") String username, @RequestParam("password") String password,HttpServletRequest request){ System.out.println(username); System.out.println(password); UsercenterEntity usercenterEntity=new UsercenterEntity(); usercenterEntity.setUsercenterusername(username); usercenterEntity.setPassword(password); List<Map<String,Object>> list=baseServiceUtil.query4list(usercenterEntity); if(list.size()>0){ System.out.println("登录成功"); request.getSession().setAttribute("usercenterusername",usercenterEntity.getUsercenterusername()); request.getSession().setAttribute("usercenterid",usercenterEntity.getUsercenterid()); System.out.println(request.getSession().getAttribute("usercenterusername")); }else{ System.out.println("登录失败"); } return list; } 做了一个判断成功了就跳到主页面,现在的问题是页面在nginx中不知道怎样能跳到 ```
ajax布置到iis上就不能使用了
本人写了一个asp.net的网页,里面含有jQuery.ajax(),在本地用vs2013运行的时候,一切正常 但是将网站布置到iis上,浏览时,ajax执行直接运行到错误的提示上,请问该怎么办 ``` function ajaxSend() { jQuery.blockUI({ message: "处理中,请稍候...<img src='阅读_files/content/images/加载-007.gif' />", css: { color: 'black', border: '3px solid #aaa', backgroundColor: 'white' }, overlayCSS: { opacity: '0.0' } }); alert("解析过程需要10秒,如有卡顿,请稍等"); $.ajax({ type: "Post", url: "Reader.aspx/GetStr", async: false, //data: "{'s':'" + selectedText + "'}", //data: { s: selectedText}, //data: "{ \"s\":\""+ selectedText+"\" }", data: '{"s":"' + selectedText.replace(/"/g, '\\"') + '"}', contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { $('#Report').html(data.d); jQuery.unblockUI(); $('html,body').animate({ scrollTop: document.body.clientHeight + 'px' });//跳转至页面最底部 }, error: function (err) { //alert("data error"); alert(err); jQuery.unblockUI(); } }); } document.onmousedown = function () { selectedText = false; } document.onmouseup = function (e) { e = e || window.event; selectedText = window.getSelection ? window.getSelection().toString() : document.selection ? document.selection.createRange().text : false; if (selectedText) { //判断页面是否有滚动,有的话还得加上滚动的距离,要不按钮定位不准 var sl = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft), st = Math.max(document.documentElement.scrollTop, document.body.scrollTop); $('#btnSend').css({ left: e.clientX + sl, top: e.clientY + st }).show().attr('disabled', false); } } ```
关于Acegi 在 复合环境下的奇妙错误,请教!!
首先简单描述下项目的环境 开发环境: Tomcat 6.0 + apache2.2 + eclipse3.4 + jdk 6 正式环境: Tomcat 6.0 群集 + apache2.2 + jk mod + Echcache 页面缓存 + jdk 6 [b]注意: 正式环境是在一台机器上,配置 apache 和多个 tomcat[/b] Acegi 1.0.7 版本 Acegi 设定的权限管控为 所有页面都可以访问,但是填写资料,需要登陆操作 首页是 index.jsp , 其他链接,均为 ***.action 的方式 首页的登陆框 实现 acegi 的 ajax 登陆操作,登陆成功,登陆框会切换成 用户名 + 欢迎词 + 退出,登陆不成功,会提示密码或帐号错误,继续登陆。 在开发环境下,一切正常。 部署到正式环境后,出现下面两种错误: 1、输入用户名密码后,登陆成功,但是 登陆框不会切换,点击任何一个栏目进入后,在页面顶部会显示 欢迎 用户名 (表示登陆成功,如果登陆不成功,这里会显示 : 登陆 注册 的链接 ) 2、由于正式环境采用了 apache + jk + tomcat 集群 的方式, 在 worker 的配置中,设定了 sticky_session = 1。 其他配置属于正常配置 ,这里出现了一个奇怪的事情: 第一次访问首页时, 登陆框会显示: 欢迎 某某某 的字样,也就是是已经登陆了,但是我还没有登陆,而且 某某某 的用户名是随机显示的,当点击 个人资料时,却又跳转到 登陆画面,显然,当前的这个 session 并未登陆成功,还是需要登陆操作,登陆成功后 , 任何页面的顶部都会正确显示 用户名,只有 index.jsp 页面不会正常显示。 页面顶部采用 header.jsp 页面编写, 在查看是否有权限时,是通过 <authz:authorize ifAllGranted="ANONYMOUS"> 这样的写法判断是否有用户登陆,然后获取用户名,任何情况下,都不会出错,首页也是同样的写法,可是,却会出现以上问题。。 请教各位。。是不是因为复合环境下,会出现以上错误? 我做过如下测试: 1、将 集群的 tomcat 关闭到只剩下一个,然后测试, 不会出现 别人的用户名出现在 index.jsp 页面, 但是登陆依旧存在问题 2、将 header.jsp 的代码 copy 到 index.jsp 页面,还是无法起作用 3、将 echcache 的页面缓存关闭, 发现问题好转,是否 页面缓存会让 index.jsp 页面无法正常刷新? 另外,正式环境是不能关闭 页面缓存,效率会差很多。。。 还请各位指点!!
Ajax异步查询用户名时报错空指针问题? ps:第一次问问题,不大清楚格式,请勿纠~~~
java.lang.NullPointerException at cn.kpp.shop.user.action.UserAction.findByName(UserAction.java:51) **UserAction:** public class UserAction extends ActionSupport implements ModelDriven<User> { private static final long serialVersionUID = 1L; // 模型驱动使用的对象 private User user = new User(); public User getModel() { return user; } //注入service private UserService userService; public void setUserService(UserService userService) { this.userService = userService; } /* * 1.跳转到注册页面的方法 */ public String registPage(){ return "registPage"; } /* * 2.Ajax进行异步校验用户名的方法 */ public String findByName() throws IOException{ ****User existUser = userService.findByUsername(user.getUsername());** 这行报错?** // 获得response对象,项页面输出: HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/html;charset=UTF-8"); // 判断 if (existUser != null) { // 查询到该用户:用户名已经存在 response.getWriter().println("<font color='red'>用户名已经存在</font>"); } else { // 没查询到该用户:用户名可以使用 response.getWriter().println("<font color='green'>用户名可以使用</font>"); } return NONE; } } **注册页面:regist.jsp** /* * 前台JS校验:非空 */ function checkForm() { //校验用户名,获得文本框的id值 var username = document.getElementById("username").value; if(username == null || username ==""){ alert("用户名不能为空!"); return false; } //校验密码,获得文本框的id值 var password = document.getElementById("password").value; if(password == null || password ==""){ alert("密码不能为空!"); return false; } //校验确认密码,获得文本框的id值 var repassword = document.getElementById("repassword").value; if(repassword != password){ alert("两次密码输入不一致!"); return false; } } /* * Ajax异步校验:用户名是否存在 */ function checkUsername() { var username = document.getElementById("username").value; //1.创建异步交互对象 var xhr = createXmlHttp(); //2.设置监听 xhr.onreadystatechange = function(){ if(readystate == 4){ if(xhr.status == 200){ document.getElementById("span1").innerHTML = xhr.responseText; } } } //3.打开连接 xhr.open("GET","${pageContext.request.contextPath}/user_findByName.action?time="+new Date().getTime()+"&username="+username,true); //4.发送 xhr.send(null); } function createXmlHttp(){ var xmlHttp; try{ // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e){ try{// Internet Explorer xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){} } } return xmlHttp; } ``` <form id="registerForm" method="post" novalidate="novalidate" onsubmit="return checkForm()"> <table> <tbody><tr> <th> <span class="requiredField">*</span>用户名: </th> <td> <input type="text" id="username" name="username" class="text" maxlength="20" onblur="checkUsername();"> <span id="span1"></span> </td> </tr>……
spring MVC+spring security与easyui的问题
在spring security的配置文件中,当注销或者session失效的时候,都已经重定向到login.jsp页面,但是如果是打开easyui中的tab页或者是dialog,由于AJAX加载,打开的tab页或者是dialog显示login.jsp页面,整个页面没有跳转到login.jsp页面,查了一下应该是拦截器处理时,没有判断是否是AJAX请求。 如果想实现当session失效时,打开tab页或者dialog,弹出session失效的信息,并让整个页面跳转到login.jsp页面,应该怎么设置?跪求大神指导。
如何测试自己写的ajax对不对
在做一个登录页面,想要通过ajax来验证账号密码,在页面输入账号密码后,根据返回的data.status来跳转页面或错误提示。 我的问题是: 1.在以下代码中的data.status是怎么规定的 2.在没有后台接口的情况下,怎么测试ajax写得对不对,或者怎么利用mock来测试(实在相当的小白,看了mock教程看不懂) 3.各位大神方便的话,能不能告诉我改怎么起步开始学js,就是ajax这些 这是我在网上看到的代码整合自己需要写的js文件 ``` $("#loginBtn").click(function (){ var userId=$("#userId"); var userPass=$("#userPass"); // 判断输入框为空 if(userId.val()==""||userPass.val()==""){ userId.focus(); console.log("hah"); $('#errormsg').html("<strong>用户名或密码不能为空!<strong>"); return false; } else{ $.ajax({ url:loginController, data:{"userId":userId.val(),"userPass":userPass.val()}, type:"post", dataType:"json", success:function(data){ if(data.status=="1"){ window.location.href="proMng.html"; } else if(data.status=="0"){ $("errormsg").html("<strong>用户名或密码错误</strong>"); } }, error:function(data){ console.log("出错:"+data.code); } }); } }); ``` 麻烦各位大神为我解答,谢谢啦谢谢啦
ajax 返回值问题
<script> function yanzheng() { var varify = document.getElementById("verify").value; var code = document.sendMail.code.value; var phone = document.sendMail.phone.value; var number = code+"_"+phone; var cellphone = document.sendMail.cellphone.value; var ajax=new AJAXRequest; ajax.get( "verify.jsp?verify="+varify+"&number="+number+"&cellphone="+cellphone+"&random="+Math.random(), function(obj) { alert(document.getElementById("returnAnswer").value=obj.responseText); //document.getElementById("returnAnswer").innerHTML=obj.responseText; //接受ajax返回的值 if((document.getElementById("returnAnswer").value=obj.responseText)==1){ document.sendMail.operate.value="sure_Click"; document.sendMail.submit(); } else{ document.getElementById("returnAnswer").innerHTML=obj.responseText; } } ); } </script> [code="java"][/code] <input type="button" value="立即呼叫" onclick="yanzheng()" /> <span id="returnAnswer"></span> verify.jsp页面代码: <html> <c:choose> <c:when test="${fn:length(param.number)==13 || fn:length(param.cellphone)==11 }"> <c:choose> <c:when test="${param.verify==sessionScope.rand}"> 1 </c:when> <c:otherwise> <c:out value="验证码错误" /> </c:otherwise> </c:choose> </c:when> <c:otherwise> <c:out value="固话/下灵通 或 移动电话输入错误" /> </c:otherwise> </c:choose> </html>[code="java"][/code] 问题: 我点击button按钮时,跳转到verify.jsp做验证 然后返回值后 判断是否跳转。 如果 verify.jsp 里 我不加<html></html> 则可以正常运行,但是加上之后 返回的值是"<html>1</html>" 如果页面还有其他代码的话 统统返回, 所以判断不成功,但是 在linux下 不加<html></html>的话,返回值是错误的,win 是可以的。 所以现在想 有什么办法 能让 加上<html>后,返回的值还是具体的“1” 而不是“<html>1</html>” 请各位指点一下
struts2+ajax登录问题
action中: public String execute() throws Exception { User u=userService.findUserByNameAndPassword(user); try { u.setStudentCourseInfoList(null); u.setTeacherCourseInfoList(null); user.setId(u.getId()); return String.valueOf(u.getType()); /*return SUCCESS;*/ } catch (NullPointerException e) { //json.fromObject("用户名密码错误,请重新登录!"); //this.message="错误"; JSONObject jsob = new JSONObject(); jsob.put("success", "用户名密码错误或不存在"); json = JSONObject.fromObject(jsob); return ERROR; } } 配置文件中: <action name="loginPro" class="com.lb.action.UserAction"> <result name="1">/jsp/teacher/teacher.jsp</result> <result name="2">/jsp/student/student.jsp</result> <result name="0">/jsp/admin/admin.jsp</result> <!-- <result name="error">/jsp/login/fail.jsp</result> <result type="json" name="error"> <param name="root">json</param> </result>--> </action> 页面中: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>用户登录界面</title> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/default/easyui.css"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/icon.css"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/easyui/themes/color.css"> <link rel="stylesheet" href="${pageContext.request.contextPath}/bootstrap/css/bootstrap.min.css"> <script src="${pageContext.request.contextPath}/jquery/jquery-2.1.3.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/easyui/jquery.easyui.min.js"></script> <script src="${pageContext.request.contextPath}/bootstrap/js/bootstrap.min.js"></script> <style type="text/css"> .myBackground { background: url("${pageContext.request.contextPath}/picture/background.jpg") no-repeat; background-position: 50px 50px; } .myInstitute { background: url("${pageContext.request.contextPath}/picture/logo.jpg") no-repeat; } .myBackgroundColor { background-color: #fff; } </style> </head> <body class="easyui-layout"> <div data-options="region:'north',split:false" style="height: 100px" class="myInstitute myBackgroundColor"></div> <div data-options="region:'center',split:false" style="width: 800px" class="myBackground"> <div style="margin-top: 30px; margin-left: 250px;"> <h2 style="font-size: 40px; color: grey;">学生信息管理系统</h2> <h4 style="font-size: 15px; color: grey; margin-left: 100px; margin-top: 30px;">——光山县第二高级中学</h4> </div> <div style="margin-top: -10px; margin-left: 800px;"> <form id="loginForm" method="post" style="border-left: #CCC 2px solid"> <div style="margin: 20px; margin-left: 50px;"> <input type="text" name="user.username" class="form-control" id="inputUsername" placeholder="用户名" style="width: 250px;"> </div> <div style="margin: 20px; margin-left: 50px;"> <input type="password" name="user.password" class="form-control" id="inputPassword" placeholder="密码" style="width: 250px;"> </div> <div style="margin: 20px; margin-left: 50px;"> <button id="login" type="submit" class="btn btn-default" style="width: 250px;">登录</button> </div> </form> </div> </div> <script type="text/javascript"> function loginHandle() { $.ajax({ //url:g_contextPath+'/servlet/LoginHandleServlet', url:'loginPro.action', //url表示服务器端处理用户登录的URL地址 //data表示要提交到服务器端的数据,更加简洁的写法 data: $('#loginForm').serialize(), //serialize()方法的作用是将form表单中的内容序列化成字符串 dataType: 'json', type:'post', success: function(data) { var dataObj=eval(data); $.messager.alert('提示',dataObj.success,'error'); } }); }; $("#loginForm").keydown(function(e){ if(e.keyCode == 13){ loginHandle(); } }); $(function(){ $('#login').click(function() { //var params=$('input').serialize(); //将input元素序列化,返回JSON数据格式 $.ajax({ type: 'post', //请求方式为post方式 url: 'login.action', //请求地址 dataType: 'json', //服务器返回类型为JSON类型 data:$('#loginForm').serialize(), //发送到服务器的数据 success:function(data){ //请求成功后的回调函数 var dataObj=eval(data); $.messager.alert('提示',dataObj.success,'error'); } }); }); }) </script> </body> </html> 问题:学生 老师 管理员都在一个用户表,用类型区分,用户登录判断用户名和密码,判断用户类型 跳转对应页面,如果用户名或密码错误,弹出错误消息
如何处理session过期
我一直在想:163邮箱是如何处理session过期的。我的session处理是在web.xml里设置session-time-out,过滤器里判断session是否为空,为空跳转到登录页面,但是这样没有相应的信息提示:比如session已过期,请重新登录。我不知道有没有更好的办法做到跟163邮箱的效果,它只是弹出一个层,邮箱不再可操作。 [b]问题补充:[/b] 谢谢各位,但我还是不知道该如何实现啊。至于用filter,我觉得无法现实啊,它不会自动实现页面的跳转,除非你点击刷新按钮的时候才能实现页面跳转。但163邮箱不用你去刷新就可以实现提示页面的显示。如果按照各位所说,用Ajax,或dwr,我不知道该如何实现,能不能再具体点。还有,如何用js函数判断session是否为空 [b]问题补充:[/b] 用户不做任何操作,如何让页面自动刷新,而且是session过期的时候才弹出一个提示信息层 [b]问题补充:[/b] 谢谢以上各位的答案,我还是没有解决。 如果真的解决不了,我只好关闭提问了
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问