海妖 发表于 2015-1-18 11:25:49

JAVA编程:用 JSP 在客户端天生 javascript 代...

学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解js|客户端用JSP在客户端天生JavaScript代码来完成表单校验

●○●○●○●○●○●○●○●○●○●○●○●○●○●○
○ 作者:刘湛   日期:2000-01-05   jeru@163.net ●
● http://www.cyberlabs.com/~jeru/         ○
○ 接待会见爪哇人,猎取更多材料           ●
●○●○●○●○●○●○●○●○●○●○●○●○●○●○

明天费了一地利间就是做这个工具,道理很复杂,就是用JSP在页面的入手下手部分天生一段代码,
如errorcheck.jsp中所示,但程序太长,仍是费了我很多工夫来改写。

主程序是名为ErrorCheck.java,有了这个ErrorCheck的Bean,我们就不再用为了表单校验往
写那一年夜堆烦人的JavaScript代码了。ErrorCheck类已帮我们天生了几近一切你将会用到的校验办法,
如是不是为数字,长度的校验,是不是为正当email等,你只需在jsp页面里挪用响应的函数就能够了。

今朝一共有七个函数:

一检测是不是为数字
//输出输出框名和毛病提醒信息
numericCheck(StringinputName,StringerrorMsg);

二检测email是不是正当
//输出输出框名和毛病提醒信息
emailCheck(StringinputName,StringerrorMsg);

三检测德律风号码是不是正当
//输出输出框名和毛病提醒信息
telCheck(StringinputName,StringerrorMsg);

四检拆字串长度是不是在划定局限那内
//输出输出框名,毛病提醒信息,最小长度,最年夜长度
lengthCheck(StringinputName,StringerrorMsg,intmin,intmax);

五检拆字串中是不是不含克制的字串
//输出输出框名,毛病提醒信息,克制字串
denyStrCheck(StringinputName,StringerrorMsg,Stringstr);

六检拆字串中是不是含给定字串
//输出输出框名,毛病提醒信息,指定字串
stringCheck(StringinputName,StringerrorMsg,Stringstr);

七检测日期格局是不是为"yyyy-mm-dd"
//输出输出框名和毛病提醒信息
dateCheck(StringinputName,StringerrorMsg);

只需挪用一下这个bean,然后用setFromName()设定你的表单名,再挪用以上函数,
最初out.println(yourID.ErrorCheckScript()),就输入了一段JavaScript代码了,固然了,
别忘了这个<formname=myFormonsubmit="returnerrorCheck();">

ok,justenjoyit,明天太累,不想几,有任何定见请写信给我或在我主页上留言。

注:我调试errorcheck.jsp的时分因服务器的成绩不知为什么不克不及用usebean,setProperty的办法,
只好new了一下,我想你们是应当能够用useBean和setProperty的,本人改一下吧。

=====================================errorcheck.jsp=====================================

<%@pagelanguage="java"import="dbclass.*"%>
<%@pagecontentType="text/html;charset=gb2312"%>
<jsp:useBeanid="cc"scope="page"class="dbclass.ErrorCheck"/>

<%
ErrorCheckec=newErrorCheck();
ec.setFormName("myForm");
ec.numericCheck("number","TheNumberyouinputisinvalid!");
ec.emailCheck("email","TheEmailyouinputisinvalid!");
ec.telCheck("tel","Thetelephoneyouinputisinvalid!");
ec.lengthCheck("strlen","Thestringyouinputinthefourthfieldinnotbetween6-8",6,8);
ec.denyStrCheck("nojeru","Thefifithfieldmustnotcontainjeru","jeru");
ec.stringCheck("jeru","Thesixthfieldmustnotnullandcontianjeru","jeru");
ec.dateCheck("date","Thedateyouinputisinvalid,shouldbeyyyy-mm-dd");
out.println(ec.ErrorCheckScript());
%>

<html>
<bodystyle="font-size:9pt;font-family:Arial;">
<h1>ErrocheckTest</h1>
<hr>
<formname=myFormonsubmit="returnerrorCheck();">

inputanumber:<br>
<inputtype="text"name="number"><p>

inputaemial:<br>
<inputtype="text"name="email"><p>

inputatelephone:<br>
<inputtype="text"name="tel"><p>

inputastring(lengthshouldbetween6-8):<br>
<inputtype="text"name="strlen"><p>

inputastring(shouldenotcontain"jeru"):<br>
<inputtype="text"name="nojeru"><p>

inputastring(mustcontain"jeru"):<br>
<inputtype="text"name="jeru"><p>

inputadate(yyyy-mm-dd):<br>
<inputtype="text"name="date"><p>

<br><inputtype="submit"name="submit"value="go">
</form>
</body>
</html>

=====================================ErrorCheck.java=====================================

