ajax怎么从一个jsp页面获取另一个jsp页面中的内容并且显示出来
//当前页ajax代码
function ajaxFun() {
    $.ajax({
        url :'http://localhost:8080/zhnj/forms/text.jsp', //这里是静态页的地址
        type : "GET", //静态页用get方法,否则服务器会抛出405错误
        success : function(data) {
            var result = $(data).find$("div");
            $("#ajaxtext").html(result);
        }

    });
}
另一个jsp页面代码text.jsp
21313

这样写 怎么也拿不到 text.jsp的 div内容。。。也放不进去ajaxtext里

3个回答

我觉得url地址或许可以换成项目的绝对路径,就是:url:"/你的项目名/zhnj/forms/text.jsp"
参考这个:
http://blog.csdn.net/runner__1/article/details/52233736

qq_16951819
奈落_____ 不是哟其实是需要ajax跨域,昨天搞到晚上。发现用火狐可以其他浏览器不行,现在用的cors 跨域ajax就可以了
2 年多之前 回复

本页面jsp div

text,jsp 页面 div
21313

function ajaxFun() {
$.ajax({
url :'/zhnj/forms/text.jsp', //这里是静态页的地址
type : "GET", //静态页用get方法,否则服务器会抛出405错误
success : function(data) {
$("#ajaxtext").html(data);
}

});

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jsp页面 onclick传入参数为reuest请求的参数,执行函数怎么去下一个servlet
由一个servlet请求转发到jsp页面,jsp页面 ``` <input class="right btn" type="submit" value="提交评论" onclick='subComment("<%=article.getArticleId() %>");return false;'/> ``` 我想执行这个subComment(artcicle)的时候,同时获取页面的另一个元素的值并用Ajax转向另一个servlet,但是现在在这个js中我获取页面元素的值的时候会再去原来转向jsp页面前的servlet ``` function subComment(articleIda){ console.log("评论"); //这里会错,页面上仿佛没有这个元素 是undefined,但是jsp中是有的 console.log($("#txtcomment")); var textData = $("#txtcomment").val(); console.log(textData); ``` 就上面这个情况,请问我怎么修改才可以取到这个jsp页面的元素的值并传向另一个sevlet呢? ,
请教ajax嵌入页面JS失效的问题。
我用ajax把一个jsp页面嵌入到另一个jsp页面的DIV中,其它一切都正常,但嵌入页面的JS都失效了,我嵌入的时候用得是document.getElementById(idName).innerHTML=msg,msg是ajax返回的页面信息,请问这是为什么?有人说DIV中的js都会失效,但我测试了一下,还是有用啊。请问这个问题该如何解决?谢谢了。
ajax如何实现页面跳转
当我用AJAX像服务器发送一个登录请求后,服务器验证数据是否正确,是则跳到另一个 页面,否则返回一个数据错误的信息给AJAX,页面不刷新。 当验证正确时我用的是servlet的 request.getRequestDispatcher("../index.jsp").forward(request, response);跳转方式 错误就直接out.print();可是不管怎样都是跳到了那个请求页面 请问要怎样才能跳到另一个页面,还能带着数据过去 ajax代码 //声明XMLHttpRequest对象 var xmlrequest; //初始化XMLHttpRequest function createXMLHttpRequest(){ if(window.XMLHttpRequest){ xmlrequest = new XMLHttpRequest(); }else if(window.ActiveXObject){ try{ xmlrequest = new ActiveXObject("Msxml2.XMLHTTP"); }catch(e){ try{ xmlrequest = new ActiveXObject("Microsoft.XMLHTTP"); }catch(e){ } } } } //定义回调函数 function processResponse(){ //响应完成 if(xmlrequest.readyState == 4){ //响应正常 if(xmlrequest.status == 200){ var head = xmlrequest.responseText; alert(head); } } } servlet代码 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("post被触发了"); request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); String account = request.getParameter("account"); String password = request.getParameter("password"); if (account == "admin" & password == "admin"){ request.getRequestDispatcher("../index.jsp").forward(request, response); }else{ PrintWriter out = response.getWriter(); out.print("错误"); }
使用Jquery在一个jsp页面的一个div中异步加载子页面的问题
请先看代码: A页面的代码: <html> <head> <script type="text/javascript" src="js/jquery-1.7.2.js"></script> <script type="text/javascript" src="ab.js"></script> </head> <body> <input type="button" value="点我" id="a"> <div id="cont"></div> </body> </html> ad.js文件代码: $(function(){ alert("A页面"); $("#a").click(function(){ alert(加载B页面); $.load("B.jsp"); }); $("#b").click(function(){ alert("点我有反映"); }); }); B页面的代码: <script type="text/javascript" src="js/jquery-1.7.2.js"></script> <script type="text/javascript" src="ab.js"></script> <h1>我是B页面</h1> <input type="button" value="点不动" id="b"> 问题1:进入A页面的时候执行了alert("A页面")(这是正常的); 然后第一次点击 A页面的按钮,执行了一次{alert("A页面");alert(加载B页面);},B页面显示成功,B页面的按钮也能点。然后第二次点击A页面的按钮,{alert("A页面");alert(加载B页面);}连续执行了2次,B页面也加载了。第三次点击A页面的按钮,{alert("A页面");alert(加载B页面);}执行了4次,。。。往后B页面的加载就会越来越慢。感觉好像点击事件在不断的累积一样。求解? 问题2:我针对上面的问题,我把B页面的JS加载给去掉,或者把B页面的按钮点击事件响应写到另一个JS文件中去。这样的话我在B页面的按钮就点不动了, 我的目的是点击A页面的按钮,能加载B页面进来(不刷新A页面),同时B页面的按钮也同样可以执行点击事件(但是不要出现问题1的现象)。 真心求解 啊
关于ajax的传值与jqplot画图
对于一个网页的局部(jqplot图表)刷新!想法应该是整个图表都刷新吗?还是可以达到图表的局部刷新,就像是图表的框架不变,而改变X轴与Y轴和里面的数据线。我们从ajax的另一个jsp传过来的值是应该是字符串还是图表?ajax可以传一个图表过来吗?可以的话应该怎么做?(这样的话不是在另一个jsp就要把那图给画好了吗? 现在我要做的是一个jqplot图表(局部)的刷新!本来直接用ssh框架的action直接连接数据库与生成的一个jsp(有图表)的界面的,然后在这个jsp中加入页面自动刷新语句,但就是每次刷新加载时,就是重新生成一幅图表时时间太长!就是中间界面会一片空白,这太明显了!所以想试下用ajax做下,看看能不能做成一个很好的心电图! 有木有大神讲解下?如果有更好的思路与法子的话可以教导下!小弟在此感谢了先了!
导航栏 ajax异步刷新和通信
左边是导航栏 右边是内容 讲一下第一个页面结构:左边导航栏是<ul><li>数组 ,右边是个div 通过点击左边不同的列表li,动态的调用ajax去获取json数据结合动态导入的html文件(列表结构ul/li),局部刷新展示不同的内容 现在需要的解决方案: 1 点击左边导航栏刷新右边列表(页面1) 2 点击右边列表打开另一个页面(页面2)(注意是弹出打开另一个页面,不是iframe),关键点是页面2上的操作结束后也可以主动刷新页面1上的列表 我比较奇怪这个是怎么实现的 ?应该打开了两个页面是两个进程吧 怎么通信的啊?第二个页面上的结束消息消息是怎么传给第一个页面的啊 ? 3 右边列表内容由很多页面组成,有不同的html结构(列表,表格,div,图片,或者其他结构),可以动态导入相应的页面吗?或者在div里面写也行,但是可以将其它页面的html导入到div中动态显示吗(这里应该是动态的 ,不然一下子全放在一个页面太过于臃肿)?我也不想用java动态写html那样效率太低了,可以写好html动态导入到div中吗?有什么好的方案? 可能类似于,使用jsp的动态include 文件,可能可以 我没试过,大概类似于这样的思路,我现在是html页面加ajax动态组成前端, 有没有好的解决方案
请教关于dialog的传值问题
当前页面无表单,它的一个DIV被dialog包装,该DIV包含的是<jsp:include>,即另一个jsp页面,而该页面中包含FORM表单,可否使用$('form').serializeArray,在dialog方法中将被包含页面的表单用ajax上传至后台?
我想实现,一个页面控制另一个页面的变化(像远程桌面一样)应该怎么做?(也许我说的不够清楚,大家可以进来讨论一下,谢谢大家的帮忙!)
假如有两个页面(A.jsp、B.jsp),A.jsp里面有三个按钮(a、b、c) 当点击a时,B.jsp中弹出对话框,“你点击了a” 当点击b时,B.jsp中弹出对话框,“你点击了b” 以此类推…… 我该怎么实现? 实际情况比这个更为复杂 但如果能实现到这个地步就满足了。 谢谢大家了..... 假如我说的还不够清楚,欢迎大家发问(如果实现不了,也请大家发言)。 [b]问题补充:[/b] 不好意思,是要和服务器交互。 忘记说了。 [b]问题补充:[/b] 这个 我不知道怎么回复,别人的问题啊!是不是不能回复,找了半天都没找到! [b]问题补充:[/b] 蔡华江 (中级程序员) 2009-10-09 这位兄弟要是能写个例子过来最好不过了 其实我先前也想过用Ajax不段访问请求,但是没具体去做,还是想 想清楚了动手 [b]问题补充:[/b] 蔡华江 (中级程序员) 2009-10-09 不错啊!兄弟,谢谢了,这个效果已经OK了,要不没难度了自己写起来也没的味了。 [b]问题补充:[/b] :x 这个 这个是谁发的答案啊! 我都晕了,本来想结贴了,但没找到结贴的地方。 后来发现回答者我似乎搞错了吗?,…… 最后我有想起了一点,最好是无刷新实现这个效果好些。 我的意思是,可能b页面会有它自己的操作,用无刷新的话可以避免不影响b页面。 (要是能帮忙实现到这里就更好了,到时候自己轻松一些,因为要做的事还有很多啊! :cry: ) 如果我的意思没说清楚,欢迎大家发问 [b]问题补充:[/b] 哎! 看明白了是(蔡华江 (中级程序员) 2009-10-09 )发的 还有个问题,刚想起来的,如果a想释放控制b应该做哪些事情(因为b不能一直这样请求下去哦!它还有自己要做的事哦!)。 [b]问题补充:[/b] 类似与聊天功能,我先前才想起来,我以前写过 :cry: 。 其实我现在要做的不是类似聊天的功能,我是这样想的: a.jsp里面在做什么,b.jsp中完全可以看到(前提是a发送个请求同意b看到) 就好像远程桌面一样啊 说的简单点就是,在b页面里看到a页面里的内容,b页面自己就基本上被a页面替代了。 [b]问题补充:[/b] [code="java"]<script type="text/javascript" src="js/jquery-1.3.2.js"></script> [/code] 还藏到js里面去了 :x ,感觉有点云里雾里的了。 $这个符号我都没用过,啥意思也不知道 :cry: 。 用iframe进行远程脚本调用 damoqiongqiu (初级程序员) 2009-10-10 说详细的好更好了,一句话就有点太深了, [b]问题补充:[/b] 我感觉我要补充个没完了 首先a 和 b 两个页面可以同时存在的,在双方都为自己做了些事情后呢! a就有想法了,它想要b只看到它页面里的内容。 过了一段时间后呢,a又有想法了,它要取消b继续观看它的页面。 我们先在讨论的就是a要怎么做到这件事情。 这个比方应该清楚了吧! [b]问题补充:[/b] 先前说起的那个,a要释放b应该怎么做啊! [b]问题补充:[/b] 像你先前写的,用定时器来刷新b,当a中有一个变量(控制是否继续刷新)改为false的时候,b中就销毁定时器,用这种方法来做吗 [b]问题补充:[/b] 使用Flex或Applet偶不太会 :cry: :arrow: 方便的话写个例子过来看看 对与编程,用最简单的方便的,当然是最好不过了。 [b]问题补充:[/b] :( 看的我头晕晕的 看来是要留的难度增加搞了 要是哪位大哥,有非常好的解决方法,一定要通知我啊! 留下个邮箱方便联系 zhaopei_now@126.com
jquery如何实现网页部分改变,且该部分可以实现数据库动态读取
希望网页点击导航处可以实现主体改变但不重新加载网页,同时主体部分的select中的option内容可动态从数据库中读取。 从网上搜索到可以用jquery ajax 的load方法,实现主体部分更新而不重新加载网页,主体部分是通过加载另一个jsp页面实现的,但是struts标签无法在其中使用,即当前页面中的数据无法传送到load加载来的jsp页面,所以select option无法实现数据库动态改变,,手机提问,所以没有办法贴图片,可能有点绕,新手一枚,求大神指导
IE中不同文档模式下的内容能否兼容显示?
背景:当前页面main.jsp需要在IE>=8的文档模式下才能正常显示,现在我在该页面上使用jQuery ui的dialog,在某个事件触发下展示一些信息。但是展示的信息中引用到了另一个info.jsp,这个info.jsp需要在IE=5的文档模式下才能正常显示。现在发现直接在main.jsp里通过ajax或者jsp:inlcude把info.jsp包裹进dialog后,info.jsp界面没有样式,变得一团糟(已确定info.jsp在IE=5的文档模式下能够正常显示,在大于5的模式下显示异常)。 问题:我感觉主要是文档模式不同导致的上述情况,请问有没有一种方法能够让info.jsp中的内容在main.jsp里正常显示?或者其它的实现方式都可以,希望大家指点一二,谢谢!
form表单提交后ajax异步调用另一个url
<html> <body> <form action="XXX.jsp" method="post"> ... ... </form> <div class="tabbar_item tc pointer c_white px14" onClick="submitForm()"> 提交<br/>Submit </div> <script type="text/javascript"> function submitForm(){ if(_finst_taskComment.value==""){ alert("请填写审批意见"); }else{ document.getElementsByTagName("form")[0].submit(); } } </script> </body> </html> 另一个url如http://........
springMVC中的Model是不能页面之间传递的?
我的请求被controller拦截,进入controller,然后controller跳转至show.jsp, 跳转之前我往show.jsp页的model里面增加了几个key, 然后我在show页去ajax另一个controller,这时候ajax调用的controller是无法获取 show.jsp页面的model的,这是为什么?request不是也可以在页面之间传递吗? 下方为代码: 第一次跳转页面的controller ``` @RequestMapping("/show") public String showMvc( @RequestParam("name") String name, @RequestParam("pageIndex") Integer pageIndex, @RequestParam("pageSize") Integer pageSize, Model map) throws Exception { User user=new User(); user.setName(name); userService.add(user); PageUtil pageUtil=userService.getUserListByPageUtil(pageIndex,pageSize,user); map.addAttribute("pageUtil",pageUtil); map.addAttribute("pageIndex",pageIndex); return "user/userShow"; } ``` show.jsp页面的js,ajax代码 ``` function search(){ alert(41234123); $.ajax({ type:"post", url:"search", //data:$("form").serialize(), success : function() { alert(2412); alert('${pageUtil.totalPages}'); alert("${pageUtil.totalPages}"); $("#username").html(); $("#username").html("${user.name}"); $("#userage").html("${user.age}"); } }); }; ``` ajax调用的controller ``` @RequestMapping(value="/search", method = {RequestMethod.POST}) @ResponseBody public void search(Model map) throws Exception { System.out.println("********************"); System.out.println(map.containsAttribute("pageUtil")); System.out.println(map.containsAttribute("pageIndex")); System.out.println(map.asMap().get("pageUtil")); System.out.println(map.asMap().get("pageIndex")); System.out.println(map.toString()); System.out.println("********************"); String search="qinkai0"; User user=userService.getUserByName(search); map.addAttribute("user",user); } ``` 下方是结果 ``` ******************** false false null null {} ******************** ```
struts2有没有什么方式主动响应到页面?
情况是这样的: 我在JSP页面通过ajax向action取数据,但是由于取数据的时间较长(20秒左右),所以我另开了一个线程去等数据,action则早早返回了。但等我线程能拿到数据时,不知道怎么响应给JSP页面了。我不是很想让action去死等,大家看看有没有什么好的方式能解决,谢谢!
现在要实现更新功能,怎么将本页面的值带到另外一个新的页面??急急急。。。求大神指点。。
![图片说明](https://img-ask.csdn.net/upload/201712/28/1514441917_897811.png) ![图片说明](https://img-ask.csdn.net/upload/201712/28/1514442367_525718.png) ![图片说明](https://img-ask.csdn.net/upload/201712/28/1514442379_890612.png) ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>炼钢成分分析</title> <meta charset="utf-8"> <title>炼钢成分分析</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="css/bootstrap.min.css"> <script src="js/bootstrap.min.js"></script> <script src="js/jquery-3.2.1.min.js"></script> <style> body { position: relative; } #section1 {padding-top:50px;height:700px;color: black; background-color: white;} #section2 {padding-top:50px;height:500px;color: black; background-color: white;} </style> <script type="text/javascript"> //出现本页面数据就同步显示在表格中 $(function(){ TSM_QPM_Q001(); }); //进行一个函数的调用 function TSM_QPM_Q001(){ $.ajax({ url:"http://localhost:8080/MESS/getData", type:"get", datatype:"json", success:function(res){ var htmlStr =''; for(var i=0;i < res.length;i++){ var plo = res[i].proNo; //var wkStationNo = res[i].wkStationNo; htmlStr += '<tr id="myLine_'+res[i].proNo+'">'; htmlStr += '<td><input type="checkbox" id="TQQ" name="chkItem" value ="'+plo+'"></td>'; htmlStr += '<td>'+res[i].proNo+'</td>'; htmlStr += '<td>'+res[i].wkStationNo+'</td>'; htmlStr += '<td>'+res[i].stGrdNo+'</td>'; htmlStr += '<td>'+res[i].cItemName+'</td>'; htmlStr += '<td>'+res[i].cItemValue+'</td>'; htmlStr += '<td>'+res[i].wkGroup+'</td>'; htmlStr += '<td>'+res[i].wkShift+'</td>'; htmlStr += '<td>'+res[i].delFlage+'</td>'; htmlStr += '<td>'+res[i].c_memd+'</td>'; htmlStr += '<td>'+res[i].c_delsapman+'</td>'; htmlStr += '<td>'+res[i].cDelsapdate+'</td>'; htmlStr += '<td>'+res[i].cTimestamp+'</td>'; htmlStr += '<td>'+res[i].cSampleTime+'</td>'; htmlStr += '<td>'+res[i].cSw01+'</td>'; htmlStr += '<td>'+res[i].cMin+'</td>'; htmlStr += '<td>'+res[i].cMax+'</td>'; htmlStr += '<td>'+res[i].l_interval+'</td>'; htmlStr += '<td>'+res[i].r_interval+'</td>'; //htmlStr += '<a href="javascript:del('+res[i].id+')">删除</a>'; htmlStr += '</tr>'; } $("#myLine").html(htmlStr); }, error:function(){ alert("出错了!"); } }); } //删除功能 $(function(){ var del; $("#dell").click(function(){ $("input:checkbox:checked").each(function(index,element){ del = $("input:checkbox[name='chkItem']:checked").map(function(index,elem) { return $(elem).val(); }).get().join(','); }) alert(del); $.ajax({ url:"http://localhost:8080/MESS/Q001_del_delete", type:"post", dataType:"json", data:{"proNo":del}, success:function(rs){ if(rs.status == 0){ alert(rs.msg); //为什么就是隐藏不了呢? $("input:checkbox:checked").hide() TSM_QPM_Q001(); }else{ alert(rs.msg); TSM_QPM_Q001(); } }, error:function(){ alert("删除加载失败 "); } }); }); }); </script> </head> <body data-spy="scroll" data-target=".navbar" data-offset="50"> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container-fluid"> <div> <div class="collapse navbar-collapse dropdown" id="myNavbar"> <ul class="nav navbar-nav"> <li><a href="#section1">氩站监控图</a></li> <li><a href="#section2">吹氩实绩</a></li> <li><a href="#section3">吹氩运转</a></li> </ul> </div> </div> </div> </nav> <div id="section2" class="container-fluid"> <h1 class="bg-info text-muted">吹氩实绩</h1> <div class="row clearfix"> <div class="col-md-12 column"> <div class="row clearfix"> <div class="col-md-12 column"> <div style="display:inline-block;"> <a href="TiaoJianselect.jsp"><button class="btn btn-primary btn-lg btn-sm" data-toggle="modal" data-target="#update_CR" id="CHAXUN">查询</button></a> <a href="addTSM_QPM_Q001.jsp"><button class="btn btn-primary btn-lg btn-sm" data-toggle="modal" data-target="#update_CR">添加</button></a> <button class="btn btn-primary btn-lg btn-sm" data-toggle="modal" data-target="#update_CR" id="dell">删除</button> <a href="update.jsp?proNo=res[i].proNo"><button class="btn btn-primary btn-lg btn-sm" data-toggle="modal" data-target="#update_CR" id="updateCR">修改</button></a> </div> </div> </div> <h3 class="bg-info text-muted">炼钢成分标准表</h3> <div style="height:280px;border:1px solid green; overflow:auto;"> <table class="table table-condensed table-hover table-bordered table-responsive text-center"> <thead> <tr> <th>操作</th> <th>工序号</th> <th>作业站号</th> <th>钢种号</th> <th>检验项目名称</th> <th>检验值</th> <th>班组</th> <th>班次</th> <th>删除标识</th> <th>备注</th> <th>删除人</th> <th>删除时间</th> <th>时间戳</th> <th>取样时间</th> <th>扩展字段</th> <th>最小值</th> <th>最大值</th> <th>左区间</th> <th>右区间</th> </tr> </thead> <tbody id="myLine"> <!-- <tr> <td><input type="button" value="删除" onclick=""><input type="button" value="修改" onclick=""></td> </tr> --> </tbody> </table> </div> </div> </div> </body> </html> ``` 如本图,我要实现一个修改功能,所以需要将选中复选框的这一行数据在另外一个页面显示出来,但是我现在的问题是想上述的代码中我这个修改的按钮所携带的数据在另一个页面上是无效的。。。。怎么将这个页面的数据带到另外一个页面?? 先在携带的数据是在上面的ajax里面获取的数据好像没有获取到。。。
关于 extjs 内页面跳转(重定向)的问题
[b]功能需求[/b]: 通过一个下拉框来选择主题模板,将选中的值(主题模板的类名)通过Action传到另一个jsp页面(重定向),在jsp页面里根据传入的类名new出新的主页, [b]问题[/b]: Firefox控制台显示请求发送成功,到达了请求的jsp页面,但实际页面并没跳转,任然在当前下拉框的页面,控制台显示的“load response”按钮不明白什么意思, 部分代码如下: Firefox控制台见图: ruling.common.HomepageChange = Ext.extend(Ext.form.ComboBox, { fieldLabel : '选择主页模板', editable : false, displayField : 'classname', valueField : 'pageclass', emptyText : '请选择主题', value : '默认', width : 80, mode : 'remote', readonly : true, triggerAction : 'all', store : new Ext.data.JsonStore({ // 填充的数据 autoLoad : true, url : contextPath + '/common/homepage/getBrowseData.html', fields : ['pageclass','classname'], totalProperty : 'totalCount', root : "root" }), selectOnFocus : true, initEvents : function() { this.on('collapse', function() { Ext.Ajax.request({ url: contextPath + '/common/homepage/gotoHome.html', params: { classname: this.getValue() } }); }); } }); <package name="homepage" extends="common" namespace="/common/homepage"> <action name="getBrowseData" class="homepageAction" method="browse"> <result>/page/browseData.jsp</result> <result name="input">/page/browseData.jsp</result> </action> <action name="gotoHome" class="homepageAction" method="gotoHome"> <result type="redirect">/page/login.jsp</result> <result type="redirect" name="input">/page/main.jsp</result> </action> </package> [b]问题补充:[/b] 也就是说 Ext.Ajax.request 只是 请求数据,而不能在这跳转,页面的跳转只能在回调函数中执行 比如这样 success : function(){ window.location.href = contextPath + '/common/homepage/gotoHome.html' }, failure : function(){} 吗 那我的参数 也是在回调函数中传递咯 我先试试 谢了 [b]问题补充:[/b] window.location.href = contextPath + '/common/homepage/gotoHome.html?pageclass='+this.getValue(); 这样是可以把值传过去,但是在目标jsp里,我要在js里拿到传入的参数,然后在new对象出来, 也就是除了传值到目标jsp后,还要把值给其中的js, 但是jsp运行在服务器端,而js是在客户端啊,这样能传过去吗 另一种方案就是 不传值,只跳转,把值放在session中,然后到目标页拿出来, 在js中能拿到session吗? [b]问题补充:[/b] 非常感谢 两位的提示, 基本实现了 请求发送给action 然后 <result type="redirect">/page/homepage.jsp?pageclass=${pageclass}</result> 这样就能把值传到 jsp 再想办法给js就ok了 :arrow: 谢谢
xmlhttprequest可以跨域访问吗?
做了一个AJAX项目, 现在在一个网站,例如192.168.1.100的一个网页上加载另外一个服务器192.168.1.101的信息,从上面document.write(192.168.1.101/scripts/test.js)一些JS文件(其中包含AJAX JS),我需要在知道这个页面关闭后的一些信息,插入数据到192.168.1.101里,也就是在192.168.1.100上的一个JSP文件关闭后,调用onunload方法里面的一个函数创建一个xmlhttprequest请求,其中url为http://192.168.1.101/***.jsp?*** ,然后提交一些基本信息来插入数据库... 我现在碰到的问题是,IE上报192.168.1.101拒绝访问 [b]问题补充:[/b] [quote]你可以把js文件放在另一个域(a.com)下面,然后加载这段js访问a.com[/quote] 有这个可能吗?貌似加载后还是放在当前域.使用权限应该还是在当前域
如何实现js同一页面的值的传递,希望热心大佬帮助一下我,菜鸟实习生,没有c币。。。。。。。。
我现在在做一个退伍军人就业信息管理的模块,现在我要和另一模块退伍军人基本信息连接到一起,基本信息里面没有这个用户我就无法添加就业信息,现在我要做的是点击就业信息模块主界面点击添加信息按钮,跳转到如下界面![图片说明](https://img-ask.csdn.net/upload/201905/05/1557026572_514791.jpg), 我需要在搜索框输入用户名搜索姓名查询基本信息表内有无该用户,有该用户则会显示在下方,如图![图片说明](https://img-ask.csdn.net/upload/201905/05/1557026823_184457.jpg) 现在我所想要问的就是,我点击这一条用户信息的确定按钮,要在下方显示的就业信息添加表单里面显示所选的这条基本信息的用户名,如图![图片说明](https://img-ask.csdn.net/upload/201905/05/1557027065_102023.jpg) 我的问题就是不知道怎么传,上面的查询显示信息我是调用的基本信息的那个主页面查询所有的方法 ``` /** * 用户基本信息查询 */ public String infoList() throws Exception { try { if (pageSize == null) { pageSize = 10; } PageUtil pageUtil = new PageUtil(request); pageUtil.setPageSize(pageSize); // 获取分页的参数 totalCount = informationService.getTotalCount(); // 获取分页的参数 pageUtil.setRsCount(totalCount); pageSize = pageUtil.getPageSize(); int pageCount = pageUtil.getPageCount(); int currentPage = pageUtil.getCurrentPage(); // 产生分页的工具条 pageTool = pageUtil.createPageTool(PageUtil.Text); //从基础信息读取所有基础信息 infoList = informationService.getAll(currentPage, pageSize,name); System.out.println(infoList+"##############################################################"); } catch (RuntimeException e) { e.printStackTrace(); } return "infoList"; } ``` 然后项目用的是ssh框架,公司技术比较老,大佬莫笑,页面请求跳转 ``` @ParentPackage(value = "struts-default") @Namespace(value = "/") @Action(value = "employAction", results = { @Result(name = "list", location = "/admin/system/employ/employ_list.jsp"), @Result(name = "add", location = "/admin/system/employ/employ_add.jsp"), @Result(name = "edit", location = "/admin/system/employ/employ_edit.jsp"), @Result(name = "infoList",location = "/admin/system/employ/employ_add.jsp"), }) ``` 然后是action的全部,写的比较乱 ``` package com.gyes.employ.action; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.jfree.data.DataUtilities; import org.springframework.beans.factory.annotation.Autowired; import com.gyes.currency.util.BaseAction; import com.gyes.currency.util.DateUtil; import com.gyes.currency.util.GsonUtil; import com.gyes.currency.util.JsonUtil; import com.gyes.currency.util.MessageBean; import com.gyes.currency.util.PageUtil; import com.gyes.employ.bean.Employ; import com.gyes.employ.service.EmployService; import com.gyes.system.dept.bean.Dept; import com.gyes.system.dept.service.DeptService; import com.gyes.system.dictionary.bean.Dict; import com.gyes.system.dictionary.serivce.DictService; import com.gyes.system.information.action.InformationAction; import com.gyes.system.information.bean.Information; import com.gyes.system.information.service.InformationService; import com.gyes.system.information.service.impl.InformationServiceImpl; import com.gyes.system.user.bean.User; /** * 部门action * * @author Administrator * */ @ParentPackage(value = "struts-default") @Namespace(value = "/") @Action(value = "employAction", results = { @Result(name = "list", location = "/admin/system/employ/employ_list.jsp"), @Result(name = "add", location = "/admin/system/employ/employ_add.jsp"), @Result(name = "edit", location = "/admin/system/employ/employ_edit.jsp"), @Result(name = "infoList",location = "/admin/system/employ/employ_add.jsp"), }) public class EmployAction extends BaseAction{ @Autowired private EmployService employService; @Autowired private DictService dictService; @Autowired private InformationService informationService; private Employ employ; private String[] ids; private List<Employ> list; private String name; private Information information; //基础信息集合 private List<Information> infoList; private Map<String, Object> map = new HashMap<String, Object>(); // 显示数 private Integer pageSize; private Integer totalCount; private String pageTool; private Integer employId; // 字典中的性别集合 private List<Dict> employwayList; private String informationId; @Override public String execute() throws Exception { return null; } /** * 分页查询所有用户(list) * * @return * @throws Exception */ public String list() throws Exception { try { if (pageSize == null) { pageSize = 10; } PageUtil pageUtil = new PageUtil(request); pageUtil.setPageSize(pageSize); // 获取分页的参数 totalCount = employService.getTotalCount(); // 获取分页的参数 pageUtil.setRsCount(totalCount); pageSize = pageUtil.getPageSize(); int pageCount = pageUtil.getPageCount(); int currentPage = pageUtil.getCurrentPage(); // 产生分页的工具条 pageTool = pageUtil.createPageTool(PageUtil.Text); list = employService.getAll(currentPage, pageSize,name); } catch (RuntimeException e) { e.printStackTrace(); } return "list"; } /** * 增加就业信息 */ public String add() throws Exception { employ = employService.getEmploy(employ); //从数据字典读取就业方式 employwayList=dictService.getDictList("dic_employway"); return "add"; } /** * 用户基本信息查询 */ public String infoList() throws Exception { try { if (pageSize == null) { pageSize = 10; } PageUtil pageUtil = new PageUtil(request); pageUtil.setPageSize(pageSize); // 获取分页的参数 totalCount = informationService.getTotalCount(); // 获取分页的参数 pageUtil.setRsCount(totalCount); pageSize = pageUtil.getPageSize(); int pageCount = pageUtil.getPageCount(); int currentPage = pageUtil.getCurrentPage(); // 产生分页的工具条 pageTool = pageUtil.createPageTool(PageUtil.Text); //从基础信息读取所有基础信息 infoList = informationService.getAll(currentPage, pageSize,name); System.out.println(infoList+"##############################################################"); } catch (RuntimeException e) { e.printStackTrace(); } return "infoList"; } /** * 同一页面传递用户基本信息的姓名 */ public String getInformationName() throws Exception{ Information list=informationService.getById(informationId); System.out.println(list+"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); return list.getInformationname(); } /** * 保存新增内容 * * @return * @throws Exception */ public String save() throws Exception { try { employ.setCrateTime(DateUtil.getSysDateStr()); Dict dic = new Dict(); dic.setDictId(employ.getEmployway_id()); Dict dict = dictService.getById(dic); employ.setEmployway_id(dict.getDictId()); employ.setEmployWay(dict.getValue()); employService.insertEmploy(employ); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("message", e.getMessage()); } GsonUtil.writeToResponse(map, false); return NONE; } /** * 进入修改 * * @return */ public String update() throws Exception { employ = employService.getById(employ.getEmployId()); //从数据字典读取就业方式 employwayList=dictService.getDictList("dic_employway"); return "edit"; } /** * 保存修改后数据 * * @return */ public String saveEditEmploy() throws Exception { try { employ.setModifyTime(DateUtil.getSysDateStr()); Dict dic = new Dict(); dic.setDictId(employ.getEmployway_id()); Dict dict = dictService.getById(dic); employ.setEmployway_id(dic.getDictId()); employ.setEmployWay(dict.getValue()); employService.updateEmploy(employ); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("message", e.getMessage()); } GsonUtil.writeToResponse(map, false); return NONE; } /** * 判断用户名是否存在 * * @return */ public String AjaxName() throws Exception { MessageBean messageBean = new MessageBean(); messageBean.setFlag(false); List<Information> data = informationService.getInformationList(employ.getEmployName()); if (data.size() > 0) { messageBean.setFlag(true); } PrintWriter out = response.getWriter(); out.print(JsonUtil.objectToJson(messageBean)); return NONE; } /* * 删除部门 */ public String delete() throws Exception { try { employService.deleAbso(ids); map.put("success", true); } catch (Exception e) { e.printStackTrace(); map.put("success", false); map.put("message", e.getMessage()); } GsonUtil.writeToResponse(map, false); return NONE; } public Integer getEmployId() { return employId; } public void setEmployId(Integer employId) { this.employId = employId; } public EmployService getEmployService() { return employService; } public void setEmployService(EmployService employService) { this.employService = employService; } public DictService getDictService() { return dictService; } public void setDictService(DictService dictService) { this.dictService = dictService; } public Employ getEmploy() { return employ; } public void setEmploy(Employ employ) { this.employ = employ; } public List<Employ> getList() { return list; } public void setList(List<Employ> list) { this.list = list; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public String getPageTool() { return pageTool; } public void setPageTool(String pageTool) { this.pageTool = pageTool; } public String[] getIds() { return ids; } public void setIds(String[] ids) { this.ids = ids; } public List<Dict> getEmploywayList() { return employwayList; } public void setEmploywayList(List<Dict> employwayList) { this.employwayList = employwayList; ``` ``` } public List<Information> getInfoList() { return infoList; } public void setInfoList(List<Information> infoList) { this.infoList = infoList; } public InformationService getInformationService() { return informationService; } public void setInformationService(InformationService informationService) { this.informationService = informationService; } public Information getInformation() { return information; } public void setInformation(Information information) { this.information = information; } } ``` 最后是添加页面的代码 ``` <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="/struts-tags" prefix="s"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>菜单增加</title> <link href="${pageContext.request.contextPath}/admin/css/box_css.css" rel="stylesheet" type="text/css" /> <link href="${pageContext.request.contextPath}/admin/css/content_css.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="${pageContext.request.contextPath}/admin/script/jquery.js"></script> <link rel="stylesheet" href="${pageContext.request.contextPath}/admin/css/common.css" type="text/css"/> <script type="text/javascript" src="${pageContext.request.contextPath}/admin/script/common.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/admin/js/ui.js"></script> <link href="${pageContext.request.contextPath}/admin/css/style.css" rel="stylesheet" /> <script language="javascript"> function checkEmployName(){ var formData = jQuery("#form1").serializeArray(); var saveURL = "<%=path%>/employAction!AjaxName?date="+new Date()+""; jQuery.post(saveURL,formData,function(jsonData){ var message = jsonData.message; var flag = jsonData.flag; if (flag == true){ document.getElementById('employName').value=''; mizhu.alert('', '用户名已经存在,请重新填写!',''); } },"json"); } function save(){ var employName=document.getElementById("employName"); if(employName.value==''){ mizhu.alert('', '用户名称不能为空',''); return false; } var employIndustry=document.getElementById("employIndustry"); if(employIndustry.value==''){ mizhu.alert('', '从事行业不能为空',''); return false; } var employ_workTime=document.getElementById("employ_workTime"); if(employ_workTime.value==''){ mizhu.alert('', '工作年限不能为空',''); return false; }else if(employ_workTime.value>=100){ mizhu.alert('', '工作年限请输入小于100的数字!!!!',''); return false; } var employWay=document.getElementById("employWay"); if(employWay.value==''){ mizhu.alert('', '就业方式必须选择!!!',''); return false; } var eduName=document.getElementById("eduName"); if(eduName.value==''){ mizhu.alert('', '教育机构名称不能为空',''); return false; } var companyName=document.getElementById("companyName"); if(companyName.value==''){ mizhu.alert('', '公司名称不能为空',''); return false; } var formData = jQuery("#form1").serializeArray(); var saveURL = "<%=path%>/employAction!save"; $.ajax({ type:"POST", url:saveURL, data:formData, dataType:"JSON", success:function(obj){ //alert(obj.success); if(obj.success){ $.message("success","新增用户信息成功...."); setTimeout(function(){ location.href="${pageContext.request.contextPath}/employAction!list"; }, 1000); }else{ $.message("error",obj.message); } } }); //不提交表单 return false; } function findOut(){ var name=$("#inputname").val(); var saveURL = "${pageContext.request.contextPath}/employAction!infoList?name="+name+""; if (saveURL!="/employAction!infoList?name=") { window.location.href = saveURL; var ifo=document.getElementById("info"); ifo.style.display="block"; alert(informationname); }else{ } return false; }; function yes(){ var emp=document.getElementById("emp"); emp.style.display="block"; return false; } </script> </head> <body> <div class="main"> <div class="increase_box"> <div class="increase_list"> <h3><b>就业信息管理</b><span></span></h3> <div class="increase_main"> <form id="form1" novalidate="novalidate"> <input type="hidden" id="employId" name="employ.employId" value='<s:property value="employ.employId"/>' /> <input type="hidden" id="informationId" name="information.informationId" value='<s:property value="information.informationId"/>' /> <tr> <td align="left" valin="middle"> <form action="${pageContext.request.contextPath}/employAction!infoList" method="post"> <td align="left" valign="middle" style="text-align:right; width:190px;"></td> <input type="text" class="input_k2" placeholder="请输入用户名" value="" id="inputname" /> </td> <td align="left" valign="middle" style="text-align:right; width:80px;"> <a class="byget" href="javascript:" onclick="findOut()">查询</a></td> </form> </tr> <table width="96%" border="0" align="center" cellpadding="0" cellspacing="0" class="box_news_show assessment_show" style="display: block" id="info"> <tr> <th width="10%" align="center" valign="middle" class="borderright">ID</th> <th width="10%" align="center" valign="middle" class="borderright">姓名</th> <th width="10%" align="center" valign="middle" class="borderright">入伍时间</th> <th width="10%" align="center" valign="middle" class="borderright">退伍时间</th> <th width="10%" align="center" valign="middle" class="borderright">入党时间</th> <th width="20%" align="center" valign="middle" class="borderright">所在单位</th> <th width="10%" align="center" valign="middle" class="borderright">状态</th> <th width="20%" align="center" valign="middle" class="borderright">身份证号码</th> <th align="center" valign="middle" class="borderright">录入人员</th> <th width="5%" align="center" valign="middle">操作</th> </tr> <s:iterator value="infoList" status="st"> <tr onMouseOut="this.style.backgroundColor='#ffffff'" onMouseOver="this.style.backgroundColor='#edf5ff'"> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="informationId"/></td> <td align="center" valign="middle" class="borderright borderbottom" ><s:property value="informationname"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="enlistmenttime"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="retiredtime"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="partytime"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="unit"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="stats"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="numbers"/></td> <td align="center" valign="middle" class="borderright borderbottom"><s:property value="entrypersonnel"/></td> <td><input type="submit" value="确定" class="button_1" onclick="yes()"/></td> </tr> </s:iterator> </table> <table width="96%" border="0" align="center" cellpadding="0" cellspacing="0" class="box_news_show assessment_show" style="display: none" id="emp"> <tr> <td width="20%" class="box_news_show_h3">用户名称: </td> <td width="28%" class="box_news_show_h1"> <input name="information.informaationname" type="text" class="input_k2" onblur="checkEmployName()" maxlength="20" id="infoname"/> <span style="color:red;" id="infoname">*</span> </td> <td width="20%" class="box_news_show_h3">从事行业</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.employIndustry" id="employIndustry" class="input_k2" /> <span style="color:red;" id="employIndustry">*</span> </td> </tr> <tr> <td width="20%" class="box_news_show_h3">工作年限</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.workTime" class="input_k2" id="employ_workTime" onkeyup="this.value=this.value.replace(/\D/g,'')"/>&nbsp;年 <span style="color:red;" id="employ_workTime">*</span> </td> <%-- <td width="20%" class="box_news_show_h3">就业方式</td> <td width="28%" class="box_news_show_h1"> <s:select name="employ.employway_id" list="employwayList" listKey="dictId" listValue="value" id="employWay" headerKey="" headerValue="请选择" class="input_k2"></s:select> <span style="color:red;" id="employ_employWay">*</span> </td> --%> </tr> <tr > <td width="20%" class="box_news_show_h3">培训机构名称</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.eduName" class="input_k2" id="eduName" /> <span style="color:red;" id="employ_eduName">*</span> </td> <td width="20%" class="box_news_show_h3">公司名称</td> <td width="28%" class="box_news_show_h1"> <s:textfield name="employ.companyName" id="companyName" class="input_k2" /> <span style="color:red;" id="employ_companyName">*</span> </td> </tr> </table> </div> </div> <div class="increase_bottom"><p> <input type="button" value="保存" class="button_1" onclick="save()"/> <input type="button" class="button_2" value="返回" onclick="history.go(-1)"/> </p> </div> <div class="clear"></div> </div> </form> </body> </html> ``` 求求各位大佬了,救救孩子吧............................
关于公司一个防止重复下载的问题
<p>情况是这样的,现在公司的网站有一个更新产品的功能,就是用户输入激活码,然后我们会判断数据库中的记录以及他的下载权限,有的话则给处对应的下载链接,用户点链接(现在给出的是实际地址)就可以去下载一个更新文件,然后是对更新是有控制的,分为1次性下载,一段时间内可任意下载,以及永久任意下载。但是现在问题在于拥有1次性和一段时间下载权限的用户,他们可以记录下载地址,那么以后不用输入激活码不用经过判断就可以直接下载更新,就会破坏更新的规则,今天突然想到这个,所以对下载做了如下处理:</p> <p>生成下载链接的时候,随机生成一个字符串,设置到session中(叫做token)同时往页面上传递同一个值(用tok表示),并将真实下载地址加密,下载的链接改成download.jsp?<strong>加密地址</strong>&amp;tok</p> <p> </p> <pre name="code" class="java">EncryptUtil eu = new EncryptUtil();//使用默认密钥加密 String enurl = eu.encrypt(forDown.getLink());//加密URL String token = StringUtil.getInstance().getString(7);//生成令牌 request.getSession().setAttribute("tok",token);//设置令牌 sb.append("right|"+forDown.getName()+"|"+enurl+"|"+token); //这里是用ajax返回到页面上,页面上截取字符串生成链接 response.getWriter().print(sb.toString());</pre> <p>生成URL</p> <pre name="code" class="js">var info = data.split('|'); $('#showlink').empty().append('&lt;span&gt;'+info[1]+'&lt;/span&gt;&lt;a href="download.jsp?url='+info[2]+'&amp;t='+info[3]+'"&gt;点击这里下载更新包&lt;/a&gt;');</pre> <p>在download.jsp上判断session中的token和request来的tok是否相同,相同则将加密地址解密还原,并随机生成另一个字符串,设置到session中,覆盖token,然后服务器跳转,跳往<strong>真实下载地址</strong>。这样的话用户复制地址不论粘贴到哪,只要下载过后就都会因为token和tok对不上号而下载不了了。</p> <pre name="code" class="java">String url = request.getParameter("url"); EncryptUtil eu = new EncryptUtil();//加密解密类 String rUrl = eu.decrypt(url);//解密成下载的真实url String tok = request.getParameter("t");//获取页面上的令牌 String token = (String)session.getAttribute("tok");//获取session中的令牌 String newToken = StringUtil.getInstance().getString(7);//生成令牌 if(tok.equals(token)){ session.setAttribute("tok",newToken);//设置令牌 request.getRequestDispatcher(rUrl).forward(request,response); }else{ response.sendRedirect("index.jsp"); }</pre>   <p>但是我不太确定这样做是不是很安全,首先习惯用工具下载文件的用户来说这个链接是没法用工具下了,而且对于一次下载的用户来说,如果半路取消则再也不能下载了(因为生成链接后下载次数就清空了),所以目前的问题总结如下:</p> <p>1、我对限制下载的处理是否安全?</p> <p>2、可不可以提供一些其他的建议或者思路在这样防止重复下载的场合?</p> <p>3、对于一次性下载的用户,是否可以用输出流提供下载,判断输出流完成后再清空次数?(有别的思路也请多多指教啦)</p>
Servlet
我通过servlet的forward的方法从一个一面跳向另一个页面,现在跳转后的页面对应得控制层获取原来页面的参数。 [color=red]跳转前[/color] protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); String name=request.getParameter("name"); String password=request.getParameter("password"); if(name!=null&&password!=null){ try { if(ChatService.instance().addUser(name,password)){ request.getSession(true).setAttribute(name,name); System.out.println("測試保存到Session里的用戶名"+request.getSession(true).getAttribute(name)); //String url="/chat.jsp?name="+name; request.getRequestDispatcher(/chat.jsp).forward(request,response); // response.sendRedirect("/chat.jsp"); } else{ request.setAttribute("tip",name+",注册失败,请重新注册"); request.getRequestDispatcher("/error.html").forward(request,response); } } catch (Exception e) { request.setAttribute("tip",e.getMessage()); request.getRequestDispatcher("/error.html").forward(request,response); } } [color=red] 跳转后[/color] protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //ajax是以utf8的方式设置编码的 request.setCharacterEncoding("UTF-8"); String context = request.getParameter("context"); if(context!=null&&!context.equals("")){ try { String user=request.getParameter("name"); //String user= (String) request.getSession(true).getAttribute("name"); System.out.println("测试获取的用户名:"+user); if(user==null){ user="晓利"; } ChatService.instance().addMsg(user,context); } catch (Exception e) { e.printStackTrace(); } } response.setContentType("text/html;charset=GBK"); PrintWriter out = response.getWriter(); System.out.println("测试聊天记录"+ChatService.instance().getMsg()); out.print(ChatService.instance().getMsg()); } 跳转后页面显示的url:[color=green]http://localhost:8080/welcome?name=join&password=789[/color]从url上看参数明明已经带过来了啊,可是我通过 String user=request.getParameter("name");或者 String user= (String) request.getSession(true).getAttribute("name"); 均获取不到name参数,请各位帮忙找找原因吧,谢谢!
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载 点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。 ...
字节跳动视频编解码面经
三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试...
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体...
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
HashMap容器从字面的理解就是,基于Hash算法构造的Map容器。从数据结构的知识体系来说,HashMap容器是散列表在Java中的具体表达(并非线性表结构)。具体来说就是,利用K-V键值对中键对象的某个属性(默认使用该对象的“内存起始位置”这一属性)作为计算依据进行哈希计算(调用hashCode方法),然后再以计算后的返回值为依据,将当前K-V键值对在符合HashMap容器构造原则的基础上,放置到HashMap容器的某个位置上,且这个位置和之前添加的K-V键值对的存储位置完全独立,不一定构成连续的存储
c++制作的植物大战僵尸,开源,一代二代结合游戏
此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
Python 基础(一):入门必备知识
Python 入门必备知识,你都掌握了吗?
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
项目中的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 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
前言 GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 上周给大家分享了一篇10个让你笑的合不拢嘴的Github项目,而且还拿了7万+个Star哦,有兴趣的朋友,可以看看, 印象最深刻的是 “ 呼吸不止,码字不停 ”: 老实交代,你是不是经常准备写个技术博客,打开word后瞬间灵感便秘,码不出字? 有什么
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了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# 文字导航控件
立即提问