更多的开发经验

//合并所有边框
<table> style="border: solid; border-collapse: collapse;"
//统计表中最大的行数,即可获得表中有多少数据
"select max(rownum) from t_paper"
//<div>让div跟随滚动条滚动
position: fixed;
//登录框输入中文传到后台乱码解决办法
String stu_name = new String(req.getParameter("stu_name").getBytes("ISO-8859-1"),"utf-8");
============================================================================================================================================
//HashMap的遍历方法
HashMap<String, Session> socketMap = new HashMap<String, Session>();
Set<String> keys = socketMap.keySet();
Iterator it= keys.iterator();
while(it.hasNext()){
String key = (String) it.next();
Session temp = socketMap.get(key);
temp.get×××
}
============================================================================================================================================
//符合JSON格式的字符串转JSON对象
String str;
json = JSON.parse(str)
============================================================================================================================================
//倒计时方法:
var time = parseInt(str.time);//得到开始的时间(此时间相当于getTime())并转成INT型
var $test_t = $(".test_time").text(); //获得实际的考试时间
var test_time = parseInt($test_t);//将考试时间转换成整型
var time_sec = parseInt(test_time*60*1000);//考试时间转换成毫秒值
var end_time = time+time_sec;//得到结束考试的时间毫秒值
if(type == "start_exam"){
setInterval(function() {
var date = new Date();//获得当前系统时间
var date_time = parseInt(date.getTime());//获得当前系统时间毫秒值
var sec = Math.floor((end_time - date_time)/1000);//结束的时间减去当前时间得到剩余的倒计时时间
var hour = 0;
var min = 0;
if(sec > 60){
min = sec/60;
sec = sec%60;
}
if(min > 60){
hour = min/60;
min = min%60;
}
sec = parseInt(sec);//调用parseInt()方法将小数点后的数字去掉
min = parseInt(min);
hour = parseInt(hour);
if(sec < 10){
sec = "0"+sec;
}
if(min < 10){
min = "0"+min;
}
if(hour < 10){
hour = "0"+hour;
}
$("#end_time").text(hour+":"+min+":"+sec);
-----------------------------------------------------------------------------------------------------------------------------------------------
//计时器
var index = 0;
function setTime(){
var second = parseInt(index % 60);
var minute = parseInt((index % 3600) / 60);
var hour = parseInt(index / 3600);
second = second<10? "0"+second : second;
minute = minute<10? "0"+minute : minute;
hour = hour<10? "0"+hour : hour;
$("#showTime").html(hour+":"+minute+":"+second);
index++;
}
============================================================================================================================================
//JS中字符串转Int型
1、Number()比较繁琐,相对不合理;
2、parseInt()最为常用,能够过滤掉非数字字符,如123blue会转换成123;
3、parseFloat()与第二点类似,但是这个函数对第一个小数点有效,第二个小数点后无效;
============================================================================================================================================
//获得某标签某属性的值
var $num = $("#111").attr("属性名");
============================================================================================================================================
//WebSocket带参方法
客户端:
websocket = new WebSocket("ws://localhost:9090/TheOSTA/wait/参数");
服务器:
@ServerEndpoint("/wait/{num}")//路径带参
private static CopyOnWriteArraySet<WaiteToExam> webSocketSet = new CopyOnWriteArraySet<WaiteToExam>();
private static HashMap<String, Session> socketMap = new HashMap<String, Session>();
@OnOpen
public void onOpen(@PathParam("num")String num, Session session){
this.session = session;
this.num = num;
webSocketSet.add(this);
socketMap.put(num, session);//键值对储存session
}
============================================================================================================================================
//根据字符拆解字符串
var str;
var result = str.split("?")[index];
============================================================================================================================================
//回去看fileupLoad
============================================================================================================================================
//使用过滤器前,将过滤器的req resp强转为HttpServlet
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
============================================================================================================================================
//点击事件,改变某标签的ID等属性值的方法
$(function(){
$("#stop").click(function(){//原本的ID是stop
if($(this).attr("id") == "stop"){
var stop = ‘{"type": "stop_exam"}‘;
websocket.send(stop);
$(this).text("继续考试");
$(this).attr("id", "go_on");//改变属性的方法
clearInterval(runTime);
}else{
alert($("#end_time").text());
$(this).text("暂停考试");
$(this).attr("id", "stop");
}
});
});
============================================================================================================================================
//prop用来处理标签固有属性,attr则处理自定义的属性
对于复选框改变其是否选择的属性,最好使用prop,这样能保证设置有效,如果使用attr则第一次有效,之后无效
============================================================================================================================================
//JS当中向数据增加或删除数据
var arr = new Array();
arr .push($num);//向数组添加一个数据
arr .splice($num);//向数据删除一个数据
============================================================================================================================================
//JQ当中$.each()的用法
$("input[id=‘check‘]").each(function(i, y){//i为遍历的底标
var $num = $(y);//将DOM对象转为JQ对象的方法
alert($num.attr("name"))
})
============================================================================================================================================
//设置背景为灰,让背景后页面无法点击
#hidebg{position:absolute;left:0px;top:0px; background-color:#c0c0c0;width: 100%; filter:alpha(opacity=60);opacity:0.6;height: 100%;}
width:100%; /*宽度设置为100%,这样才能使隐藏背景层覆盖原页面*/
filter:alpha(opacity=60); /*设置透明度为60%*/
opacity:0.6; /*非IE浏览器下设置透明度为60%*/
============================================================================================================================================
//JQ中删除数组里的某个数据(splice两个参数,第一个是数组中的一个序号,第二个是要删除的元素个数)
var arr = [‘a‘,‘b‘,‘c‘,‘d‘];
arr.splice($.inArray(‘c‘,arr),1);
alert(arr);
============================================================================================================================================
//清空JS中的数组数据
var break_num = new Array();
break_num.splice(0, break_num.length);
============================================================================================================================================
//文件下载
<a href="jsp/download.jsp?path=<%=getServletContext().getRealPath("stu_score.xls") %>"></a>

<body>
<%
response.setCharacterEncoding("utf-8");
String pat = request.getParameter("path");
pat = new String(pat.getBytes("iso-8859-1"));
File file = new File(pat);
InputStream in = new FileInputStream(file);
OutputStream os = response.getOutputStream();
response.addHeader("Content-Disposition", "attachment;filename="+new String(file.getName().getBytes("gbk"),"iso-8859-1"));
response.addHeader("Content-Length", file.length()+"");
response.setContentType("application/octet-stream");
int data = 0;
while((data = in.read()) != -1){
os.write(data);
}
os.close();
in.close();

/* response.setCharacterEncoding("utf-8");
String pat = request.getParameter("path");
pat = new String(pat.getBytes("iso-8859-1"));
String fileName = pat.substring(pat.lastIndexOf("/"));
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
su.setContentDisposition(null);
su.downloadFile(fileName); */
%>
</body>
============================================================================================================================================
//service的做法(类似于DAO层,用工厂进行实例,然后serverlet类里只在doget\dopost里像DAO那样调方法,调方法时将req\resp传参过去)
============================================================================================================================================
//$().each()与$.each()区别
$().each()在DOM对象上的处理比较多,比如下面的例子:
$("input").each(function(i,v){
if($(this).attr("checked") == true){
}
});
$.each()更多的用来遍历数组或对象:
//遍历数组:
var arr = [[1,2,3],[4,5,6],[7,8,9]];
$.each(arr, function(i,item){
console.log(item[0])//输出1 4 7
})
//遍历对象:
var obj = {one:1, two:2, three:3};
$.each(obj,function(key, value){
console.log(obj[key])//输出1 2 3
})
============================================================================================================================================
解决JSP页面上让Double数值正常显示的问题,不再显示科学计数:
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> //导包
<fmt:formatNumber value="${OnePackage.data_price }" pattern="0.0000"/> //value就是要显示的数值 pattern是显示的格式
============================================================================================================================================
归属地:导area.js这个JS
<div>
<select id="s_province" name="s_province"></select>??
<select id="s_city" name="s_city" ></select>??
<script class="resources library" src="js/area.js" type="text/javascript"></script>
<script type="text/javascript">_init_area();</script>
</div>

<script>
var Gid = document.getElementById ;
var showArea = function(){
Gid(‘show‘).innerHTML = "<h3>省" + Gid(‘s_province‘).value + " - 市" +
Gid(‘s_city‘).value + " - 县/区" +
Gid(‘s_county‘).value + "</h3>"
}
Gid(‘s_county‘).setAttribute(‘onchange‘,‘showArea()‘);
</script>
============================================================================================================================================
返回上一页:
============================================================================================================================================
$(document).keydown(function(even){
console.log("even:"+even);
if(event.keyCode == ‘13‘){
console.log(‘回车键!‘);
$(‘#login‘).click();//设置敲击此快捷键后ID为login的按钮触发点击事件
}
});
============================================================================================================================================

时间: 2024-08-08 13:18:15

更多的开发经验的相关文章

oracle数据库应用开发经验

l  日志表应该以时间做分区,方便清理 一般应用都会有一些表用来记录用户操作日志,数据变更记录,交易流水等日志型的库表.这些表最好按时间字段做分区,这样在迁移或者清理历史记录时会比较方便,借助oracle的分区交换清理特性,效率比delete高很多. l  频繁访问的sequece应该增加cache Oracle在创建序列可以指定cache参数,如果打开这个参数,Oracle就可以预先生成一些sequece,这样应用获取sequece相互争用数据块的概率就会减少,加快获取sequece速度. l

【Bugly干货分享】iOS内存管理:从MRC到ARC实践

Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 对于iOS程序员来说,内存管理是入门的必修课.引用计数.自动释放等概念,都是与C语言完全不同的.搞明白这些,代码才有可能不 crash.然而就是这么牛逼的内存管理,着实让我这个从 C 转过来的老程序员头疼了一段时间. [C++ 程序员的迷惑和愤怒] iOS 内存管理的核心是引用计数.与众多五年甚至更多以上开发经验的程序员一样,笔者当初是

【现身说法】玩游戏不如自己开发游戏

内容简介 [现身说法]玩游戏不如自己开发游戏 自己开发游戏比玩游戏好玩100倍 现在这个时代,众多智能产品的出现,使得游戏市场风云变换.一时间,手游和更新奇的游戏形式(例如虚拟现实)成了继小霸王,街机,Game Boy,PS,PC游戏之后的又一霸主. 这也使得玩游戏的人数与日俱增,App Store和Google Play这两个iOS和Android最大的App平台,超过60%是游戏类App.下图是2015第一季度Google Play的App分配比例: 我国的先辈们说过:"先天下之忧而忧,后天

[转]移动web开发经验总结

1.-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios和android下点击元素时出现的阴影. 备注:transparent的属性值在android下无效. 2.-webkit-appearance:none可以同时屏蔽输入框怪异的内阴影. 3.-webkit-transform:translate3d(0, 0, 0)在ios下可以让动画更加流畅(这个属性会调用硬件加速模式),但是在android下不可乱用,很多见所未见的bug就是

(java web后端方向)如何让你的简历为你争取到更多的面试机会,内容来自java web轻量级开发面试教程

我们在做培训时,会发现一个不合理的情况,一些程序员能力不错,在公司里也是技术牛人,但发出去的简历往往会石沉大海,没有回复.对于刚毕业的大学生或工作年限在2年之内的程序员,这个情况会更严重. 这种情况下,其实不是你的能力有问题,而是简历筛选人(往往是人事或技术面试官)无法从简历上看出你很牛,或者即使能从简历上感觉到你能力很强,但会感觉到你的能力和公司的需求不匹配.不管是哪种情况,结果都一个,你甚至得不到技术面试的机会. 笔者在这里,将根据面试多个候选人(至今有100以上)的经验,来向大家展示准备简

Web前端开发经验总结

 随着互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化.网页不再只是承载单一的文字和图片,各种丰富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的,优才学院总结了Web前端开发经验,与大家一起分享. 首先从WEB标准说起,"WEB标准"是一系列标准的总称,包括HTML4.0.XHTML1.1.CSS2.1.XML1.0.RSS2.0.ECMAScript1.1.DOM1.0等,这

AngularJS开发经验(转)

AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态文本展示设计的声明式语言,但要构建WEB应用的话它就显得乏力了.所以我做了一些工作(你也可以觉得是小花招)来让浏览器做我想要的事. 一.AngularJS 中的精美特性 双向绑定 上面的例子已经说明了,我们可以像 PHP Smarty 模板一样在 HTML 中写表达式,用 {{ 和 }} 包起来.在 AngularJS 里,View 和 Model 是在 Controller 里面绑定的,所以无论你在 Vi

干货分享:十年大厂资深程序员的开发经验总结

本文由腾讯云加社区整理和发布,原文链接:cloud.tencent.com/developer/article/1004735,内容有删减和改动. 1.引言 在互联网一线做了十年的程序开发,经历了网易.百度.腾讯研究院.MIG 等几个地方,陆续做过 3D 游戏.2D 页游.浏览器.移动端翻译 app 等.积累了一些感悟,但必然有依然幼稚的地方,就当抛砖引玉,聊为笑谈. (本文同步发布于:http://www.52im.net/thread-2162-1-1.html) 2.关于作者 康亮: 腾讯

2019年终总结&amp;小半年流媒体服务器开发经验总结

目录 2019年终总结&小半年流媒体服务器开发经验总结 19年开发小结 流媒体服务框架设计 登录服开发 ffmpeg音视频服务开发 音视频控制 流媒体服务开发小结 rtp处理 视频的合成&音视频缓冲区 音视频编码 回顾19展望20 2019年终总结&小半年流媒体服务器开发经验总结 时间转瞬即逝,转眼间19年已经过去了,人愈来愈来老,却不见人心和物质的提升,期望2020年能有一个崭新的自己. 今年因为发展原因,从嵌入式跳槽做互联网后端了,干了一年突然转行,自己也很纠结这么做对不对,但