packagedbclass;
/**
*ErrorCheckv1.0
*
*这个类是用来在客户端天生JavaScript代码来校验表单的
*原是版本是同事Macro用PHP写的,我感到非常好用,再也
*不必再为那些表单区写烦人的javascript代码拉,感激他!
*此次我用Java改写,封装成一个类,并修复了少量的bug,加
*多了一条校验的功效,它的扩大性很好,今后大概会持续完美。
*
*Mender:
*JeruLiu
*Homepage:
*http://www.cyberlabs.com/~jeru/
*Email:jeru@163.net
*
*/

importjava.io.*;

publicclassErrorCheck{

/*public:thejavascriptstring*/
StringerrorCheckStr;

/*public:theformnameyouused*/
publicStringformName;

publicvoidsetFormName(StringformName){
this.formName=formName;
}

/***************************************************************************
*public:constructorfunctions
*机关函数
***************************************************************************/
publicErrorCheck(){
this.errorCheckStr=
"<scriptID=clientEventHandlersJSlanguage=javascript>"+"
"+
"<!--"+"
";
this.neededFunction();//loadtheneededfunctions
this.errorCheckStr+=
"functionerrorCheck(){"+"
";
}

/***************************************************************************
*public:exportjavascriptscript
*输入JAVASCRIPT剧本
***************************************************************************/
publicStringErrorCheckScript(){
this.errorCheckStr+=
"}"+"
"+
"-->"+"
"+
"</script>"+"
";
returnthis.errorCheckStr;
}

/***************************************************************************
*public:checkthenumeric
*反省录进框值是不是是数字
***************************************************************************/
publicvoidnumericCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(fucCheckNUM(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}

/***************************************************************************
*public:checkthelength
*反省录进框值的长度
***************************************************************************/
publicvoidlengthCheck(StringinputName,StringerrorMsg,intMinLength,intMaxLength){
this.errorCheckStr+=
"if(fucCheckLength(document."+formName+"."+inputName+".value)<"+MinLength+"||"+"
"+
"fucCheckLength(document."+formName+"."+inputName+".value)>"+MaxLength+"){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}

/***************************************************************************
*public:checktheemail
*反省录进框值是不是是准确的EMAIL格局
***************************************************************************/
publicvoidemailCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(chkemail(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}

/***************************************************************************
*public:checkthetelephonenumber
*反省录进框值是不是是德律风号码
***************************************************************************/
publicvoidtelCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(fucCheckTEL(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}

/***************************************************************************
*public:checkiftheinputvaluecontianthepreferedstring
*反省录进框值是不是是包括给定字串
***************************************************************************/
publicvoidstringCheck(StringinputName,StringerrorMsg,Stringstring){
this.errorCheckStr+=
"if(document."+formName+"."+inputName+".value.indexOf(""+string+"")!=0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}

/***************************************************************************
*public:checkiftheinputvaluecontainthedenyedstring
*反省录进框值是不是是包括给克制的字串
***************************************************************************/
publicvoiddenyStrCheck(StringinputName,StringerrorMsg,Stringstring){
this.errorCheckStr+=
"if(document."+formName+"."+inputName+".value.length==0||"+"
"+
"document."+formName+"."+inputName+".value.indexOf(""+string+"")!=-1){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}

/***************************************************************************
*public:checktheYYYY-MM-DDformatdate
*反省录进框值是不是是YYYY-MM-DD的日期格局
***************************************************************************/
publicvoiddateCheck(StringinputName,StringerrorMsg){
this.errorCheckStr+=
"if(chkdate(document."+formName+"."+inputName+".value)==0){"+"
"+
"alert(""+errorMsg+".");"+"
"+
"document."+formName+"."+inputName+".focus();"+"
"+
"return(false);"+"
"+
"}"+"

";
}


publicvoidneededFunction(){
this.errorCheckStr+=
"//函数名:fucCheckNUM"+"
"+
"//功效先容:反省是不是为数字"+"
"+
"//参数申明:要反省的数字"+"
"+
"//前往值:1为是数字,0为不是数字"+"
"+
"functionfucCheckNUM(NUM){"+"
"+
"vari,j,strTemp;"+"
"+
"strTemp="0123456789";"+"
"+
"if(NUM.length==0)return0;"+"
"+
"for(i=0;i<NUM.length;i++){"+"
"+
"j=strTemp.indexOf(NUM.charAt(i));"+"
"+
"if(j==-1){"+"
"+
"//申明有字符不是数字"+"
"+
"return0;"+"
"+
"}"+"
"+
"}"+"
"+
"//申明是数字"+"
"+
"return1;"+"
"+
"}"+"

"+

"//函数名:fucCheckLength"+"
"+
"//功效先容:反省字符串的长度"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:长度值"+"
"+
"functionfucCheckLength(strTemp){"+"
"+
"vari,sum;"+"
"+
"sum=0;"+"
"+
"for(i=0;i<strTemp.length;i++){"+"
"+
"if((strTemp.charCodeAt(i)>=0)&&(strTemp.charCodeAt(i)<=255))"+"
"+
"sum=sum+1;"+"
"+
"else"+"
"+
"sum=sum+2;"+"
"+
"}"+"
"+
"returnsum;"+"
"+
"}"+"

"+

"//函数名:chkemail"+"
"+
"//功效先容:反省是不是为EmailAddress"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:0:不是1:是"+"
"+
"functionchkemail(a){"+"
"+
"vari=a.length;"+"
"+
"vartemp=a.indexOf(@);"+"
"+
"vartempd=a.indexOf(.);"+"
"+
"if(temp>1){"+"
"+
"if((i-temp)>3){"+"
"+
"if(tempd!=-1){"+"
"+
"return1;"+"
"+
"}"+"
"+
"}"+"
"+
"}"+"
"+
"return0;"+"
"+
"}"+"

"+

"//函数名:fucCheckTEL"+"
"+
"//功效先容:反省是不是为德律风号码"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:1为是正当,0为分歧法"+"
"+
"functionfucCheckTEL(TEL){"+"
"+
"vari,j,strTemp;"+"
"+
"strTemp="0123456789-()#";"+"
"+
"if(TEL.length==0)return0;"+"
"+
"for(i=0;i<TEL.length;i++){"+"
"+
"j=strTemp.indexOf(TEL.charAt(i));"+"
"+
"if(j==-1){"+"
"+
"//申明有字符分歧法"+"
"+
"return0;"+"
"+
"}"+"
"+
"}"+"
"+
"//申明正当"+"
"+
"return1;"+"
"+
"}"+"

"+

"//函数名:chkdate(YYYY-MM-DD)"+"
"+
"//功效先容:反省是不是为日期"+"
"+
"//参数申明:要反省的字符串"+"
"+
"//前往值:0:不是日期1:是日期"+"
"+
"functionchkdate(datestr){"+"
"+
"varlthdatestr"+"
"+
"if(datestr!="")"+"
"+
"lthdatestr=datestr.length;"+"
"+
"else"+"
"+
"lthdatestr=0;"+"
"+
"vartmpy="";"+"
"+
"vartmpm="";"+"
"+
"vartmpd="";"+"
"+
"//vardatestr;"+"
"+
"varstatus;"+"
"+
"status=0;"+"
"+
"if(lthdatestr==0)"+"
"+
"return0;"+"
"+
"for(i=0;i<lthdatestr;i++){"+"
"+
"if(datestr.charAt(i)==-){"+"
"+
"status++;"+"
"+
"}"+"
"+
"if(status>2){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((status==0)&&(datestr.charAt(i)!=-)){"+"
"+
"tmpy=tmpy+datestr.charAt(i)"+"
"+
"}"+"
"+
"if((status==1)&&(datestr.charAt(i)!=-)){"+"
"+
"tmpm=tmpm+datestr.charAt(i)"+"
"+
"}"+"
"+
"if((status==2)&&(datestr.charAt(i)!=-)){"+"
"+
"tmpd=tmpd+datestr.charAt(i)"+"
"+
"}"+"
"+
"}"+"
"+
"year=newString(tmpy);"+"
"+
"month=newString(tmpm);"+"
"+
"day=newString(tmpd)"+"
"+
"if((tmpy.length!=4)||(tmpm.length>2)||(tmpd.length>2)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if(!((1<=month)&&(12>=month)&&(31>=day)&&(1<=day))){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if(!((year%4)==0)&&(month==2)&&(day==29)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((month<=7)&&((month%2)==0)&&(day>=31)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((month>=8)&&((month%2)==1)&&(day>=31)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"if((month==2)&&(day==30)){"+"
"+
"return0;"+"
"+
"}"+"
"+
"return1;"+"
"+
"}"+"

";

}

/*publicstaticvoidmain(String[]args){
ErrorCheckec=newErrorCheck("testFrom");
Stringscript=ec.ErrorCheckScript();
System.out.println(script);
}*/

}
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,

蒙在股里 发表于 2015-1-21 06:09:21

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

只想知道 发表于 2015-1-21 09:35:39

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

若相依 发表于 2015-1-30 13:35:22

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

简单生活 发表于 2015-2-6 12:50:27

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

莫相离 发表于 2015-2-8 16:14:20

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

变相怪杰 发表于 2015-2-10 01:35:01

是一种语言,用以产生「小应用程序(Applet(s))

第二个灵魂 发表于 2015-2-27 21:36:25

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

飘飘悠悠 发表于 2015-3-9 14:28:15

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

山那边是海 发表于 2015-3-11 02:00:49

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

小女巫 发表于 2015-3-17 18:11:38

是一种突破用户端机器环境和CPU

谁可相欹 发表于 2015-3-24 18:30:44

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
页: [1]
查看完整版本: JAVA编程:用 JSP 在客户端天生 javascript 代...