仓酷云

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

[学习教程] JAVA网页编程之将java代码天生html而且高亮显现

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

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

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

x
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。高亮显现|天生htmlimportjava.util.*;
importjava.io.*;
publicclassjava2html
{
privatestaticbooleancomment=false;
privatestaticbooleanlineComment=false;
privatestaticbooleanSTART=true;
privatestaticbooleanEND=false;
privatestaticbooleanbackslash=false;
privatestaticbooleanstringlit=false;
privatestaticbooleanstringlit2=false;
privatestaticinttabWidth=0;
privatestaticStringtab="";
privatestaticCollectionvarList=newArrayList();
privatestaticStringBufferout=newStringBuffer();
privatestaticCollectionprimitives=newArrayList();
static
{
String[]primString=
{"int","Integer","byte","Byte","boolean","Boolean","short","Short","long","Long","char","Character","float","Float","double","Double","String","void","StringBuffer","Collection"};
for(inti=0;i<primString.length;i++)
primitives.add(primString[i]);
}
privatestaticCollectionoperators=newArrayList();
static
{
String[]operString=
{"=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%",">>","<<",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=","<<<"};
for(inti=0;i<operString.length;i++)
operators.add(operString[i]);
}

privatestaticCollectionstring=newArrayList();
static
{
String[]stringString=
{"""};
for(inti=0;i<stringString.length;i++)
string.add(stringString[i]);
}
privatestaticCollectionflow=newArrayList();
static
{
String[]flowString=
{"true","false","null","import"};
for(inti=0;i<flowString.length;i++)
flow.add(flowString[i]);
}
privatestaticCollectionresWords=newArrayList();
static
{
String[]reswString=
{"private","static","new","public","final","class","this","synchronized","native","package","if","then","else","finally","switch","do","while","case","default","return","break","continue","throw","throws","catch","try","for","protected"};
for(inti=0;i<reswString.length;i++)
resWords.add(reswString[i]);
}
privatestaticvoidjava2html(StringfileName)
{}
publicstaticvoidtabIncrease(booleanup)
{
//prComment(START);out.append("tabs");prComment(END);
if(up)
{
tabWidth++;
}else
{
tabWidth--;
}
tab="";
for(inti=tabWidth;i>0;i--)
{
tab=tab+"";
}
}
publicstaticvoidprTitle(Stringstr)
{
out.append("<TITLE>"+str+"</TITLE>");
out.append("
");
}

publicstaticvoidprPrimitive(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append("<b><FONTcolor=red>"+str+"</FONT></b>");
out.append("
");
}
}
publicstaticvoidprVar(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append("<FONTcolor=red>"+str+"</FONT>");
out.append("
");
}
}
publicstaticvoidprFlow(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append("<b><FONTcolor=black>"+str+"</FONT></b>");
out.append("
");
}
}
publicstaticvoidprResWord(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append("<b><FONTcolor=black>"+str+"</FONT></b>");
out.append("
");
}
}
publicstaticvoidprNormal(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append(str);
out.append("
");
}
}
publicstaticvoidprJComment(Stringstr)
{
out.append("<FONTcolor=#888888>"+str+"</FONT>");
out.append("
");
}
publicstaticvoidprOperator(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append("<FONTcolor=black>"+str+"</FONT>
");
}
}
publicstaticvoidprNumber(Stringstr)
{
if(comment||lineComment)
{
prJComment(str);
}elseif(stringlit)
{
prStringLit(str);
}else
{
out.append("<FONTcolor=blue>"+str+"</FONT>
");
}
}
publicstaticvoidprStringLit(Stringstr)
{
out.append(str+"
");
}
publicstaticvoidprHead(booleanstart)
{
if(start)
{
out.append("<HEAD>");
out.append("
");
}else
{
out.append("</HEAD>");
out.append("
");
}
}
publicstaticvoidprBody(booleanstart)
{
if(start)
{
out.append("<BODYbgcolor=whitecolor=red>");
out.append("
");
out.append("<tt><FONTcolor=red>");
out.append("
");
}else
{
out.append("</FONT></tt>");
out.append("
");
out.append("</BODY>");
out.append("
");
}
}
publicstaticvoidprComment(booleanstart)
{
if(start)
{
out.append("<!--");
out.append("
");
}else
{
out.append("-->");
out.append("
");
}
}
publicstaticvoidprHtml(booleanstart)
{
if(start)
{
out.append("<HTML>");
out.append("
");
}else
{
out.append("</HTML>");
out.append("
");
}
}
publicstaticvoidprBr(booleanstart)
{
if(start)
{
out.append("<BR>");
out.append("
");
}else
{
out.append("<BR>");
out.append("
");
}
out.append(tab);
}
publicstaticvoidprP(booleanstart)
{
if(start)
{
out.append("<P>");
out.append("
");
}else
{
out.append("</P>");
out.append("
");
}
}
publicstaticvoidprTable(booleanstart)
{
if(start)
{
out.append("<TABLE>");
out.append("
");
}else
{
out.append("</TABLE>");
out.append("
");
}
}
publicstaticvoidprTr(booleanstart)
{
if(start)
{
out.append("<TR>");
out.append("
");
}else
{
out.append("</TR>");
out.append("
");
}
}
publicstaticvoidprTd(booleanstart)
{
if(start)
{
out.append("<TD>");
out.append("
");
}else
{
out.append("</TD>");
out.append("
");
}
}
publicstaticvoidprStringOne(booleanstart)
{
if(comment||lineComment)
{
prJComment("");
}elseif(start)
{
out.append("<FONTcolor=green>
");
stringlit=true;
}else
{
out.append("</FONT>
");
stringlit=false;
}
}
publicstaticvoidprStringTwo(booleanstart)
{
if(comment||lineComment)
{
prJComment(""");
}elseif(start)
{
out.append("<FONTcolor=green>"
");
stringlit=true;
stringlit2=true;
}else
{
out.append(""</FONT>
");
stringlit=false;
stringlit2=false;
}
}
publicstaticvoidmain(String[]args)
{
if(args.length<2)
{
System.out.println("
毛病:参数不敷!");
System.out.println("java2html[源文件][将天生文件名]");
}
else
{
FileInputStreamfile;
StreamTokenizerst;
StringhtmlFile=args[1];
booleanisVar=false;
putHtmlputhtml=newputHtml();
booleanfirstOfComment=false;
intb=8;
inta=10/b;
try
{
file=newFileInputStream(args[0]);
Readerr=newBufferedReader(newInputStreamReader(file));
st=newStreamTokenizer(r);
st.eolIsSignificant(true);
st.ordinaryChar(");
st.ordinaryChar(/);
st.ordinaryChar();
st.ordinaryChar(.);
st.ordinaryChar();
prHtml(START);
prHead(START);
prTitle(args[0]);
prHead(END);
prBody(START);
<P>while(st.nextToken()!=StreamTokenizer.TT_EOF)
{
switch(st.ttype)
{
caseStreamTokenizer.TT_WORD:
if(firstOfComment)
{
if((!comment&&!lineComment))prOperator("/");
}
firstOfComment=false;
if(primitives.contains(st.sval))
{
prPrimitive(st.sval);
isVar=true;
backslash=false;
break;
}
if(flow.contains(st.sval))
{
isVar=false;
prNumber(st.sval);
backslash=false;
break;
}
if(resWords.contains(st.sval))
{
isVar=false;
prResWord(st.sval);
backslash=false;
break;
}
if(varList.contains(st.sval))
{
isVar=false;
prVar(st.sval);
backslash=false;
break;
}
if(isVar&&!(varList.contains(st.sval)))
{
varList.add(st.sval);
prVar(st.sval);
}else
{
prNormal(st.sval);
}
backslash=false;
break;
caseStreamTokenizer.TT_EOL:
isVar=false;
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
firstOfComment=false;
lineComment=false;
prBr(START);
backslash=false;
break;
caseStreamTokenizer.TT_NUMBER:
isVar=false;
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
firstOfComment=false;
if(String.valueOf((char)st.ttype).equals("."))
{
prFlow(".");
backslash=false;
break;
}
prNumber(newDouble(st.nval).toString());
backslash=false;
break;
default:
isVar=false;
if(operators.contains(String.valueOf((char)st.ttype)))
{
if(firstOfComment)
{
if(comment)
{
//therehasbeenastar,waitingforslash
if(String.valueOf((char)st.ttype).equals("/"))
{
firstOfComment=false;
prJComment("*/");
comment=false;
backslash=false;
firstOfComment=false;
break;
}elsefirstOfComment=false;
}else
{
//therehasbeenaslash,waitingforslashorstar
if(String.valueOf((char)st.ttype).equals("/"))
{
if(!stringlit)
{
lineComment=true;
prJComment("//");
}else
{
lineComment=false;
prNormal("//");
}
firstOfComment=false;
comment=false;
backslash=false;
break;
}elseif(String.valueOf((char)st.ttype).equals("*"))
{
if(!stringlit)
{
comment=true;
prJComment("/*");
}else
{
comment=false;
prNormal("/*");
}
firstOfComment=false;
lineComment=false;
backslash=false;
break;
}else
{
firstOfComment=false;
if(!lineComment)prOperator("/");
prOperator(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
}else
{
if(comment)
{
//waitingforstar
if(String.valueOf((char)st.ttype).equals("*"))
{
firstOfComment=true;
backslash=false;
break;
}elsefirstOfComment=false;
}else
{
//waitingforslash
if(String.valueOf((char)st.ttype).equals("/"))
{
firstOfComment=true;
backslash=false;
break;
}else
{
firstOfComment=false;
prOperator(String.valueOf((char)st.ttype));
backslash=false;
break;
}
}
}
}
if(String.valueOf((char)st.ttype).equals("""))
{
if(firstOfComment)
{
if(!(comment||lineComment))prOperator("/");
firstOfComment=false;
}
if(!backslash)prStringTwo(!stringlit);
elseprNormal(""");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(""))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
prNormal("");
backslash=!backslash;
break;
}
if(String.valueOf((char)st.ttype).equals(""))
{
if(firstOfComment)
{
prOperator("/");
firstOfComment=false;
}
if(!backslash&&!stringlit2)prStringOne(!stringlit);
elseprNormal("");
backslash=false;
break;
}
if(String.valueOf((char)st.ttype).equals(";"))
{
if(firstOfComment)
{
prOperator("/");
&nbs
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,
深爱那片海 该用户已被删除
沙发
发表于 2015-1-20 09:45:21 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-24 14:45:35 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
柔情似水 该用户已被删除
地板
发表于 2015-1-26 22:07:20 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
5#
发表于 2015-1-31 12:26:07 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
老尸 该用户已被删除
6#
发表于 2015-2-6 19:21:42 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
透明 该用户已被删除
7#
发表于 2015-2-9 07:18:09 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
精灵巫婆 该用户已被删除
8#
发表于 2015-2-27 04:12:21 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
山那边是海 该用户已被删除
9#
发表于 2015-3-1 04:01:37 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
再见西城 该用户已被删除
10#
发表于 2015-3-1 17:30:38 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
愤怒的大鸟 该用户已被删除
11#
发表于 2015-3-1 20:58:19 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
只想知道 该用户已被删除
12#
发表于 2015-3-10 23:36:58 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
飘灵儿 该用户已被删除
13#
发表于 2015-3-11 15:18:32 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
灵魂腐蚀 该用户已被删除
14#
发表于 2015-3-14 19:31:56 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
冷月葬花魂 该用户已被删除
15#
发表于 2015-3-17 23:09:20 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
变相怪杰 该用户已被删除
16#
发表于 2015-3-19 08:20:27 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
因胸联盟 该用户已被删除
17#
发表于 2015-3-24 06:40:10 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
第二个灵魂 该用户已被删除
18#
发表于 2015-3-27 00:11:37 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
莫相离 该用户已被删除
19#
发表于 2015-3-27 17:11:54 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
乐观 该用户已被删除
20#
发表于 2015-3-30 22:41:57 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 16:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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