js

阅读 / 问答 / 标签

行尸走肉伊妮德写jss什么意思?

Just Survive Somehow (无论如何都要活下去)

Jss48A一S和DH48s一s能通用吗?

百度网盘(原百度云)是百度推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iPhone版和Windows Phone版,用户将可以轻松将自己的文件上传到网盘上,并可跨终端随时随地查看和分享。2016年,百度网盘总用户数突破4亿。2016年10月11日,百度云改名为百度网盘,此后会更加专注发展个人存储、备份功能。百度网盘(原百度云)是百度推出的一项云存储服务,首次注册即有机会获得2T的空间,已覆盖主流PC和手机操作系统,包含Web版、Windows版、Mac版、Android版、iPhone版和Windows Phone版,用户将可以轻松将自己的文件上传到网盘上,并可跨终端随时随地查看和分享。2016年,百度网盘总用户数突破4亿。2016年10月11日,百度云改名为百度网盘,此后会更加专注发展个人存储、备份功能。

JSS48B时间继电器控制单相电源怎么接

你看下图:8和5是常闭触点,8和6是常开触点,所以你直接把6和8串联到需要控制的电源和用电器回路中就可以

jss20-a时间继电器使用方法

1、jss系列时间继电器有瞬时闭合接点;延时断开接点;延时闭合接点。2、计时开始前(线圈通电前),接点是断开的(延时断开接点有闭合和断开2种,要看说明书)。通电开始,瞬时闭合接点闭合。延时断开接点必须到延时时间才断开。同理如果延时闭合接点必须到延时时间才闭合。如果电源一直接通,则延时时间到的状态保持不变。3、延时时间可以根据需要通过旋钮设定。

行尸走肉第六季第2集JSS是什么意思

是Enid的信念吧,Just Survive Somewhere(JSS),我的理解是“想法设法活下去”。

时间继电器JSS48A和JSS48A-S的区别

时间继电器JSS48A和JSS48A-S有四个区别:如下。1、时间方面:JSS48A是单一的时间值可以整定的继电器,通常用于时间程序控制,或者配合其他继电器进行延时操作。但是JSS48A-S是其动作的时间因其结构或者内部装置而延长一定的时间动作,其动作时间与某一个物理量的大小有一定的函数关系。2、代号方面:JSS48A型号无特征代号,表示是8脚通电延时一组转换,带清零、暂停功能(多档延时)。JSS48A-S特征代号是S,表示是8脚循环延时一组转换,带清零、暂停功能(多档延时)。3、本质方面:JSS48A和JSS48A-S的本质区别就是承受的载荷不同,电流容量大的是接触器,小的是继电器,还有区别使用在主回路的用接触器,控制回路用继电器。4、作用方面:JSS48A的作用是用来接通和分断较大的电流信号,驱动电机等功率设备;JSS48A-S的作用是用来进行信号的转换,不同电压等级的设备之间控制信号的接口,其触点承载能力一般较小,用来驱动接触器等电器元件。扩展资料:凡是继电器的感测元件(线圈)得到动作信号后,其执行元件(触头)要延迟一段时间才动作的电器称为时间继电器。按延时方式分,时间继电器可分为通电延时型和断电延时型。对于通电延时型时间继电器,在其线圈施加合适电压后,立即开始延时,当延时时间一到,便通过执行部分输出控制信号。对于断电延时型时间继电器,在其线圈断电后,立即开始延时,当延时时间一到,便通过执行元件输出控制信号(原先闭合的常开触头现在断开,原先断开的常闭触头现在闭合)。

请问:日本JSS 是什么标准?JIS又是什么标准?

JIS很常见。但JSS不常见。JSS我查到了,可能是日本铁钢联盟(JISF)下面的一个叫做日本铁钢标准物质的机构写的标准。JSS好像出的都是关于钢结构行业的标准。链接如下:http://www.jisf.or.jp/business/standard/jss/index.html

jss硬曲表达什么意思

“JSS硬曲”是指**拒绝情绪低落,选择听有内容的好的歌曲来治愈自己**。

行尸走肉第六季里jss是什么意思

在《行尸走肉》第六季中,“jss”是“just survive somehow”的缩写,意思是“无论如何都要活下来”。

.jss是什么文件

是统筹法的格式

邮政银行卡上面 地区代码 jss是什么意思

徐州-丰县 代码

swiper.js和jQ什么区别,什么关系,

如果要考虑移动端兼容,建议使用swiper。我们团队在网站建设时,尝试过几十款banner插件,最后决定还是使用swiper来制作我们自己公司泰州赛博网络的官网。如果仅仅是需要操作dom对象,那建议你还是使用jq框架。

Angularjs中如何使用轮播图指令swiper的代码实例分享

这篇文章主要介绍了Angularjs中使用轮播图指令swiper的相关知识,非常不错,具有参考借鉴价值 ,需要的朋友可以参考下我们在angualrjs移动开发中遇到轮播图的功能安装 swiper npm install --save swiper 或者 bower install --save swiper引入文件路径指令中的编写方式data 绑定接口返回的轮播列表 vm.home.headImgs对应轮播图返回的数据列表

swiper.js中怎么获取滑动前后的位移值?

普通模式:(当前块-之前块)x宽度move=(mySwiper.activeIndex-mySwiper.previousIndex)*mySwiper.width 。free模式:现在第一块的相对swiper位置-滑动之前位置onFirstInit: function(swiper){location1=mySwiper.slides[0].getOffset().left;}其他事件{location2=mySwiper.slides[0].getOffset().left;move=location2-location1-mySwiper.positions.start;}swiper是个功能插件,使用在移动端,相当于jm,jq是javascript的框架库,主用于平台兼容,应用在比如连版广告等需要滑动操作的地方,局限性比较小。

swiper.js增加一个鼠标移入分页器的小点后就切换展示图片

