自己工作过程中小知识点记录(仅供参考)

1.关于HTML5 中页面的跳转
    <a href="http://ecuatmapps.taikang.com/ecsw/wxlist.jsp?openid='${opneid}'" data-role="button"  data-theme="k">
    在有些时候会出现页面跳转不过去,即在本页面跳转(http://ecuatmapps.taikang.com/ecsw/CourtLove.jsp#/ecsw/wxlist.jsp?openid='null'在原地址后加#号拼接跳转)。跳转页面表现为 JS或CSS没加载成功的样子!
    可以尝试添加 rel="external" 属性,表示此链接是打开一个新页面,就不会存在这种问题了



有时候会出现从Servlet跳转到JSP页面时JS和Css样式不加载,但是直接跳转页面时样式正式加载,可以检查下看引用的JS和Css样式是否是相对路径,如果是的话,改成绝对路径应该就ok了 。


在使用js或者jQuery获取控件(例如:button、checkbox、radiobutton等)的值时,也是需要先刷新,否则无法获取到最新的值。(http://blog.csdn.net/zht666/article/details/8560765)




2.关于JSP页面的JAVA小脚本
    在同一个JS页面,所有的小脚本是默认在同一个小脚本下,抽象的来说就是同一个JSP页面的小脚本的JAVA代码相当于在同一个类中,所以书写多段小脚本是要注意变量的使用和命名。
    JQuery中,$("id").attr("checked",false/"checked");设置复选框的选中与取消。



3.JS判断操作系统
    function detectOS() { 
var sUserAgent = navigator.userAgent; 

var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows"); 
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh") || (navigator.platform == "MacIntel"); 
if (isMac) return "Mac"; 
var isUnix = (navigator.platform == "X11") && !isWin && !isMac; 
if (isUnix) return "Unix"; 
var isLinux = (String(navigator.platform).indexOf("Linux") > -1); 

var bIsAndroid = sUserAgent.toLowerCase().match(/android/i) == "android";
if (isLinux) {
if(bIsAndroid) return "Android";
else return "Linux"; 
}
if (isWin) { 
var isWin2K = sUserAgent.indexOf("Windows NT 5.0") > -1 || sUserAgent.indexOf("Windows 2000") > -1; 
if (isWin2K) return "Win2000"; 
var isWinXP = sUserAgent.indexOf("Windows NT 5.1") > -1 || 
sUserAgent.indexOf("Windows XP") > -1; 
if (isWinXP) return "WinXP"; 
var isWin2003 = sUserAgent.indexOf("Windows NT 5.2") > -1 || sUserAgent.indexOf("Windows 2003") > -1; 
if (isWin2003) return "Win2003"; 
var isWinVista= sUserAgent.indexOf("Windows NT 6.0") > -1 || sUserAgent.indexOf("Windows Vista") > -1; 
if (isWinVista) return "WinVista"; 
var isWin7 = sUserAgent.indexOf("Windows NT 6.1") > -1 || sUserAgent.indexOf("Windows 7") > -1; 
if (isWin7) return "Win7"; 

return "other"; 
    } 
4.忽略MyEclipse中的JSP 以及 @override报错
   忽略JSP报错:windows-preferences-MyEclipse Enterprise Workbench -Validation中 Build下的选项全去掉。重新编译
   @override报错:这个是JDK5.0的一个BUG,把JDK版本改成1.6 然后重新编译,如果还是报错那么:windows-preferences-compiler- Compiler compliance level 改成6.0

5.main方法无法运行

   java.lang.UnsupportedClassVersionError: Bad version number in .class file
   造成这种过错是ni的支撑Tomcat运行的JDK版本与支撑application运行的JDK版本不一致导致的.
   把它们的JDK版本改成一致步骤如下:
   1.Window --> Preferences -->Java --> compiler中的compiler compliance level对应的下拉菜单中选择JDK版本.

   2.Window --> Preferences -->MyEclipse --> Servers -->Tomcat --> Tomcat n.x -->JDK中的Tomcat JDK name下的下拉菜单中选择自身电脑上安装的JDK版本(必需与步骤1中的JDK版本一致).

6.JQuery 简单的弹出框代码

<strong><span style="font-size:18px;"><span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>弹窗</title>
		<style type="text/css">
body {
	margin: 0;
	padding: 0;
}

#bg {
	background: #000;
	position: absolute;
	left: 0;
	top: 0;
	filter: "Alpha(opacity=20)";
	opacity: 0.2;
	display: none;
}

#win {
	width: 200px;
	height: 200px;
	position: absolute;
	left: 50%;
	top: 50%;
	margin: -100px -100px 0;
	border: 4px #F00 solid;
	background: #FFF;
	display: none;
}
</style>
<script type="text/javascript" src="/TKWeChatYL/zh_CN/js/jquery-1.9.1.min.js"></script>
		<script type="text/javascript">
			function WinTip(){
				var win=new WinSize();
				var Tip=$("#bg");
				Tip.width(win.W+"px");
				Tip.height(win.H+"px");
				alert(Tip.css('display'));
				if(Tip.css('display')=="block"){
					Tip.hide();
					$("#win").hide();
				}else{
					Tip.show();
					$("#win").show();
				}
			}
			function WinSize() //函数:获取尺寸
			{
				var winWidth = 0;
				var winHeight = 0;
				if (window.innerWidth)
					winWidth = window.innerWidth;
				else if ((document.body) && (document.body.clientWidth))
					winWidth = document.body.clientWidth;
				if (window.innerHeight)
					winHeight = window.innerHeight;
				else if ((document.body) && (document.body.clientHeight))
					winHeight = document.body.clientHeight;
				if (document.documentElement  && document.documentElement.clientHeight && document.documentElement.clientWidth)
				{
					winHeight = document.documentElement.clientHeight;
					winWidth = document.documentElement.clientWidth;
				}
				return{"W":winWidth,"H":winHeight}
			}
</script>
	</head>

	<body>
		<a href="javascript:;" οnclick="WinTip()">弹出</a>
		<div id="bg"></div>
		<div id="win">
			<input type='radio' name='usercode' value='aaa'>
			aaa
			<input type='radio' name='usercode' value='bbb'>
			bbb
			<a href="javascript:;" οnclick="WinTip()">确认</a>
		</div>
	</body>
</html></span></span></strong>
转载的别人的,但是源码地址找不到了。。。。


7.JQuery AJAX List与Json的转换

<span style="font-size:18px;"><strong><span style="font-size:14px;">List list_usercode = document.getRootElement().selectNodes("//weixinService/returnItem/usercode");
    			
    			List<String> list = new ArrayList<String>();
    			for (int i = 0; i < list_usercode.size(); i++) {
    				list.add(((Element)list_usercode.get(i)).getText().toString());
    			}
    			String json = JSONArray.fromObject(list).toString();
    			out.print(json);
    			request.setAttribute("ERROR", "");</span></strong></span>

关于重新获取了一次list,是由于selectNodes获取的List集合是Element对象的集合JSONArray.fromObject(list) 无法进行转换

JSP 代码

<strong><span style="font-size:18px;"> $.post("/TKWeChatYL/CheckByEButler", 
	    {"identityType":identityType,"identityNo":identityNo,"phoneNum":phoneNum},
	     function(data){
		     var obj = eval( "(" + data + ")" ).toString();//转换后的JSON对象
		     var strs= obj.split(",");
		     if(strs.length>0){
		     alert(1);
			     for(var i = 0;i<strs.length;i++){
			     	divE.innerHTML +=  "<input type='radio' name='usercode' value='"+strs[i]+"'>"+strs[i];
			     }
		     }
	     },"text");</span></strong>

8.判断密码为非空,并且由6~12为数字和字母的混合组成

if(null ==yourPwd || ""==yourPwd){
			    	$('#s').html("<font color=red>请输入密码!</font>");
			    	return false;
			    }else{
				   var patrn=/^[a-zA-Z0-9]{6,12}$/;   
				   var flag = false;
				   if (!patrn.test(yourPwd)){
				   }else{
						var strs = new Array();
						strs = yourPwd.split("");
						if(isNaN(strs[0])){
							for(var i=1;i<strs.length;i++){
								if(!isNaN(strs[i])){
									flag = true;
									break;
								}
							}
						}else{
							for(var i=1;i<strs.length;i++){
								if(isNaN(strs[i])){
									flag = true;
									break;
								}
							}
						}
			    	}
			    	if(flag){
					}else{
						$('#s').html("<font color=red>密码格式不正确,密码为6~12位数字和字母</font>");
			    		return false;
					}
9.java工程本地访问没有问题,但是打成war包,发布到was服务器访问不到页面(403错误)
原因:应该是打的war有问题,我本地的工程名和打成的war包名称不一致,比如 我本地工程名称是 a 但是我打的war包名称b.war ,原因可能是这里的不一致导致的。 

解决方案:先把我本地的工程名称改成b,注意要把根目录也改成b(tomcat下的发布路径),然后打成b.war 问题解决

更改根目录方法:右击工程-->>properties-->>MyEclipse-->web-->>Content RooT -->>Web Content RooT

10.java工程下的web.xml工程报错

但是不影响项目,但是一个大大的红叉。。。

错误提示为:Referenced file contains errors (http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd. For more information, right click on the message and select "Show Details..."

解决方案:将 http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd 中的java改为JAVA 

http://JAVA.sun.com/xml/ns/javaee/web-app_2_4.xsd 问题解决


JS 报错syntax error 

在Eclipse下引入外部JS文件,比如Jquery.js,经常会出现如下异常信息:


去除该异常方法:

1. 去掉Eclipse的JS验证

    Windws---->Preferences---->JavaScript--->validator

    然后选择全部取消使用验证;


11.MyEclipse+tomcat+quartz做调度程序

所需jar : quartz-x.x.x.jar , jta.jar , commons-digester.jar

12.关于cookie的简单创建与使用

cookie的简单创建和存储:

//1.设置cookie到客户端
   Cookie c1 = new Cookie("username","hzh");
   //设置生命周期为1小时,秒为单位
   c1.setMaxAge(3600);
   response.addCookie(c1);

cookie的读取:

//2.读取cookie文件

Cookie[] cookies = request.getCookies();
for(Cookie c :cookies ){
System.out.println(c.getName()+"--->"+c.getValue());
}

13.关于session的失效时间setMaxInactiveInterval和session-config的比较

setMaxInactiveInterval和session-config的比较:   

    1、setMaxInactiveInterval的优先级高,如果setMaxInactiveInterval没有设置,则默认是session-config中设置的时间。   

    2、setMaxInactiveInterval设置的是当前会话的失效时间,不是整个web服务的。   

    3、setMaxInactiveInterval的参数是秒,session-config当中配置的session-timeout是分钟。  

    4、设置setMaxInactiveInterval(-1)是永久有效

14.关于返回顶部的简单JS实现

document.documentElement.scrollTop = document.body.scrollTop =0;



15.解决手机页面滑动时, 整个页面会跟着晃动的问题

/* 监听页面触摸运动
滑动刮刮卡页面时 整个页面都跟着滑动 添加页面监听 ,禁止页面滑动

参数jinzhi 大于0时 页面重新开始晃动

*/
var jinzhi=0;
document.addEventListener("touchmove",function(e){
if(jinzhi==0){
e.preventDefault();
e.stopPropagation();
}
,false);
//页面监听结束 END  

16.οncοntextmenu="return false;" 取消鼠标右键 


17.canvas 标签 相关方法(刮刮卡)

1)document.createElement()的用法

document.createElement()是在对象中创建一个对象,要与appendChild() 或 insertBefore()方法联合使用。其中,appendChild() 方法在节点的子节点列表末添加新的子节点。insertBefore() 方法在节点的子节点列表任意位置插入新的节点。

2)HTML DOM moveTo()方法

moveTo() 方法可把窗口的左上角移动到一个指定的坐标。

参数 描述
x 窗口新位置的 x 坐标
y 窗口新位置的 y 坐标

3)HTML canvas arc方法

arc() 方法创建弧/曲线(用于创建圆或部分圆)。

提示:如需通过 arc() 来创建圆,请把起始角设置为 0,结束角设置为 2*Math.PI。

提示:请使用 stroke() 或 fill() 方法在画布上绘制实际的弧。

JavaScript 语法:

context.arc(x,y,r,sAngle,eAngle,counterclockwise);

参数值

参数 描述
x 圆的中心的 x 坐标。
y 圆的中心的 y 坐标。
r 圆的半径。
sAngle 起始角,以弧度计。(弧的圆形的三点钟位置是 0 度)。
eAngle 结束角,以弧度计。
counterclockwise 可选。规定应该逆时针还是顺时针绘图。False = 顺时针,true = 逆时针。

4) HTML5 canvas fillRect() 方法

