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

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

4个回答

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

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

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

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

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

qq_45440695
qq_45440695 应该是php里message里的错误。现在有时候能跳转,有时候不能。
6 个月之前 回复
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); } }); }
有没有好的办法判断session过期然后跳转到登录页面
1.项目中所有前台页面都是html 2.全部功能都是由ajax访问ashx,再由ashx调用各种类库来完成的, 3.有没有比较省力的方法
页面向控制器传值是不是不刷新或者跳转页面就不会传值(除了AJAX)
最近写程序发现了许多问题,希望有大神能帮忙解答: 1.假设有一个注册页面,有用户名密码和验证码,验证码是后台程序生成的,那个值传到页面上怎么传我用的是SSH框架。同时还要判断验证码正确与否。 2.如果验证码是手机验证码请求,向页面传验证码,又要把验证码通过AJAX把值请求道聚合数据,这样一来就有两个AJAX,我不知道怎么处理。当然聚合数据短信验证不支持跨域访问,但是如果可以,怎么做。 3.一个submit按钮,我想让她控制多个form,按钮也有单独的一个form怎么办。 2.如果验证码是手机验证码请求,向页面传验证码,又要把验证码通过AJAX把值请求道聚合数据,这样一来就有两个AJAX,我不知道怎么处理。当然聚合数据短信验证不支持跨域访问,但是如果可以,怎么做。 3.一个submit按钮,我想让她控制多个form,按钮也有单独的一个form怎么办。
答题注册如何判断分数跳转页面
``` (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内验证登录的部分代码不会再次运行,页面也确实没有出现错误而是正常停留在原页面。 虽然没有能直接解决我的问题,但是很感谢各位的建议和帮助。
使用layui 弹出div全屏不可选择与导航栏问题
用户第一次登录 判断是否是新用户 是新用户的话弹出 ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571024727_892276.png) 然后点击跳转到企业信息页面 现在需要修改信息 这个div一直在 怎么让用户只可以点击这个企业信息页面div里面的东西其他的不可以点击 ![图片说明](https://img-ask.csdn.net/upload/201910/14/1571024715_885412.png) //全屏不可选代码 ``` <div th:if="${user.sex} eq '1'" class="layui-layer-shade" style="z-index: 19991014; background-color: rgb(0, 0, 0.5); opacity: 0.3;"></div> <div th:if="${user.sex} eq '1'" class="layui-layer layui-layer-dialog" style="z-index: 19991015; top: 366.5px; left: 794px;"> <div class="layui-layer-title" style="cursor: move;">提示</div> <div id="" class="layui-layer-content">企业首次使用此平台,完善企业信息后, 方可使用~</div> <div class="layui-layer-btn layui-layer-btn-"> <a th:href="@{/user/enterpriseUser/enterpriseUser}" class="menuItem"><i class="fa fa-user"></i>添加企业信息</a> </div> </div> ``` ``` //全屏不可选 <div th:if="${user.sex} eq '1'" class="layui-layer-shade" style="z-index: 19991014; background-color: rgb(0, 0, 0.5); opacity: 0.3;"></div> //可以点击 的div <div th:if="${user.sex} eq '1'" class="layui-layer layui-layer-dialog" style="z-index: 19991015; top: 366.5px; left: 794px;"> <div class="layui-layer-title" style="cursor: move;">提示</div> <div id="" class="layui-layer-content">企业首次使用此平台,完善企业信息后, 方可使用~</div> <div class="layui-layer-btn layui-layer-btn-"> <a th:href="@{/user/enterpriseUser/enterpriseUser}" class="menuItem"><i class="fa fa-user"></i>添加企业信息</a> </div> </div> ![图片说明](https://img-ask.csdn.net/upload/201910/15/1571133814_662998.png) ```
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> 问题:学生 老师 管理员都在一个用户表,用类型区分,用户登录判断用户名和密码,判断用户类型 跳转对应页面,如果用户名或密码错误,弹出错误消息
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问