最近在一个微信公众号中用到了swiper图片轮播插件。接下来为大家介绍插件的用法首先需要下载Swiper1:加载插件,需要用到的文件有swiper.min.js和swiper.min.css文件。<!DOCTYPE html> <html> <head> ... <link rel="stylesheet" href="path/to/swiper.min.css"> </head> <body> ... <script src="path/to/swiper.min.js"></script> </body> </html> 2.HTML内容。<div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> <!-- 如果需要分页器 --> <div class="swiper-pagination"></div> <!-- 如果需要导航按钮 --> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <!-- 如果需要滚动条 --> <div class="swiper-scrollbar"></div> </div> 导航等组件可以放在container之外3.你可能想要给Swiper定义一个大小,当然不要也行。.swiper-container { width: 600px; height: 300px; } 4.初始化Swiper:最好是挨着</body>标签<script> var mySwiper = new Swiper (".swiper-container", { direction: "vertical", loop: true, // 如果需要分页器 pagination: ".swiper-pagination", // 如果需要前进后退按钮 nextButton: ".swiper-button-next", prevButton: ".swiper-button-prev", // 如果需要滚动条 scrollbar: ".swiper-scrollbar", }) </script> </body> 如果不能写在HTML内容的后面,则需要在页面加载完成后再初始化。<script type="text/javascript"> window.onload = function() { ... } </script> 或者这样(jQuery和Zepto) <script type="text/javascript"> $(document).ready(function () { ... }) </script> 以上所述是小编给大家介绍的非常优秀的JS图片轮播插件Swiper,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

swiper.js中怎么获取滑动前后的位移值?

普通模式:(当前块-之前块)x宽度move=(mySwiper.activeIndex-mySwiper.previousIndex)*mySwiper.width 。free模式:现在第一块的相对swiper位置-滑动之前位置onFirstInit: function(swiper){location1=mySwiper.slides[0].getOffset().left;}其他事件{location2=mySwiper.slides[0].getOffset().left;move=location2-location1-mySwiper.positions.start;}swiper是个功能插件,使用在移动端,相当于jm,jq是javascript的框架库,主用于平台兼容,应用在比如连版广告等需要滑动操作的地方,局限性比较小。

nodejs怎么接入thrift

1、进入thrift.exe所在目录执行thrift-0.9.2.exe –gen js:node hello.thrift编译hello.thrift生成nodejs的实现文件。2、在cmd窗口进入生成的gen-nodejs目录,使用npm install thrift安装nodejs的thrift模块,安装完多了一个node_modules目录。3、新建一个js文件作为thrift的客户端。内容如下://引入thrift模块var thrift = require("thrift");//引入hello服务定义文件在同一路径下也要加 ./var Hello = require("./Hello.js"),ttypes = require("./hello_types");//创建连接和客户端var connection = thrift.createConnection("localhost", 19090),client = thrift.createClient(Hello, connection);//连接connection.on("error", function(err) {console.error(err);});//调用helloString函数console.log(client.helloString("tomdog").toString());4、启动上一篇文章中Java server程序,用node指令运行nodejsclient.js,看到控制台输出:[object Promise]。在这里js把Java返回的string当成object。

配电箱系统图中pe,kx,pjs,ljs什么意思?

依次为:Pe有功功率、Kx需要系数、Pjs计算功率、Ijs计算电流。 还有CosΦ表示功率因数。它们之间的关系如下:Pj=Kx*Pe.Ij=Pj/(1.732*Ue*cosφ) , ue=380V为额定电压。

如何理解和熟练运用js中的call及apply

javascript中的call和apply的功能几乎是一样的,唯一的区别就是参数传递的形式不同。call多个参数的话,分成多个参数传递,apply多个参数的话,以数组形式传递call和apply都是对函数的调用,并且能改变函数内部this的指向。如 var say = function(arg1,arg2){alert(this.name+arg1+arg2);}var zhangsan = {"name":"zhangsan"};var lisi = {"name":"lisi"}say.call(zhangsan,"a","b"); //弹出zhangsan a bsay.call(lisi,"a","b"); // 弹出lisi a bsay.apply(lisi,["a","b"]);// 弹出lisi a b

Exploit.JS.Phel.av是什么病毒

先关了瑞星监控,再更新神泣,完了后再杀毒。就这么简单/兄弟 行的话给我追分吧

海尔燃热水器jsq24-t2s(jkf)

您好,建议家里装个太阳能,目前市面上有:太阳能热水器、燃气热水器、电热水器。针对你提出的几点要求建议你选择太阳能热水器。 首先,太阳能热水器实惠,只需要一次性投入几千块钱,就可以使用15年以上,而且不像电热水器那样产生电费,可以计算一下,一个月大约使用20元电费,15年就是5400元,爱洗澡、人口多的家庭电费还会更多。 其次,太阳能热水器可以一年四季保障有热水,而且大家庭使用,电热水器一般容量在60-120L,容量偏小,不能满足5-7口人的大家庭使用,而太阳能热水器的容量在100-360L之间,完全可以根据人口的需要选择适合自己的产品。 最后,太阳能热水器主要是靠阳光吸收热量,产生热水,最节能、安全系数高。而电热水器存在漏电的隐患,燃气热水器存在一氧化碳中毒的隐患,尤其是小孩和老人使用应更加小心。所以,假如你家居住在一年四季阳光比较充足的地区,且住房采光条件好(住平房,或住楼房高层)的用户可以选用普通式太阳能热水器,小高层可选用阳台分体热水器。我是一个买东西会来回比较的人,当时邻居买热水器的时候,在我们的共同对比后他选择了皇明太阳能,这算下来也有7.8年的时间了,听说用着还不错。希望我的答案对你有所帮助。

js 如何获取标签的值

$("td")是获取的所有td标签通过循环遍历也可以通过下标获取$("td").eq(0).text();这是获取下标为0的值也就是第一个td$("td").each(function(){varval=$(this).text();//获取td标签里面的内容如果获取不到改成.html()});如果只想获取某一个td的值那就在那个td上加个idvarval=$("#id").text();如果想获取一部分td的值那就在这些td上写上一样的name值$("td[name="name"]").each(function(){varval=$(this).text();//获取td标签里面的内容如果获取不到改成.html()});

js怎么获取整个表格的数据

1、JS获取表格的简便方法:获取tbody:tBodies 获取thead:tHead 获取tfoot:tFoot 获取行tr:rows 获取列td:cells使用实例: oTable.tBodies[0] oTable.tHead[0] oTable.tFoot[0] oTable.rows[1] oTable.cells[1]2、遍历var oTable=document.getElementById("表格id");oTable.tBodies[0]可以看成是rows和cells组成的二维数组,用两个for循环嵌套遍历一下就可以了

在js中怎样获取当前页面表格中的数据

document.getElementById("id").value

jsp页面table中只让tbody 部分显示滚动条滚动,thead部分不动。。跪求答案????

看看这个,把代码复制到html就可以看到效果<table width="500" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#006600"> <tr> <th height="30">栏目A</th> <th>栏目B</th> <th>栏目C</th> </tr> <tr> <td colspan="3"> <div style="width:500px; height:100px; overflow:auto;"> <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td height="24" bgcolor="#FFFFCC" width="200">aaaa</td> <td bgcolor="#99CC00" width="200">bbbb</td> <td bgcolor="#0066CC" width="200">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> <tr> <td height="24" bgcolor="#FFFFCC">aaaa</td> <td bgcolor="#99CC00">bbbb</td> <td bgcolor="#0066CC">cccc</td> </tr> </table> </div> </td> </tr></table>

在JSP中thead是用来干什么的,有何用处?

这个是一个HTML标记而已,代表表格的"头",还有<tbody>等标签.

html中如何使用js动态添加表格

一、动态加载表格 1.首先在html中为表格的添加位置设置id 即是在html的body标签内部写一个div标签表明表格要添加到此div的内部。如下 <div id="tdl"><div> 2.在javascript中写添加表格的语句 若在当前html文件中,则写在<script>标签内部,如 复制代码 代码如下:<script type="text/javascript" > document.getElementById("tbl").innerHTML="<table><tr><td></td></tr></table>" //此处添加的表格可根据自己需要创建 </script> 若是通过引入js文件,则在js文件(假设是test.js)中直接写如下语句 复制代码 代码如下:document.getElementById("tbl").innerHTML="<table><tr><td></td></tr></table>" 然后再引入自己的html文件 复制代码 代码如下:<script type="text/javascript" src="test.js"></script> 二、 动态添加表格行 1.首先在html中为表格行的添加位置设置id,此位置必须是<tbody>内部(不是特别准确,但根据我的测试就得到此结论,有其他的方法请留言,谢谢),如下 复制代码 代码如下:<table> <thead></thead> <tfoot><tfoot> //tfoot与thead是与tbody配套使用,但我在写的时候,没用也可以。 <tbody id="rows"></tbody> </table> [sS ]* 2.在javascript内容中,要先创建行和单元格,再在<.tbody>中添加行,如下 [code] row=document.createElement("tr"); //创建行 td1=document.createElement("tr"); //创建单元格 td1.appendChild(document.createTextNode("content")); //为单元格添加内容 row.appendChild(td1); //将单元格添加到行内 document.getElementById("rows").append(row); //将行添加到<tbody>中

如何抓取通过网页的js方法查询出动态的表格数据

1、JS获取表格的简便方法:获取tbody:tBodies 获取thead:tHead 获取tfoot:tFoot 获取行tr:rows 获取列td:cells使用实例: oTable.tBodies[0] oTable.tHead[0] oTable.tFoot[0] oTable.rows[1] oTable.cells[1]2、遍历var oTable=document.getElementById("表格id");oTable.tBodies[0]可以看成是rows和cells组成的二维数组,用两个for循环嵌套遍历一下就可以了

js数组拼接,将数组循环出不同名称

$scope.thead应该也是个数组吧var table_head = new Array("服务商", "开户","写卡","续期","激活","入库","挂失","解挂","补卡","售卡","激活比例");for(var i=0;len=$scope.thead.length,i<len;i++){ $scope.thead[i]=table_head[i];}

js如何实现在分页Lable后每页有表头(thead)

把存放数据的单元格写成动态的,点击分页按钮时只刷新存放数据的单元格其实所有的框架点击分页更新数据时都不是更新的整个页面,所以才会每个页面都有表头

js怎么获取table标签下的thead标签下的的值

你好:直接给标签写个id属性js获取var obj = document.ElementGetById("id").innerHtml;alert(obj);jq更方便些

在JSP中thead是用来干什么的,有何用处?

这事XHTML的标签thead 元素用于对 HTML 表格中的表头内容进行分组,而 tfoot 元素用于对 HTML 表格中的表注(页脚)内容进行分组。注释:<thead> 内部必须拥有 <tr> 标签!注释:<thead>、<tbody> 以及 <tfoot> 很少被使用,这是因为糟糕的浏览器支持。我们期望在 XHTML 的未来版本中这种情况会发生变化。

改变透明度在js里面怎么写呢?

写法没错,但是就是得看你的this是什么了。

html5和js如何改变图片的亮度

改变图片的属性值 img.height

改变透明度在js里面怎么写呢?

这样:<script language="javascript">function hide(id){if(document.getElementById(id).filters.alpha.opacity >= 0){document.getElementById(id).filters.alpha.opacity -= 5;window.setTimeout("hide("" + id +"")", 100);}}</script>扩展资料:注意事项此外对于透明度有一点要说明一下,就是在IE中在css中设置透明度的方式filter:alpha(opacity:value)其中value值从0~100;透明度可以通过opacity:value来设置,其中value=0~1.代码如下:<!DOCTYPE html><html><head><title>js动画事件</title><link href="move.css" rel="stylesheet" type="text/css"/><script type="text/javascript" src="move.js"></script></head><body><div id="div1"></div></body></html>

火狐下 如何用JS 取得CSS的 opacity值。

现在假设有这么一段代码<divid="demo"style="color:red;opacity:0.6"><!--0.0表示不透明,1.0表示完全透明--><p>一些文字</p></div>用javascript代码来获取该属性值的方法是:varopacityValue=document.getElementById("demo").style.opacity;大多数浏览器设置元素的opacity的值都是通过例子中的形式来设置的,不过IE浏览器设置透明度的方式为filter:Alpha(opacity=60);<!--0表示不透明,100表示完全透明,不接受小数-->在ie浏览器里面暂时不知道如何获取元素的透明值。我一般都是使用jQuery框架的,使用起来比较简单,也不用去考虑浏览器兼容性的问题,以下为获取元素透明值的jQuery语句:varopacityValue=$("#demo").css("opacity");建议可以到www.w3school.com.cn网站上去了解一下。

戒指xyjs92622是什么意思

xyj是该银饰品牌的缩写,s926说明了戒指的材质是含量量92.6%的926银,也就是人们常说的纯银。22是指戒指的指圈号。

银戒指xyjs925 22是情侣戒指么

根据你提供的信息是看不出来的。xyj是该银饰品牌的缩写,s925说明了戒指的材质是含量量92.5%的925银,也就是人们常说的纯银。22是指戒指的指圈号。至于是不是情侣戒指,最好去购买的地方询问下。

学java开发需要学习js吗

不需要,JavaScript虽然名字里带Java,但实际上和Java并没有什么关系,它使用来写网络脚本的,完全是另外一门语言,因为原公司被Sun收购了,所以加了个Java在名字里面。

Weblogic的JSP问题解决方法

     在做项目的时候 JSP在运行的时候出现了一些问题 现将我的问题解决方法做一个小结 供以后作项目的参考    问题   weblogic 的数据库连接数目在程序运行中不断增长 最后连接数目超过最大数 导致weblogic服务关闭    原因   在操作完数据库后 没有关闭数据库连接 或者是返回结果集(Resultset) 而无法在JSP中关闭数据库连接    解决方法    .在操作完数据库要关闭数据库连接    .尽量不要返回结果集Resultset 可以返回Vector(一个字段) Hashtable(多个字段) 这样可以在javabean中关闭数据库    .如果javabean中返回的是结果集(Resultset) 也可以在javaBean中写一个connectDB(连接数据库) closeDB(关闭数据库)的方法 然后jsp里面调用connectDB() 建立数据库连接 同时就可以对数据库进行操作了 操作数据库完毕 可以通过closeDB() 来关闭数据库    问题   在运行某一个JSP程序的时候 weblogic 的内存陡然增长 而且居高不下 最终导致weblogic 内存不足 甚至宕机    原因   过度使用内存    解决方法    .由于数据量比较大 在对字符串进行操作的时候 使用 + 进行字符串连接 而相信大家对String都非常熟悉 我们也经常要用它来做字符串的连接什么的 例如   String a =b+c file://b c 都是String   但是在实际的编译中却是这样      String a=new StringBuffer() append(b) append(c) toString()   显然 在一个简单的语句中却意外的多生成了 个对象    StringBuffer()    toString返回的一个String   我们比较一下这两段程序的性能   程序片断一      StringBuffer s=new StringBuffer();long start = System currentTimeMillis();for (int i= ;i< ;i++){s += a ;}long stop = System currentTimeMillis();System out println(stop start);   程序片断二      StringBuffer s=new StringBuffer( );//long start=System currentTimeMillis(); for (int i= ;i< ;i++){s append( a ); }long stop=System currentTimeMillis();System out println(stop start);   比较一下结果 差距很明显   至于为什么String的连接这么做 因为String无法直接改变其长度 而必须采用StringBuffer的用法   因此建议使用StringBuffer 的append 方法来进行字符串相连 lishixinzhi/Article/program/Java/hx/201311/26440

js使window.open打开的弹窗不可移动,双击标题栏无效,最小化无效

window.open ("page.html", "newwindow", "height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no") height=100 窗口高度; width=400 窗口宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏。 Resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许; status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许;

用js window.open在新窗口中打开链接,关于设置URL地址设置为变量的问题

你明明已经把href传到openwin方法中了,但是你没有接收,把openwin改下function openwin(url) {alert(url); //获取不到href属性window.open (url,"newwindow","height=600,width=800") ;}

JS 打开新窗口的方法,求助

Window.Open详解Window.Open详解一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,parameters) 其中:pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 三、示例:<SCRIPT> <!-- window.open ("page.html","newwindow","height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no") //写成一行 --> </SCRIPT>脚本运行后,page.html将在新窗体newwindow中打开,宽为100,高为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏。请对照。 上例中涉及的为常用的几个参数,除此以外还有很多其他参数,请见四。四、各项参数 其中yes/no也可使用1/0;pixel value为具体的数值,单位象素。参数 | 取值范围 | 说明 alwaysLowered | yes/no | 指定窗口隐藏在所有窗口之后 alwaysRaised | yes/no | 指定窗口悬浮在所有窗口之上 depended | yes/no | 是否和父窗口同时关闭 directories | yes/no | Nav2和3的目录栏是否可见 height | pixel value | 窗口高度 hotkeys | yes/no | 在没菜单栏的窗口中设安全退出热键 innerHeight | pixel value | 窗口中文档的像素高度 innerWidth | pixel value | 窗口中文档的像素宽度 location | yes/no | 位置栏是否可见 menubar | yes/no | 菜单栏是否可见 outerHeight | pixel value | 设定窗口(包括装饰边框)的像素高度 outerWidth | pixel value | 设定窗口(包括装饰边框)的像素宽度 resizable | yes/no | 窗口大小是否可调整 screenX | pixel value | 窗口距屏幕左边界的像素长度 screenY | pixel value | 窗口距屏幕上边界的像素长度 scrollbars | yes/no | 窗口是否可有滚动栏 titlebar | yes/no | 窗口题目栏是否可见 toolbar | yes/no | 窗口工具栏是否可见 Width | pixel value | 窗口的像素宽度 z-look | yes/no | 窗口被激活后是否浮在其它窗口之上=====================================================【1、最基本的弹出窗口代码】 其实代码非常简单: <SCRIPT LANGUAGE="javascript"> <!-- window.open ("page.html") --> </SCRIPT> 因为着是一段javascripts代码,所以它们应该放在<SCRIPT LANGUAGE="javascript">标签和</script>之间。<!-- 和 -->是对一些版本低的浏览器起作用,在这些老浏览器中不会将标签中的代码作为文本显示出来。要养成这个好习惯啊。 Window.open ("page.html") 用于控制弹出新的窗口page.html,如果page.html不与主窗口在同一路径下,前面应写明路径,绝对路径(http://)和相对路径(../)均可。用单引号和双引号都可以,只是不要混用。 这一段代码可以加入HTML的任意位置,<head>和</head>之间可以,<body>间</body>也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。 【2、经过设置后的弹出窗口】 下面再说一说弹出窗口的设置。只要再往上面的代码中加一点东西就可以了。 我们来定制这个弹出的窗口的外观,尺寸大小,弹出的位置以适应该页面的具体情况。 <SCRIPT LANGUAGE="javascript"> <!-- window.open ("page.html", "newwindow", "height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no") //写成一行 --> </SCRIPT> 参数解释: <SCRIPT LANGUAGE="javascript"> js脚本开始; window.open 弹出新窗口的命令; "page.html" 弹出窗口的文件名; "newwindow" 弹出窗口的名字(不是文件名),非必须,可用空""代替; height=100 窗口高度; width=400 窗口宽度; top=0 窗口距离屏幕上方的象素值; left=0 窗口距离屏幕左侧的象素值; toolbar=no 是否显示工具栏,yes为显示; menubar,scrollbars 表示菜单栏和滚动栏。 Resizable=no 是否允许改变窗口大小,yes为允许; location=no 是否显示地址栏,yes为允许; status=no 是否显示状态栏内的信息(通常是文件已经打开),yes为允许; </SCRIPT> js脚本结束 【3、用函数控制弹出窗口】 下面是一个完整的代码。<html> <head> <script LANGUAGE="JavaScript"> <!-- function openwin() { window.open ("page.html", "newwindow", "height=100, width=400, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行 } //--> </script> </head> <body onload="openwin()"> …任意的页面内容… </body> </html> 这里定义了一个函数openwin(),函数内容就是打开一个窗口。在调用它之前没有任何用途。 怎么调用呢? 方法一:<body onload="openwin()"> 浏览器读页面时弹出窗口; 方法二:<body onunload="openwin()"> 浏览器离开页面时弹出窗口; 方法三:用一个连接调用: <a href="#" onclick="openwin()">打开一个窗口</a> 注意:使用的"#"是虚连接。 方法四:用一个按钮调用: <input type="button" onclick="openwin()" value="打开窗口"> 【4、同时弹出2个窗口】 对源代码稍微改动一下:<script LANGUAGE="JavaScript"> <!-- function openwin() { window.open ("page.html", "newwindow", "height=100, width=100, top=0,left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行 window.open ("page2.html", "newwindow2", "height=100, width=100, top=100, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") //写成一行 } //--> </script> 为避免弹出的2个窗口覆盖,用top和left控制一下弹出的位置不要相互覆盖即可。最后用上面说过的四种方法调用即可。 注意:2个窗口的name(newwindows和newwindow2)不要相同,或者干脆全部为空。OK? 【5、主窗口打开文件1.htm,同时弹出小窗口page.html】 如下代码加入主窗口<head>区:<script language="javascript"> <!-- function openwin() {window.open("page.html","","width=200,height=200") } //--> </script> 加入<body>区: <a href="1.htm" onclick="openwin()">open</a>即可。 【6、弹出的窗口之定时关闭控制】 下面我们再对弹出的窗口进行一些控制,效果就更好了。如果我们再将一小段代码加入弹出的页面(注意是加入到page.html的HTML中,可不是主页面中,否则…),让它10秒后自动关闭是不是更酷了? 首先,将如下代码加入page.html文件的<head>区:<script language="JavaScript"> function closeit() {setTimeout("self.close()",10000) //毫秒} </script> 然后,再用<body onload="closeit()"> 这一句话代替page.html中原有的<BODY>这一句就可以了。(这一句话千万不要忘记写啊!这一句的作用是调用关闭窗口的代码,10秒钟后就自行关闭该窗口。) 【7、在弹出窗口中加上一个关闭按钮】 <FORM> <INPUT TYPE="BUTTON" VALUE="关闭" onClick="window.close()"> </FORM> 呵呵,现在更加完美了! 【8、内包含的弹出窗口-一个页面两个窗口】 上面的例子都包含两个窗口,一个是主窗口,另一个是弹出的小窗口。 通过下面的例子,你可以在一个页面内完成上面的效果。 <html> <head> <SCRIPT LANGUAGE="JavaScript"> function openwin() {OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no,scrollbars="+scroll+",menubar=no"); //写成一行 OpenWindow.document.write("<TITLE>例子</TITLE>") OpenWindow.document.write("<BODY BGCOLOR=#ffffff>") OpenWindow.document.write("<h1>Hello!</h1>") OpenWindow.document.write("New window opened!") OpenWindow.document.write("</BODY>") OpenWindow.document.write("</HTML>") OpenWindow.document.close()} </SCRIPT> </head> <body> <a href="#" onclick="openwin()">打开一个窗口</a> <input type="button" onclick="openwin()" value="打开窗口"> </body> </html> 看看 OpenWindow.document.write()里面的代码不就是标准的HTML吗?只要按照格式写更多的行即可。千万注意多一个标签或少一个标签就会出现错误。记得用OpenWindow.document.close()结束啊。 【9、终极应用--弹出的窗口之Cookie控制】 回想一下,上面的弹出窗口虽然酷,但是有一点小毛病(沉浸在喜悦之中,一定没有发现吧?)比如你将上面的脚本放在一个需要频繁经过的页面里(例如首页),那么每次刷新这个页面,窗口都会弹出一次,是不是非常烦人?:-(有解决的办法吗?Yes! ;-) Follow me. 我们使用cookie来控制一下就可以了。 首先,将如下代码加入主页面HTML的<HEAD>区: <script> function openwin() {window.open("page.html","","width=200,height=200")} function get_cookie(Name) {var search = Name + "=" var returnvalue = ""; if (document.cookie.length > 0) { offset = document.cookie.indexOf(search) if (offset != -1) { offset += search.length end = document.cookie.indexOf(";", offset); if (end == -1) end = document.cookie.length; returnvalue=unescape(document.cookie.substring(offset,end)) } } return returnvalue; } function loadpopup(){ if (get_cookie("popped")==""){ openwin() document.cookie="popped=yes" } } </script> 然后,用<body onload="loadpopup()">(注意不是openwin而是loadpop啊!)替换主页面中原有的<BODY>这一句即可。你可以试着刷新一下这个页面或重新进入该页面,窗口再也不会弹出了。真正的Pop-Only-Once! 写到这里弹出窗口的制作和应用技巧基本上算是完成了,需要注意的是,JS脚本中的的大小写最好前后保持一致。

window.open 怎么去掉最大化和最小化按钮?(js)

在窗体的属性中,将FormBorderStyle改为FixedToolWindow即可

Node.js命令行/批处理中如何更改Linux用户密码浅析

option主要为一些密码加密选项-c, --crypt-methodUse the specified method to encrypt the passwords.The available methods are DES, MD5, NONE, and SHA256 or SHA512 if your libc support these methods.-e, --encryptedSupplied passwords are in encrypted form.-h, --helpDisplay help message and exit.-m, --md5Use MD5 encryption instead of DES when the supplied passwords are not encrypted.-s, --sha-roundsUse the specified number of rounds to encrypt the passwords.The value 0 means that the system will choos输入命令后,按 username:password 格式输入用户名密码,一行一个,如:chpasswdnewghost:4567用这种方法可在node.js中使用:var cp = require("child_process")//更新密码var chpasswd = cp.spawn("chpasswd")var errmsg//查看是否有错误chpasswd.stderr.on("data", function (data) { errmsg += data.toString()})chpasswd.on("exit", function(code) { if (cb) { errmsg ? cb(new Error(errmsg)) : cb() }})//写入密码chpasswd.stdin.write(username + ":" + password)chpasswd.stdin.end()总结

利用node.js如何创建子进程详解

前言node本身为单进程,并使用驱动模式处理并发,为了解决单进程在多核cpu上的资源浪费,node提供了cluster和child_process模块来创建多个子进程。Node.js是单线程的,对于现在普遍是多处理器的机器是一种浪费,怎么能利用起来呢?于是child_process模块出现了。child_process模块可以在其他进程上产生、派生,并执行工作。child_process模块提供了一个ChildProcess的新类,它可以作为从父进程访问子进程的表示形式。Process模块也是ChildProcess对象。当你从父模块访问process时,它是父ChildProcess对象,当你从子进程访问Process是,它是ChildProcess对象了解一个对象无外乎事件、方法、属性。ChildProcess也是一样。每个子进程总带有三个流对象:child.stdin、child.stdout、child.stderr。他们可能会共享父进程的stdio流。这里我们先介绍利用child_process模块中exec、spawn、fork三个方法对子进程的操作。建立node-childProcess文件,在其中创建node-childPro.js文件。其中就一行代码如下:console.log("进程 " + process.argv[2] + " 执行。" );//换成下面的查看process.argv//console.log("进程 " + process.argv + " 执行。" );exec()方法在node-childProcess文件中新建node-childPro-exec.js文件,其中代码如下:const fs = require("fs");const child_process = require("child_process");for (var i = 0; i < 3; i++) { //这里有空格请注意。分别代表node路径 node-childPro.js路径 i第几个进程。 node-childPro.js中的process.argv可以获取这些信息值 var childProcess = child_process.exec("node node-childPro.js "+i, // 回调函数 子进程的输出以回调函数参数的形式返回 function (error, stdout, stderr) { if (error) { console.log(error.stack); console.log("Error code: " + error.code); console.log("Signal received: " + error.signal); } console.log("stdout: " + stdout); console.log("stderr: " + stderr); }); childProcess.on("exit", function (code) { console.log("子进程已退出,退出码 " + code); });}终端执行代码结果如下:G: ode ode-childProcess> node node-childPro-exec.js子进程已退出,退出码 0stdout: 进程 0 执行。stderr:子进程已退出,退出码 0stdout: 进程 1 执行。stderr:子进程已退出,退出码 0stdout: 进程 2 执行。stderr:spawn()方法在node-childProcess文件中新建node-childPro-spawn.js,其中代码如下:const fs = require("fs");const child_process = require("child_process"); for(var i=0; i<3; i++) { var childProcess = child_process.spawn("node", ["node-childPro-spawn.js", i]); childProcess.stdout.on("data", function (data) { console.log("stdout: " + data); });childProcess.stderr.on("data", function (data) { console.log("stderr: " + data); }); childProcess.on("close", function (code) { console.log("子进程已退出,退出码 "+code); });}终端执行代码结果如下:G: ode ode-childProcess> node node-childPro-spawn.jsstdout: 进程 0 执行。子进程已退出,退出码 0stdout: 进程 1 执行。stdout: 进程 2 执行。子进程已退出,退出码 0子进程已退出,退出码 0fork()方法在node-childProcess文件中新建node-childPro-fork.js,其中代码如下:const fs = require("fs");const child_process = require("child_process"); for(var i=0; i<3; i++) { var childProcess = child_process.fork("node-childPro.js", [i]); childProcess.on("close", function (code) { console.log("子进程已退出,退出码 " + code); });}终端执行代码结果如下:G: ode ode-childProcess> node node-childPro-fork.js进程 0 执行。进程 1 执行。子进程已退出,退出码 0进程 2 执行。子进程已退出,退出码 0子进程已退出,退出码 0关于exec、spawn、fork 1.exec函数是对spawn的一种友好封装,增加Shell命令解析,可以直接嵌入复杂的命令 2.exec函数缓存子进程的输出,并将子进程的输出以回调函数参数的形式返回 3.spawn在子线程开始执行后,就开始不断将数据从子进程返回给主进程(应用场景如“系统监控”) 4.spawn是不支持callback函数的,它通过流的方式发数据传给主进程,从而实现了多进程之间的数据交换 5.fork()是spawn()的特殊情景,用于派生Node进程。除了普通ChildProcess实例所具有的所有方法,所返回的对象还具有内建的通讯通道。下载地址:https://gitee.com/wangFengJ/node/tree/master/node-childProcess总结

js的window.scroll怎么用

1、onscroll解释:当元素的滚动条滚动时触发的事件。onscroll事件貌似任何实体元素都可以绑定,这里的实体元素包括DOM元素、window元素、document元素。用法即:element.onscroll=function(){};需要注意的是,滚动条一定要出现,而且滚动条是属于这元素的,例如:1 <div id="wrap" style="height:100px;overflow:auto;">2 <div id="inner" style="height:200px;">content</div>3 </div>因为外层wrap的高度小于内层inner的高度,所以当设置overflow:auto时会出现滚动条,当拖动滚动条时就会触发wrap的onscroll事件,而不是inner的onscroll事件,即这滚动条属于wrap而不是属于inner,明白这点十分重要,对下面理解的scrollTop、scrollHeight一样道理。2、scrollTop解释:元素滚动条内的顶部隐藏部分的高度。scrollTop属性只有DOM元素才有,window/document没有。用法1:获取值 var top = element.scrollTop;//返回数字,单位像素用法2:设置值 element.scrollTop = 200;对上面的例子来说,控制滚动条的位置是wrap.scrollTop=xx;而不是inner.scrollTop,道理同上。兼容性问题:获得整个文档scrollTop,IE是document.documentElement.scrollTop,FF/CH则是document.body.scrollTop.3、scrollHeight解释:元素滚动条内的内容高度。scrollHeight同scrollTop属性一样,只有DOM元素才有,window/document没有。不同的是scrollHeight是只读,不可设置。兼容性问题:获取整个文档scrollHeight,IE/FF/CH都可以通过document.documentElement.scrollHeight或document.body.scrollHeight获得。此外还有scrollLeft,scrollWidth,道理是一样的。4、关于window.scroll(),window.scrollBy(),window.scrollTo()这3个是全局函数,最新的IE/FF/CH都支持。window.scroll(x,y)是让window滚动条滚动到那个x,y坐标。//x是水平坐标,y是垂直坐标。window.scrollBy(-x,-y)是让window滚动条相对滚动到某个坐标,- 10即相对向左/向上滚动10像素。window.scrollTo(x,y)和window.scroll(x,y)一样。

如何给JSP服务器Resin加上SSL认证

、 在WEB服务器中使用OpenSSL套件 1、安装OpenSSL 想要Resin可以响应SSL请求,我们就必需保证WEB服务器上已经安装好了相关的SSL套件。对于中小企业来说,开源免费的OpenSSL提供与SSL相同的认证功能。 OpenSSL的Linux版本可以在www.openssl.org网站上下载。现在它的最新版本是OpenSSL 0.9.8j。 Resin通过它的libexec/libresinssl.so JNI库文件提供对OpenSSL的支持。如果是在类Linux系统下使用OpenSSL,在安装时可以通过下列命令将它安装到指定的位置: ./configure --with-openssl=/usr/local/ssl 如果我们是在Windows系统中使用Resin,那么,我们同样需要在此操作系统下先安装好OpenSSL。Windows下的OpenSSL在www.slproweb.com/products/Win32OpenSSL.html下载,它的最新安装文件是Win32OpenSSL-0_9_8j.exe,其大小为7MB左右。 在Windows系统下,Resin的resinssl.dll文件中包含提供对OpenSSL支持的代码。(在Resin3.0以前的版本是通过resin.dll文件提供支持的。)因此,在Windows系统下只需要安装好OpenSSL就可以让Resin使用它了。OpenSSL在Windows系统下很容易安装,就如同安装其它的应用程序一样简单。 不过,在Windows系统下安装完OpenSSL后,还应当将一些需要的DLL文件复制到Resin的根目录当中。现在假设Resin安装在c: esin-3.2.1目录,OpenSSL安装在c:Program FilesGnuWin32目录。现在打开系统开始菜单的“运行”对话框,在运行框中输入CMD命令,回车后进入命令行终端界面。然后在命令行终端下就可以通过下列所示的命令将OpenSSL安装目录下的相关文件复制到Resin的根目录下: cd resin-3.2.1 copy c:Program FilesGnuWin32inlibssl32.dll c: esin-3.2.1libssl32.dll copy c:Program FilesGnuWin32inlibeay32.dll c: esin-3.2.1libeay32.dll 2、生成SSL认证私钥 SSL认证的密钥由OpenSSL来生成,生成后的密钥应当保存到相应的Resin目录中。因此,在生成密钥前,我们可以在Resin根目录中创建一个keys子目录用来保存将要创建的密钥。在类Linux系统下,我们可以通过下列方式来创建keys目录: cd /resin mkdir keys 在Windows系统下,我们可以在资源管理器中直接在Resin根目录下创建一个新文件夹,并命名为keys即可。 在生成密钥时,OpenSSL会根据其配置文件中设置的内容来生成。在类Linux系统下,这个缺省的配置文件可能在usr/ssl/openssl.cnf或/usr/share/ssl/openssl.cnf下。而Windows系统中不存在这样的文件。 当然,我们还可以自己创建一个相应的配置文件保存到Resin/keys/目录下。这样,在创建密钥时,OpenSSL也会根据这个配置文件中的内容来创建,而且,在创建密钥时不会要求我们根据提示输入缺省的相关信息了。 下面是一个openssl.cnf配置文件的相关内容实例: [ req ] default_bits = 1024 #在这里填入加密键的缺省位数 distinguished_name = req的名称 [ req_distinguished_name ] C = 在这里填入国家的代码,例如CN,代表中国 C_default = ST = 这里填写州或省名称 ST_default = L = 城市 L_default = O = 企业或机构名称 O_default = OU = 组织中某个部门的名称,例如市场部 OU_default = CN = 我们的网站域名,必需是全名,例如www.myweb.com CN_default = emailAddress = 联系的E-Mail邮箱地址 emailAddress_default = 完成OpenSSL配置文件的相关设置后,我们就可以开始为SSL认证创建一个私钥。在WEB服务器上创建私钥时,会要求我们输入相应的密码,这个密码将会在我们使用创建的私钥时要求被输入。因此要牢记这个密码并妥善地保管它。我们还必需将这个密码加入到Resin的配置文件当中。 在类Linux系统下创建私钥时,私钥的文件名可以由我们自己决定,可以通过下列所示命令来完成: openssl genrsa -des3 -out myprikey.key 1024 在Windows系统下创建私钥。得先进入命令行终端界面,然后用CD命令切换到OpenSSL安装目录,再用下列命令产生私钥; c:Program FilesGnuWin32inopenssl.exe genrsa -des3 -out myprikey.key 1024

信号与系统,相位移动,coswt移动后为什么是sinwt,jsinwt移动后为什么是jcoswt?

你学的是信号与系统,按理说这是大学课程了,这个三角函数的基本变换是中学数学的知识内容应该不需要再多做解释了。cos(wt-π/2)=sinwt

SAP JCO JAVA程序通过RFC远程连接SAP RFC函数,在JSP页面显示的代码教一下

JSP页面很简单的,就是HTML基础页面+java的特定代码和格式。你如果是只要显示的代码的话,还不如自己去找个JSP入门基础教程简单看看,自己改代码

jsp中用getAttribute获得的结果,不显示在表格中

你用userbean导入数据库连接的程序了吗?

求助:如何在asp、jsp中调用sap中的报表

jsp和asp都可以支持COM组件的调用,所以可以通过SAP提供的DCOM Connector. asp中还可以直接通过调用bapi或RFM来实现对SAP通讯.方法与在VB中调用一致,只要你安装了sapgui或注册了librfc32.dll库. 比较新的技术是jco,但是没有尝试在jsp环境中直接调用.一般可以先写成applet.

js里的$.ajax({...})是什么意思

jquery 的ajax 不是单纯的js的ajax

为什么我写的ajax读不出本地文本?下面是html和js

1、纯html是无法直接读取txt文件内容的,这是很肯定的没有疑问的。html就是我们常说的静态文件,是无法读取处理服务器或本地机上的TXT文件的。2、读取txt文件内容可以用JS的ajax读取。ajax读取文本内容原理较为简单,重点基础是熟悉XMLHTTP对象的属性和方法。相关例子:<script>function dotxt(){var request=null;if(window.XMLHttpRequest){request=new XMLHttpRequest();}else if(window.ActiveXObject){request=new ActiveXObject("Microsoft.XMLHTTP");}if(request){request.open("GET","1.txt",true);"测试读取1.txt的内容request.onreadystatechange=function(){if(request.readyState===4){if (request.status == 200 || request.status == 0){document.getElementById("vv").innerHTML=request.responseText;}}}request.send(null);}else{alert("error");}} </script><input type="button" value="读取" onclick="dotxt();"/><div id="vv"></div>

ajax获取到json数据怎么显示在jsp页面tb上?

第一步:在你的Action中创建一个json数据public class AjaxAction extends ActionSupport{ /** * */private static final long serialVersionUID = 1L; private String result; public String getResult() { return result; } public void setResult(String result) { this.result = result; }public String getjson() { JSONObject json = new JSONObject(); json.put("name","张三"); json.put("password","123456"); result=json.toString(); return SUCCESS;}第二步:编写struts.xml文件中的内容<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <!-- 设置开发者模式 修改action中的名字可以不用重启服务器 --> <constant name="struts.devMode" value="true"></constant> <!-- 只有在后缀中有(.do)的才经过,这个value可以自己修改 --> <constant name="struts.action.extension" value="do"></constant> <!-- 开启动态方法调用 --> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <package name="default" extends="json-default" namespace=""> <action name="ajax" class="com.action.AjaxAction" method="getjson"> <result name="success">/ajaxjson.jsp</result> <result type="json" ><!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 --> <param name="root">result</param> </result> </action> </package> </struts>凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。parm设置name=“root”表示局部刷新,返回根目录页面.第三步:首先先了解Ajax的原理:这是用jQuery做的,需要引 jsfunction testCheck(num){ $.ajax({ type:"post",//提交方式url:"TestCheckServlet",//提交地址async:true,//是否异步请求dataType:"html",//返回类型data:{"num":num},//传过去的值success:function(data,textStatus){//成功执行的方法var json=eval("("+data+")");//将传过来的数据转json,也可以传过来就是json数据免得麻烦转 alert(json.name); }, error:function(){//失败执行的方法alert("error"); } }) }思路:1、在input的onblur事件中进行验证。2、通过ajax发送手机号给后台Servlet。3、Servlet对手机号进行数据库查询,返回是否存在的文字给ajax。4、ajax收到返回文字后,显示到标签上。总结:Ajax能够让浏览器和服务器进行交互,并且在不刷新页面的情况下对网页内容进行更新,大大提高了用户体验,通过Ajax技术能够构建交互性极强的Web应用程序。

使用jquery的jsonp如何发起跨域请求及其原理详解

前言本文主要给大家介绍的是关于jquery jsonp发起跨域请求及其原理的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的。浏览器的同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。如果协议,端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的。如果要在js里发起跨域请求,则要进行一些特殊处理了。或者,你可以把请求发到自己的服务端,再通过后台代码发起请求,再将数据返回前端。这里讲下使用jquery的jsonp如何发起跨域请求及其原理。先看下准备环境:两个端口不一样,构成跨域请求的条件。获取数据:获取数据的端口为9090请求数据:请求数据的端口为80801、先看下直接发起ajax请求会怎么样下面是发起请求端的代码:<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>跨域测试</title> <script src="js/jquery-1.7.2.js"></script> <script> $(document).ready(function () { $("#btn").click(function () { $.ajax({ url: "http://localhost:9090/student", type: "GET", success: function (data) { $(text).val(data); } }); }); }); </script></head><body> <input id="btn" type="button" value="跨域获取数据" /> <textarea id="text" style="width: 400px; height: 100px;"></textarea></body></html>请求的结果如下图:可以看到跨域请求因为浏览器的同源策略被拦截了。2、接下来看如何发起跨域请求。解决跨域请求的方式有很多,这里只说一下jquery的jsop方式及其原理。首先我们需要明白,在页面上直接发起一个跨域的ajax请求是不可以的,但是,在页面上引入不同域上的js脚本却是可以的,就像你可以在自己的页面上使用<img src=""> 标签来随意显示某个域上的图片一样。比如我在8080端口的页面上请求一个9090端口的图片:可以看到直接通过src跨域请求是可以的。3、那么看下如何使用<script src="">来完成一个跨域请求:当点击"跨域获取数据"的按钮时,添加一个<script>标签,用于发起跨域请求;注意看请求地址后面带了一个callback=showData的参数;showData即是回调函数名称,传到后台,用于包裹数据。数据返回到前端后,就是showData(result)的形式,因为是script脚本,所以自动调用showData函数,而result就是showData的参数。至此,我们算是跨域把数据请求回来了,但是比较麻烦,需要自己写脚本发起请求,然后写个回调函数处理数据,不是很方便。<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>跨域测试</title> <script src="js/jquery-1.7.2.js"></script> <script> //回调函数 function showData (result) { var data = JSON.stringify(result); //json对象转成字符串 $("#text").val(data); } $(document).ready(function () { $("#btn").click(function () { //向头部输入一个脚本,该脚本发起一个跨域请求 $("head").append("<script src="http://localhost:9090/student?callback=showData"></script>"); }); }); </script></head><body> <input id="btn" type="button" value="跨域获取数据" /> <textarea id="text" style="width: 400px; height: 100px;"></textarea></body></html>服务端:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //数据 List<Student> studentList = getStudentList(); JSONArray jsonArray = JSONArray.fromObject(studentList); String result = jsonArray.toString(); //前端传过来的回调函数名称 String callback = request.getParameter("callback"); //用回调函数名称包裹返回数据,这样,返回数据就作为回调函数的参数传回去了 result = callback + "(" + result + ")"; response.getWriter().write(result);}结果:4、再来看jquery的jsonp方式跨域请求:服务端代码不变,js代码如下:最简单的方式,只需配置一个dataType:"jsonp" ,就可以发起一个跨域请求。jsonp指定服务器返回的数据类型为jsonp格式,可以看发起的请求路径,自动带了一个callback=xxx,xxx是jquery随机生成的一个回调函数名称。这里的success就跟上面的showData一样,如果有success函数则默认success()作为回调函数。<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>跨域测试</title> <script src="js/jquery-1.7.2.js"></script> <script> $(document).ready(function () { $("#btn").click(function () { $.ajax({ url: "http://localhost:9090/student", type: "GET", dataType: "jsonp", //指定服务器返回的数据类型 success: function (data) { var result = JSON.stringify(data); //json对象转成字符串 $("#text").val(result); } }); }); }); </script></head><body> <input id="btn" type="button" value="跨域获取数据" /> <textarea id="text" style="width: 400px; height: 100px;"></textarea></body></html>效果:再看看如何指定特定的回调函数:第30行代码回调函数你可以写到<script>下(默认属于window对象),或者指明写到window对象里,看jquery源码,可以看到jsonp调用回调函数时,是调用的window.callback。然后看调用结果,发现,请求时带的参数是:callback=showData;调用回调函数的时候,先调用了指定的showData,然后再调用了success。所以,success是返回成功后必定会调用的函数,就看你怎么写了。<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>跨域测试</title> <script src="js/jquery-1.7.2.js"></script> <script> function showData (data) { console.info("调用showData"); var result = JSON.stringify(data); $("#text").val(result); } $(document).ready(function () {// window.showData = function (data) {// console.info("调用showData");//// var result = JSON.stringify(data);// $("#text").val(result);// } $("#btn").click(function () { $.ajax({ url: "http://localhost:9090/student", type: "GET", dataType: "jsonp", //指定服务器返回的数据类型 jsonpCallback: "showData", //指定回调函数名称 success: function (data) { console.info("调用success"); } }); }); }); </script></head><body> <input id="btn" type="button" value="跨域获取数据" /> <textarea id="text" style="width: 400px; height: 100px;"></textarea></body></html>效果图:再看看如何改变callback这个名称:第23行代码指定callback这个名称后,后台也需要跟着更改。<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>跨域测试</title> <script src="js/jquery-1.7.2.js"></script> <script> function showData (data) { console.info("调用showData"); var result = JSON.stringify(data); $("#text").val(result); } $(document).ready(function () { $("#btn").click(function () { $.ajax({ url: "http://localhost:9090/student", type: "GET", dataType: "jsonp", //指定服务器返回的数据类型 jsonp: "theFunction", //指定参数名称 jsonpCallback: "showData", //指定回调函数名称 success: function (data) { console.info("调用success"); } }); }); }); </script></head><body> <input id="btn" type="button" value="跨域获取数据" /> <textarea id="text" style="width: 400px; height: 100px;"></textarea></body></html>后台代码:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //数据 List<Student> studentList = getStudentList(); JSONArray jsonArray = JSONArray.fromObject(studentList); String result = jsonArray.toString(); //前端传过来的回调函数名称 String callback = request.getParameter("theFunction"); //用回调函数名称包裹返回数据,这样,返回数据就作为回调函数的参数传回去了 result = callback + "(" + result + ")"; response.getWriter().write(result);}效果图:最后看看jsonp是否支持POST方式:ajax请求指定POST方式可以看到,jsonp方式不支持POST方式跨域请求,就算指定成POST方式,会自动转为GET方式;而后端如果设置成POST方式了,那就请求不了了。jsonp的实现方式其实就是<script>脚本请求地址的方式一样,只是ajax的jsonp对其做了封装,所以可想而知,jsonp是不支持POST方式的。<%@ page pageEncoding="utf-8" contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>跨域测试</title> <script src="js/jquery-1.7.2.js"></script> <script> $(document).ready(function () { $("#btn").click(function () { $.ajax({ url: "http://localhost:9090/student", type: "POST", //post请求方式 dataType: "jsonp", jsonp: "callback", success: function (data) { var result = JSON.stringify(data); $("#text").val(result); } }); }); }); </script></head><body> <input id="btn" type="button" value="跨域获取数据" /> <textarea id="text" style="width: 400px; height: 100px;"></textarea></body></html>效果图:再补充一点,回到第一条:CORS头缺少“Access-Control-Allow-Origin” 。有时候你会发现其它都没问题,出现这个错误:这个错误代表服务端拒绝跨域访问。如果出现这个错误,就需要在服务端设置允许跨域请求。response.setHeader("Access-Control-Allow-Origin", "*"); 设置允许任何域名跨域访问设置可以跨域访问:第6行代码或第8行代码,设置其中一个即可。protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); // * 表示允许任何域名跨域访问 response.setHeader("Access-Control-Allow-Origin", "*"); // 指定特定域名可以访问 response.setHeader("Access-Control-Allow-Origin", "http:localhost:8080/"); //数据 List<Student> studentList = getStudentList(); JSONArray jsonArray = JSONArray.fromObject(studentList); String result = jsonArray.toString(); //前端传过来的回调函数名称 String callback = request.getParameter("callback"); //用回调函数名称包裹返回数据,这样,返回数据就作为回调函数的参数传回去了 result = callback + "(" + result + ")"; response.getWriter().write(result);}总结jQuery ajax方式以jsonp类型发起跨域请求,其原理跟<script>脚本请求一样,因此使用jsonp时也只能使用GET方式发起跨域请求。跨域请求需要服务端配合,设置callback,才能完成跨域请求。好了,

请问为什么AJAX在传输数据的时候要使用JSON格式?有什么好处吗?别说规定啊 我想知道原理。

ajax一般用xml,字符串,json三种方式用json,一个结构清晰,二是容易转成对象调用,你可以谷歌一下json格式的好处。。自己查询的更加清晰深刻。

解释jsonp的原理,以及为什么不是真正的ajax

http://blog.csdn.net/u010861514/article/details/46238033jsonp就是ajax,区别就是一个是跨域一个不跨域,还有接收参数形式不一样!

原生js如何实现AJAX、JSONP及DOM加载完成事件

一、JS原生Ajaxajax:一种请求数据的方式,不需要刷新整个页面;ajax的技术核心是 XMLHttpRequest 对象;ajax 请求过程:创建 XMLHttpRequest 对象、连接服务器、发送请求、接收响应数据;下面简单封装一个函数,之后稍作解释 ajax({ url: "./TestXHR.aspx", //请求地址 type: "POST", //请求方式 data: { name: "super", age: 20 }, //请求参数 dataType: "json", success: function (response, xml) { // 此处放成功后执行的代码 }, fail: function (status) { // 此处放失败后执行的代码 } }); function ajax(options) { options = options || {}; options.type = (options.type || "GET").toUpperCase(); options.dataType = options.dataType || "json"; var params = formatParams(options.data); //创建 - 非IE6 - 第一步 if (window.XMLHttpRequest) { var xhr = new XMLHttpRequest(); } else { //IE6及其以下版本浏览器 var xhr = new ActiveXObject("Microsoft.XMLHTTP"); } //接收 - 第三步 xhr.onreadystatechange = function () { if (xhr.readyState == 4) { var status = xhr.status; if (status >= 200 && status < 300) { options.success && options.success(xhr.responseText, xhr.responseXML); } else { options.fail && options.fail(status); } } } //连接 和 发送 - 第二步 if (options.type == "GET") { xhr.open("GET", options.url + "?" + params, true); xhr.send(null); } else if (options.type == "POST") { xhr.open("POST", options.url, true); //设置表单提交时的内容类型 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(params); } } //格式化参数 function formatParams(data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[name])); } arr.push(("v=" + Math.random()).replace(".")); return arr.join("&"); }1、创建1.1、IE7及其以上版本中支持原生的 XHR 对象,因此可以直接用: var oAjax = new XMLHttpRequest();1.2、IE6及其之前的版本中,XHR对象是通过MSXML库中的一个ActiveX对象实现的。有的书中细化了IE中此类对象的三种不同版本,即MSXML2.XMLHttp、MSXML2.XMLHttp.3.0 和 MSXML2.XMLHttp.6.0;个人感觉太麻烦,可以直接使用下面的语句创建: var oAjax=new ActiveXObject("Microsoft.XMLHTTP");2、连接和发送2.1、open()函数的三个参数:请求方式、请求地址、是否异步请求(同步请求的情况极少,至今还没用到过);2.2、GET 请求方式是通过URL参数将数据提交到服务器的,POST则是通过将数据作为 send 的参数提交到服务器;2.3、POST 请求中,在发送数据之前,要设置表单提交的内容类型;2.4、提交到服务器的参数必须经过 encodeURIComponent() 方法进行编码,实际上在参数列表”key=value”的形式中,key 和 value 都需要进行编码,因为会包含特殊字符。每次请求的时候都会在参数列表中拼入一个 “v=xx” 的字符串,这样是为了拒绝缓存,每次都直接请求到服务器上。 encodeURI() :用于整个 URI 的编码,不会对本身属于 URI 的特殊字符进行编码,如冒号、正斜杠、问号和井号;其对应的解码函数 decodeURI(); encodeURIComponent() :用于对 URI 中的某一部分进行编码,会对它发现的任何非标准字符进行编码;其对应的解码函数 decodeURIComponent();3、接收3.1、接收到响应后,响应的数据会自动填充XHR对象,相关属性如下 responseText:响应返回的主体内容,为字符串类型; responseXML:如果响应的内容类型是 "text/xml" 或 "application/xml",这个属性中将保存着相应的xml 数据,是 XML 对应的 document 类型; status:响应的HTTP状态码; statusText:HTTP状态的说明;3.2、XHR对象的readyState属性表示请求/响应过程的当前活动阶段,这个属性的值如下 0-未初始化,尚未调用open()方法; 1-启动,调用了open()方法,未调用send()方法; 2-发送,已经调用了send()方法,未接收到响应; 3-接收,已经接收到部分响应数据; 4-完成,已经接收到全部响应数据;只要 readyState 的值变化,就会调用 readystatechange 事件,(其实为了逻辑上通顺,可以把readystatechange放到send之后,因为send时请求服务器,会进行网络通信,需要时间,在send之后指定readystatechange事件处理程序也是可以的,我一般都是这样用,但为了规范和跨浏览器兼容性,还是在open之前进行指定吧)。3.3、在readystatechange事件中,先判断响应是否接收完成,然后判断服务器是否成功处理请求,xhr.status 是状态码,状态码以2开头的都是成功,304表示从缓存中获取,上面的代码在每次请求的时候都加入了随机数,所以不会从缓存中取值,故该状态不需判断。4、ajax请求是不能跨域的!二、JSONPJSONP(JSON with Padding) 是一种跨域请求方式。主要原理是利用了script 标签可以跨域请求的特点,由其 src 属性发送请求到服务器,服务器返回 js 代码,网页端接受响应,然后就直接执行了,这和通过 script 标签引用外部文件的原理是一样的。JSONP由两部分组成:回调函数和数据,回调函数一般是由网页端控制,作为参数发往服务器端,服务器端把该函数和数据拼成字符串返回。比如网页端创建一个 script 标签,并给其 src 赋值为 http://www.superfiresun.com/json/?callback=process, 此时网页端就发起一个请求。服务端将要返回的数据拼好最为函数的参数传入,服务端返回的数据格式类似”process({‘name":"superfiresun"})”,网页端接收到了响应值,因为请求者是 script,所以相当于直接调用 process 方法,并且传入了一个参数。单看响应返回的数据,JSONP 比 ajax 方式就多了一个回调函数。 function jsonp(options) { options = options || {}; if (!options.url || !options.callback) { throw new Error("参数不合法"); } //创建 script 标签并加入到页面中 var callbackName = ("jsonp_" + Math.random()).replace(".", ""); var oHead = document.getElementsByTagName("head")[0]; options.data[options.callback] = callbackName; var params = formatParams(options.data); var oS = document.createElement("script"); oHead.appendChild(oS); //创建jsonp回调函数 window[callbackName] = function (json) { oHead.removeChild(oS); clearTimeout(oS.timer); window[callbackName] = null; options.success && options.success(json); }; //发送请求 oS.src = options.url + "?" + params; //超时处理 if (options.time) { oS.timer = setTimeout(function () { window[callbackName] = null; oHead.removeChild(oS); options.fail && options.fail({ message: "超时" }); }, time); } }; //格式化参数 function formatParams(data) { var arr = []; for (var name in data) { arr.push(encodeURIComponent(name) + "=" + encodeURIComponent(data[i])); } return arr.join("&"); }1、因为 script 标签的 src 属性只在第一次设置的时候起作用,导致 script 标签没法重用,所以每次完成操作之后要移除;2、JSONP这种请求方式中,参数依旧需要编码;3、如果不设置超时,就无法得知此次请求是成功还是失败;三、模仿JQuery中的ready()事件1、DOMContentLoaded事件,在DOM树加载完成之后立即执行,始终会在load之前执行。 IE9+、FF、Chrome、Safari3.1+和Opera9+都支持该事件。 对于不支持该事件的浏览器,可以使用如下代码:setTimeout(function(){// 代码块}, 0) ; DOMContentLoaded 事件只能通过 DOM2 级方式添加,即采用addEventListener()/attachEvent() 方式添加才能够使用。事件对象不会提供任何额外信息。2、readystatechange事件 IE为DOM文档中的某些部分(区别于 XHR 对象的 readystatechange 事件)提供了该事件,这个事件的目的是提供与文档或元素的加载状态有关的信息,但这个事件的行为有时候也很难预料。支持该事件的对象都有一个readyState属性,注意,不是 event 事件对象。IE、Firefox4+和Opera 支持该事件。readyState属性的值如下: “uninitialized” - 未初始化:对象存在但尚未初始化; “loading” - 正在加载:对象正在加载数据; “loaded” - 加载完毕,对象加载数据完毕; “interactive” - 交互:可以操作对象了,但还没有完全加载; “complete” - 完成:对象已经加载完成;2.1、并非所有的对象都会经历readyState的这几个阶段,如果这个阶段不适用某个对象,则该对象完全可能跳过该阶段,并没有规定哪个阶段适用于哪个对象。这意味着 readystatechange 事件经常会少于4次,相对应的 readyState 属性值也不是连续的。2.2、对于 document 而言,interactive 和 complete 阶段会在于 DOMContentLoaded 大致相同的时刻触发 readystatechange 事件;load 事件和 readystatechange 事件的触发顺序会因页面的外部资源的多少而变化,也就是说,readystatechange 事件并不会一直在 load 事件之前执行。外部资源越多,对 readystatechange 事件就越有利。interactive 和 complete 的顺序也是不一致的,谁都有可能先执行,引用的外部资源越多,对交互阶段越有利。所以为了尽可能早的执行代码,两个状态要同时判断。3、doScroll IE5.5+支持,当页面中有滚动条时,可以用 doScroll("right")/doScroll("down") 等来移动滚动条,这个方法只有等DOM加载完成以后才能用,所以在IE低版本浏览器中可以通过这个属性判断 DOM 结构是否加载完成。介绍这个属性主要是模仿 jquery 中的解决方案。function ready(readyFn) { //非IE浏览器 if (document.addEventListener) { document.addEventListener("DOMContentLoaded", function () { readyFn && readyFn(); }, false); } else { //方案1和2 哪个快用哪一个 var bReady = false; //方案1 document.attachEvent("onreadystatechange", function () { if (bReady) { return; } if (document.readyState == "complete" || document.readyState == "interactive") { bReady = true; readyFn && readyFn(); }; }); //方案2 //jquery也会担心doScroll会在iframe内失效,此处是判断当前页是否被放在了iframe里 if (!window.frameElement) { setTimeout(checkDoScroll, 1); } function checkDoScroll() { try { document.documentElement.doScroll("left"); if (bReady) { return; } bReady = true; readyFn && readyFn(); } catch (e) { // 不断检查 doScroll 是否可用 - DOM结构是否加载完成 setTimeout(checkDoScroll, 1); } }; } };注:setTimeout(checkDoScroll, 1); 目的是让浏览器尽快执行 checkDoScroll 函数,间隔时间设置为 1ms,对当下的浏览器来说是不太可能的。每个浏览器都有自己默认的最小间隔时间,即使时间设置为最小间隔时间,也只是代表隔这些时间过去之后,JavaScript 会把 checkDoScroll 加入到执行队列中,如果此时 JavaScript 进程空闲,则会立即执行该代码。

ajax jsonData 怎么传两个json 格式的数据吗

啊嘎嘎谁是哥哥哥哥

extjs框架工作原理

工作原理 。。 不就是一个js 框架么?管java什么事?就是 用dom Css javascript DHTML 技术,去动态生成网页。。

用过chart.js吗?怎么给里面的数组动态的传值?

将: ["January","February","March","April","May","June","July"]和 [65,59,90,81,56,55,40]作为参数传值就行了,比方说:两个都可以在后台用一个公共变量存储起来,然后赋值就行了,你应该是想画曲线图或者是圆饼图吧,我就是这样的,或者使用ajax来加载数据也行,不过原理是一样的

用jsp做一个像百度那样的搜索框

首先,百度的下拉框应该是基于AJAX原理,获取TextBox的值,然后传入后台,再通过访问数据库来找出类似结果,再动态生成listbox即可。至于jsp,我没学过,只了解一些.net编程,这就帮不上忙了。

ExtJS弹出框层次问题

例子如下: var _win = new Ext.Window({ title:"", width:650, height:400, closeAction:"hide", layout:"fit", modal:true, //设置遮罩,即你要的效果 resiziable:false, items:[items] });

$.ajax传递json格式参数,某属性为null,取值为空字符串的问题。

data : {aa:""},

在jsp中通过Ajax判断注册的用户名是否存在,并且是不用通过跳转页面来判断的代码

<html> <head> <script type="text/javascript"> function $(tagId){ return document.getElementById(tagId); } function checkUserName(){ var name = $("nameId").value; var xhr; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(window.ActiveXObject){ xhr = new ActiveXObject("Microsoft.XMLHttp"); } xhr.open("POST","/Ajax/userNameCheckServlet"); xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xhr.send("userNeme="+name); xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){ var ret = xhr.responseText; var span = $("msgId"); //innerHTML作用 方便往标签中增加内容 span.innerHTML = "<font color="red">"+ret+"</font>" ; } } } </script> </head> <body> <table> <tr> <td>用户名:<input type="text" id="nameId" onblur="checkUserName();"/> <span id="msgId"></span></td> </tr> <tr> <td>密 码:<input type="password"/></td> </tr> <tr> <td align="center"><input type="button" value="确定"/></td> </tr> </table> </body></html>然后在servlet里判断是否用户名存在:package com.wsw.day01;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class UserNameCheckServlet extends HttpServlet{ @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("gbk"); response.setCharacterEncoding("gbk"); String userName = request.getParameter("userNeme"); System.out.println(userName); PrintWriter out = response.getWriter(); if("wsw".equals(userName)){ out.print("is ok"); }else{ out.print("is false"); } out.flush(); }}这里是简单的判断,实际应用的时候要连数据库,查询判断,反正都是这个原理

请问为什么AJAX在传输数据的时候要使用JSON格式?有什么好处吗?别说规定啊 我想知道原理。

ajax传递数据有很多种形式,因为json格式是js的,所以相对来说比较简单,出了json还可以是xml,只不过接受的时候比较麻烦,

Jsp中application.getRealPath()问题

因为参数是接收WEB服务器文件的,而不是URL的。

war包放在tomcat 的webapps下 部署完之后 如果不删除war包 修改工程里的jsp代码,会有什么后果

这个war包会在你每次发布的时候,自动解压缩覆盖你现在的工程。

用tomcat开发jsp,网站的根目录应该放在哪里?是webapps还是ROOT?

webapps是把所有站点都放在这的,ROOT才是默认访问的路径,至于怎么修改网上有好多资料,好运

eclipse开发的jsp网站怎么放在tomcat下独立运行

哥哥啊,你写的jsp本身就有问题吧?建议你下个360浏览器,把jsp直接用360浏览器打开,看看能不能正常显示,要是能的话,你再放到tomcat下。

已经启动了tomcat,JSP文件也放在webapps下,但是用浏览器打开jsp文件显示的只是源代码。怎么做。

比如Myeclipse可以直接用它自带的插件部署,一键将你web工程下对应的文件部署到tomcat服务器目录下,然后在浏览器中用localhost访问,或者自己手动部署,网上资料很多的,对应文件夹下放什么东西,放好后一样红localhost访问tomcat,浏览器源代码jsp,webapps比如Myeclipse可以直接用它自带的插件部署,一键将你web工程下对应的文件部署到tomcat服务器目录下,然后在浏览器中用localhost访问,或者自己手动部署,网上资料很多的,对应文件夹下放什么东西,放好后一样红localhost访问

java jsp怎么发布到tomcat

将jsp部署到tomcat的方法有三种:1、直接放到Webapps目录下Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录 下的应用。也可以将JSP程序打包成一个war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特 性格式的jar包,它是将一个Web程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE环境,如Eclipse、 NetBeans、ant、JBuilder等。也可以用cmd 命令:jar -cvf applicationname.war package.*;甚至可以在程序执行中打包:try{ string strjavahome = system.getproperty("java.home"); strjavahome = strjavahome.substring(0,strjavahome.lastindexof(\))+"\bin\"; runtime.getruntime().exec("cmd /c start "+strjavahome+"jar cvf hello.war c:\tomcat5.0\webapps\root\*"); } catch(exception e){system.out.println(e);}webapps这个默认的应用目录也是可以改变。打开Tomcat的conf目录下的server.xml文件,找到下面内容:<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeloy="true" xmlValidation="falase" xmlNamespaceAware="false">

springmvc直接返回json会走视图解析吗

不会。在使用springmv此注解之后不会再走json视图解析器,而是直接将数据写入到输出流中,效果等同于使用response对象输出指定格式的数据。SpringWebMVC是一种基于Java的实现了MVC设计模式的、请求驱动类型的、轻量级Web框架。

jsI4P时间继电器星三角实物接线图

会单一接触器就能看懂!

使用travis-ci如何持续部署node.js应用详解

前言在开始之前,我们先来简单介绍下Travis-ci,Travis-ci是一款持续集成(Continuous Integration)服务,它能够很好地与Github结合,每当代码更新时自动地触发集成过程。Travis-ci配置简单,很多nodejs项目都用它做自动测试。然而,对于持续集成,仅做到自动测试是不够的,还要有后续的自动部署,才能完成“提交代码 => 自动测试 => 自动部署”的集成链条。本文以nodejs应用为例,来谈谈如何利用travis-ci完成自动部署。话不多说,来一起看看详细的介绍:基本原理从自动测试到自动部署的核心问题是测试机与生产服务器的信任问题,即如何安全地把程序包传输到生产服务器。市面上的部署工具如scp、ansible、chef,都绕不开这个核心问题。以scp为例,测试机登录生产服务器的方式有两种:密码和秘钥。密码登录方式需要交互式地输入密码,总不能每次测试的时候,人为地输入密码吧,所以密码方式行不通。秘钥的方式可以实现自动登录,但首次将测试机的公钥传输给生产服务器仍然需要密码。似乎走入了死胡同,但办法总是有的。我们知道开发机是可以登录到生产服务器的,那么我们就可以将开发机的公钥复制到生产服务器,将开发机的私钥复制到测试机,测试机通过私钥来伪装成开发机,自动地登录到生产服务器。解决了自动登录的问题,另一个问题是怎么将开发机的私钥复制到测试机上。由于测试机每次都是新开的一个虚拟机,这个新开的虚拟机IP不固定,所以没办法直接登录上去。解决办法是将私钥文件作为代码库的一部分提交,这样测试机每次从代码库上拉取代码的同时也获取到了秘钥文件,通过这种方式就实现了私钥从开发机复制到测试机。将私钥文件提交到代码库有一个很严重的安全性问题,即任何人只要得到了这个私钥文件,他就可以随心所欲的操纵生产服务器。幸好,travis-ci提供了加密方案,它能够将私钥文件加密,加密后的文件只在当前代码库有效。总的来说,通过复制私钥完成自动登录以及对私钥加密来保障安全性,我们就可以建立起测试机与生产服务器的信任通道,测试机就可以安全地操作生产服务器完成自动部署。配置现在我以scp方式部署nodejs应用为例,来说明travis-ci做自动部署的配置。首先,建立起开发机与生产服务器的信任关系:ssh-copy-id username@host然后,加密你的私钥,私钥文件通常在~/.ssh/id_rsa。加密私钥文件需要使用travis这个命令行工具,它是一个ruby包,使用gem安装:gem install travistravis login输入账号密码登录成功后,使用travis encrypt-file加密:travis encrypt-file ~/.ssh/id_rsa --add上面命令执行完后,会生成一段解密命令并添加到.travis.yml中:before_install: - openssl aes-256-cbc -K $encrypted_830d3b21a25d_key -iv $encrypted_830d3b21a25d_iv -in ~/.ssh/id_rsa.enc -out ~/.ssh/id_rsa -d接下来,把加密后的私钥文件(id_rsa.enc)复制到代码库中,千万要注意不要错把未加密的私钥文件(id_rsa)复制到你的代码库中。然后把上面的解密命令的-in ~/.ssh/id_rsa.enc改为-in id_rsa.enc。通过上面的过程就基本建立测试机与生产服务器的信任关系,但还有一些小细节要处理。例如,降低id_rsa文件的权限,否则ssh处于安全方面的原因会拒绝读取秘钥;将生产服务器地址加入到测试机的信任列表中,否则连接时会询问是否信任服务器。更改后的配置如下:before_install: - openssl aes-256-cbc -K $encrypted_830d3b21a25d_key -iv $encrypted_830d3b21a25d_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d - chmod 600 ~/.ssh/id_rsa - echo -e "Host 102.201.64.94 StrictHostKeyChecking no " >> ~/.ssh/config最后,测试机就可以愉快地操作生产服务器了,例如下面是一个nodejs应用的.travis.yml文件配置:language: node_jsnode_js: - "4.4.4"before_install: - openssl aes-256-cbc -K $encrypted_830d3b21a25d_key -iv $encrypted_830d3b21a25d_iv -in id_rsa.enc -out ~/.ssh/id_rsa -d - chmod 600 ~/.ssh/id_rsa - echo -e "Host 102.201.64.94 StrictHostKeyChecking no " >> ~/.ssh/configscript: - npm run testafter_success: - npm prune --production # 删除devDependencies - tar -jcf indoor-server.tar.bz2 * # 打包并压缩代码 - scp indoor-server.tar.bz2 jingsam@102.201.64.94:~/ # 复制到生产服务器上 - ssh jingsam@102.201.64.94 "mkdir -p indoor-server && tar -jxf indoor-server.tar.bz2 -C indoor-server" # 解压 - ssh jingsam@102.201.64.94 "cd indoor-server && pm2 startOrReload pm2.json" # 重启pm2总结本篇文章讲的自动部署其实与nodejs关系不大,完全适用于各种语言的自动部署,其原理都是相通的。好了,

SpringMVC项目加载不出css和js

参见 http://www.blogjava.net/fiele/archive/2014/08/24/417283.html

jsp 如何将一行文字置底

这不是JSP的问题,是html+css的问题了。关于不换行的问题,<td width="99%" nowrap>靠近页面底部的问题,好久没搞html了,抱歉!

jsp中中的nowrap是什么意思,可以不写不?

nowrap 属性规定表格单元格中的内容不换行

jsp标签中的 "${表达式}"表示什么?

表示获取后台传过来的值
 首页 上一页  1 2 3 4 5 6 7 8 9 10  下一页  尾页