定义和用法

fillRect() 方法绘制“已填色”的矩形。默认的填充颜色是黑色。

提示:请使用 fillStyle 属性来设置用于填充绘图的颜色、渐变或模式。

JavaScript 语法:

context.fillRect(x,y,width,height);

参数值

参数 描述
x 矩形左上角的 x 坐标
y 矩形左上角的 y 坐标
width 矩形的宽度,以像素计
height 矩形的高度,以像素计
5)

三种在规范中列出并获得跨移动设备广泛实现的基本触摸事件:

1. touchstart :手指放在一个DOM元素上。
2. touchmove :手指拖曳一个DOM元素。
3. touchend :手指从一个DOM元素上移开。

6)jQuery 事件 - pageX 属性

定义和用法

pageX() 属性是鼠标指针的位置,相对于文档的左边缘。

语法

event.pageX
参数 描述
event 必需。规定要使用的事件。这个 event 参数来自事件绑定函数。

18.javascript通过navigator.userAgent识别各种浏览器

 
function validBrowser(){ 
var u_agent = navigator.userAgent; 
var browser_name='Failed to identify the browser'; 
if(u_agent.indexOf('Firefox')>-1){ 
browser_name='Firefox'; 
}else if(u_agent.indexOf('Chrome')>-1){ 
browser_name='Chrome'; 
}else if(u_agent.indexOf('Trident')>-1&&u_agent.indexOf('rv:11')>-1){ 
browser_name='IE11'; 
}else if(u_agent.indexOf('MSIE')>-1&&u_agent.indexOf('Trident')>-1){ 
browser_name='IE(8-10)'; 
}else if(u_agent.indexOf('MSIE')>-1){ 
browser_name='IE(6-7)'; 
}else if(u_agent.indexOf('Opera')>-1){ 
browser_name='Opera'; 
}else{ 
browser_name+=',info:'+u_agent; 

document.write('browser_name:'+browser_name+'<br>'); 
document.write('u_agent:'+u_agent+'<br>'); 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值