仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 428|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网页编程之用JSP在客户端天生JavaScript代码来完成...

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。javascript|js|客户端明天费了一地利间就是做这个工具,道理很复杂,就是用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=myForm>
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=myForm>
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);
}*/
}


而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
若天明 该用户已被删除
沙发
发表于 2015-1-20 20:36:34 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-29 21:50:10 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
精灵巫婆 该用户已被删除
地板
发表于 2015-2-2 21:43:43 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-4 20:11:22 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
谁可相欹 该用户已被删除
6#
发表于 2015-2-10 05:58:47 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
小魔女 该用户已被删除
7#
发表于 2015-2-25 20:49:46 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
因胸联盟 该用户已被删除
8#
发表于 2015-3-2 15:35:50 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
不帅 该用户已被删除
9#
发表于 2015-3-11 04:18:59 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
飘灵儿 该用户已被删除
10#
发表于 2015-3-17 20:10:33 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
小妖女 该用户已被删除
11#
发表于 2015-3-24 23:42:59 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表