仓酷云
标题:
JAVA网页设计怎样利用JSP+MySQL创立留言本
[打印本页]
作者:
不帅
时间:
2015-1-18 11:38
标题:
JAVA网页设计怎样利用JSP+MySQL创立留言本
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢?js|mysql|创立
申明:用JSP+MySQL数据库创立留言本,起首要创立MySQL数据库,关于MySQL的利用请到http://pinghui.51.net/download/012mysql.chm下载教程。如今为了申明的必要,我们假定数据库已创建完成,数据库的称号是pinghui,个中有comment表是纪录留言信息的。
数据库的布局为:
+-----------+-------------+------+-----+---------------------+----------------+
|Field|Type|Null|Key|Default|Extra|
+-----------+-------------+------+-----+---------------------+----------------+
|userid|int(11)||PRI|0|auto_increment|
|username|char(20)|||||
|sex|char(2)|||||
|address|char(40)|YES||NULL||
|ip|char(15)|||||
|post|int(11)|YES||0||
|oicq|int(11)|YES||0||
|icq|int(11)|YES||0||
|telnumber|char(30)|YES||NULL||
|comment|text|||NULL||
|time|datetime|||0000-00-0000:00:00||
+-----------+-------------+------+-----+---------------------+----------------+
假如你以为创建数据库太贫苦的话
创建数据库的语句为:
DROPDATABASEIFEXISTSpinghui;
CREATEDATABASEpinghui;
USEpinghui;
CREATETABLEcomment(
useridintNOTNULLDEFAULT0AUTO_INCREMENTPRIMARYKEY,
usernamechar(20)NOTNULL,
sexchar(2),
addresschar(40),
ipchar(15)NOTNULL,
postintDEFAULT0,
oicqintDEFAULT0,
icqintDEFAULT0,
telnumberchar(30),
commenttextNOTNULL,
timedatetimeNOTNULL
);
INSERTINTOcomment(username,ip,comment,time)VALUES("pinghui","127.0.0.1",
"你好,请到萍慧自在空间检察信息!",now());
insertintocomment(username,sex,address,ip,post,oicq,icq,telnumber,comment,time)
values(pinghui,男,地点,127.0.0.1,250100,2269101,74875874,0531-8605449,
你好,请到萍慧自在空间检察留言!感谢!,now());
有了数据库上面我们的解说会更便利的。持续留言本的创建
有了数据库上面就要对数据库操纵读取留言了!
上面列出显现留言的次要程序
<%@pageimport="java.sql.*"
import="java.util.*"
import="java.io.*"
contentType="text/html;charset=gb2312"
%>
<html>
<head>
<title>萍慧自在空间留言本</title>
<metaname="GENERATOR"content="MicrosoftFrontPage4.0">
<metaname="ProgId"content="FrontPage.Editor.Document">
<styletype="text/css"><!--
body{font-size:9pt}
td{font-size:9pt}-->
</style>
</head>
<body>
<palign="center"><u><fontsize="5"face="汉文新魏">萍慧自在空间留言本</font></u></p>
<tablewidth="75%"border="1"bgcolor="#FFCCFF"bordercolorlight="#0000FF"
bordercolordark="#6666FF"cellpadding="0"cellspacing="0"align="center">
<tr>
<tdcolspan="5"height="202">
<%//上面处置用户的分页哀求
Stringstring_page;
intPage,RecoderPage,RecoderRow;
try{string_page=request.getParameter("page");
}catch(NullPointerExceptione){string_page="";}
try{Page=Integer.parseInt(string_page);
}catch(NumberFormatExceptione)
{Page=0;
}java.sql.ConnectionsqlConn;//数据库毗连对象
java.sql.StatementsqlStmt;//语句对象
java.sql.ResultSetsqlRst;//了局集对象
//挂号JDBC驱动对象
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//毗连数据库
sqlConn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/p","test","");
//创立语句对象
sqlStmt=sqlConn.createStatement
(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//实行Sql语句
StringsqlQuery="selectcount(*)fromcomment";
sqlRst=sqlStmt.executeQuery(sqlQuery);
sqlRst.next();
intcount=sqlRst.getInt(1);//获得总的留言纪录数
if(Page>=0)RecoderPage=Page;//处置页面
elseRecoderPage=0-Page*10;
if(RecoderPage>count/15){RecoderPage=count/15;Page=RecoderPage;}//页面越界
RecoderRow=RecoderPage*15;//获得要显现的留言纪录号
sqlQuery="select*fromcommentorderbyuseriddesclimit"+RecoderRow+",15;";//一次读取15笔记录
sqlRst=sqlStmt.executeQuery(sqlQuery);
%>统共有<%=count%>条留言
<%while(sqlRst.next())//显现留言
{//获得下一笔记录%>第<%=sqlRst.getString("userid")%>条
<tablewidth="95%"border="1"cellspacing="1"cellpadding="1"
bordercolorlight="#6666FF"bordercolordark="#6666FF"bgcolor="#CCCCFF"align="center">
<tr>
<tdwidth="25%">昵称:<%=sqlRst.getString("username")%></td>
<tdwidth="25%">性别:<%=sqlRst.getString("sex")%></td>
<tdcolspan="2"width="50%">地点:<%=sqlRst.getString("address")%></td>
</tr>
<tr>
<tdwidth="25%">德律风:<%=sqlRst.getString("telnumber")%></td>
<tdwidth="25%">邮编:<%=sqlRst.getString("post")%></td>
<tdwidth="25%">OICQ:<%=sqlRst.getString("oicq")%></td>
<tdwidth="25%">ICQ:<%=sqlRst.getString("icq")%></td>
</tr>
<tr>
<tdcolspan="2"width="50%">Email:
<ahref="mailto:<%=sqlRst.getString("email")%>"title="写信给留言者"><%=sqlRst.getString("email")%></a></td>
<tdcolspan="2"width="50%">网址:
<ahreftarget="_blank"></a><ahref="mailto:<%=sqlRst.getString("url")%>"title="写信给留言者">
<%=sqlRst.getString("urltitle")%></a></td>
</tr>
<tr>
<tdcolspan="4"><fontstyle="line-height:150%;color:green">
留言:<%=sqlRst.getString("comment")%><br>
-<%=sqlRst.getString("time")%>
(来自<%=sqlRst.getString("ip")%>)</font></td>
</tr>
</table>
<hralign="center"noshadesize="2"width="95%">
<%}%><%
//上面对留言举行分页
inti=count/15;//总页,每页显现15笔记录
intj=i/10;//总的年夜页,没10个页面分一年夜页
//Page显现的页面
intStartPage;
//intHrefPage;
if(Page<0)Page=0-Page*10;//10页分一次
StartPage=Page/10;//10页分一次
out.print("[共有"+(i+1)+"页]");
//out.print("共有"+j+"屏");
//out.print("显现第"+Page+"页");
//out.print("StartPage="+StartPage);
if(StartPage>0)
out.print("|<ahref="connectmysql.jsp?page=-"+Integer.toString(StartPage-1)+"">前10页</a>");
for(intk=0;k<10;k++)
{intp=StartPage*10+k;
if(p>i)break;
if(p==Page)
out.print("|第"+Integer.toString(p+1)+"页");
else
out.print("|<ahref="connectmysql.jsp?page="+p+"">第"+Integer.toString(p+1)+"页</a>");
}
if(StartPage<j)
out.print("|<ahref="connectmysql.jsp?page=-"+Integer.toString(StartPage+1)+"">后10页</a>");
out.print("|");
%></td>
</tr>
</table>
</body>
<%
//封闭了局集对象
sqlRst.close();
//封闭语句对象
sqlStmt.close();
//封闭数据库毗连
sqlConn.close();
%>程序停止
程序中的不敷:
没有对毛病举行捕获,可是这里只为了对jsp读取Mysql数据库举行解说。假如是用与作留言本的话必定要对毛病举行处置!我们还要留言呢?
上面我们入手下手创建留言的页面!
<%@page
import="java.util.*"
import="java.text.*"
import="java.sql.*"
import="java.io.*"
import="java.lang.*"
contentType="text/html;charset=gb2312"
%>
<%
classCommentError//throwsjava.lang.NullPointerException
{publicStringUsername="",Sex="",Address="",Postal="",Oicq="",Icq="",Tel="",Comment="";
publicbooleanNoError=true;//false;
publicintErrorCount=0;
privatebooleanIsNumber(Strings1){}
publicStringfont(Stringse){}
publicStringComment_Er(Stringse){}
publicvoidUsername(Stringse){}
publicvoidSex(Stringse){}
publicvoidAddress(Stringse){}
publicvoidComment(Stringse){}
publicvoidTel(Stringse){}
publicvoidPostal(Stringse){}
publicvoidOicq(Stringse){}
publicvoidIcq(Stringse){}
}
classFormatComment
{publicStringReplace(Stringsource,StringoldString,StringnewString){}
publicStringformatint(Stringse){}
publicStringfromatcomment(Stringse){}
publicStringtoHtmlInput(Stringstr){}
publicStringtoHtml(Stringstr){}
publicStringtoSql(Stringstr){}//转换为能够到场Myqal的格局
}
%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metaname="GENERATOR"content="MicrosoftFrontPage4.0">
<metaname="ProgId"content="FrontPage.Editor.Document">
<title>利用MYsql数据库</title>
</head>
<body>
<palign="center"><center><fontstyle="COLOR:blue;FONT-FAMILY:朴直舒体,汉文行楷,隶书,宋体;FONT-SIZE:16pt">萍慧jsp留言薄</font></center></p>
<palign="center">
<%!Stringusername,sex,address,post,oicq,icq,telnumber,comment,email,url.urltitle;
%>
<%
try{username=request.getParameter("name");
}catch(NullPointerExceptione){username="";}
try{comment=request.getParameter("comment");
}catch(NullPointerExceptione){comment="";}
try{sex=request.getParameter("sex");
}catch(NullPointerExceptione){sex="";}
try{address=request.getParameter("address");
}catch(NullPointerExceptione){address="";}
try{post=request.getParameter("postal");
}catch(NullPointerExceptione){post="";}
try{oicq=request.getParameter("oicq");
}catch(NullPointerExceptione){oicq="";}
try{icq=request.getParameter("icq");
}catch(NullPointerExceptione){icq="";}
try{telnumber=request.getParameter("telphone");
}catch(NullPointerExceptione){telnumber="";}
try{email=request.getParameter("email");
}catch(NullPointerExceptione){email="";}
try{url=request.getParameter("url");
}catch(NullPointerExceptione){url="";}
try{urltitle=request.getParameter("urltitle");
}catch(NullPointerExceptione){urltitle="";}
Stringip=request.getRemoteAddr();//失掉IP地点
Stringtime=(newSimpleDateFormat("yyyy-MM-ddhh:mm:ss",Locale.US)).format(newjava.util.Date());
Stringuserid="";
StringMyQuery="";
此处我挪用了一个对留言举行正当查验的类
CommentErrortestcomment=newCommentError();
testcomment.Username(username);
testcomment.Postal(post);
testcomment.Sex(sex);
testcomment.Address(address);
testcomment.Tel(telnumber);
testcomment.Comment(comment);
testcomment.Oicq(oicq);
testcomment.Icq(icq);
if(testcomment.NoError)//留言中没有毛病,写数据库
try{//写数据库乐成
java.sql.ConnectionsqlConn;//数据库毗连对象
java.sql.StatementsqlStmt;//语句对象
java.sql.ResultSetsqlRst;//了局集对象
//挂号JDBC驱动对象
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//毗连数据库
sqlConn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost/pinghui","test","");
//创立语句对象
sqlStmt=sqlConn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//实行Sql语句
此处挪用了一个对留言举行处置的类,是留言能被Mysql供认,
FormatCommentFC=newFormatComment();
oicq=FC.formatint(oicq);
icq=FC.formatint(icq);
post=FC.formatint(post);
telnumber=FC.formatint(telnumber);
username=FC.toSql(username);
comment=FC.toSql(comment);
MyQuery="insertintocomment(username,sex,address,ip,post,oicq,icq,telnumber,comment,time,url,email)values("+username+","+sex+","+address+","+ip+","+post+","+oicq+","+icq+","+telnumber+","+comment+",now(),"+url+","+email+");";
sqlRst=sqlStmt.executeQuery(MyQuery);//向数据库中到场数据
sqlRst.close();//封闭了局集对象
sqlStmt.close();//封闭语句对象
sqlConn.close();//封闭数据库毗连
out.print(time);
%>
<fontsize="5"face="汉文行楷">留言乐成,感谢!</font>
<tableborder="0"cellpadding="0"cellspacing="0"width="100%">
<tbody>
<tr>
<tdwidth="25%">昵称:<%=username%></td>
<tdwidth="25%">性别:<%=sex%></td>
<tdcolspan="2"width="50%">地点:<%=address%></td>
</tr>
<tr>
<tdwidth="25%">德律风:<%=telnumber%></td>
<tdwidth="25%">邮编:<%=post%></td>
<tdwidth="25%">OICQ:<%=oicq%></td>
<tdwidth="25%">ICQ:<%=icq%></td>
</tr>
<tr>
<tdcolspan="2"width="50%">Email:<ahref="mailto:"title="写信给留言者"></a></td>
<tdcolspan="2"width="50%">网址:<ahreftarget="_blank"></a></td>
</tr>
<tr>
<tdcolspan="4"><fontstyle="COLOR:green;LINE-HEIGHT:150%">留言:</font><%=comment%><fontstyle="COLOR:green;LINE-HEIGHT:150%"><br>
-</font><%=time%><fontstyle="COLOR:green;LINE-HEIGHT:150%">(来自</font><%=ip%><fontstyle="COLOR:green;LINE-HEIGHT:150%">)</font></td>
</tr>
</tbody>
</table>
<hrcolor="#0080c0"noshadesize="1"width="100%">
<%
}catch(SQLExceptione)//写数据库失利
{out.print("<fontcolor=red>留言失利</font>");
out.print(MyQuery);
out.print(userid);
}
else
{
out.print("<fontcolor=red>统共有"+testcomment.ErrorCount+"条毛病数据,请修正!</font>");
%>
<scriptlanguage="JavaScript">
<!--
functiontest_comments(theForm)
{
if(theForm.name.value=="")
{alert("姓名不克不及为空!:-)");
theForm.name.focus();
return(false);
}
if(theForm.name.value.length>12)
{alert("姓名太长,不克不及多于12个字符(既六个汉字)!");
theForm.name.focus();
return(false);
}
if(theForm.address.value.length>40)
{alert("地点太长,不克不及多于40个字符(20个汉字)!");
theForm.name.focus();
return(false);
}
if(theForm.comment.value=="")
{alert("抱愧,留言不克不及为空!你必需输出留言");
theForm.comment.focus();
return(false);
}
if(theForm.comment.value.length>1000)
{alert("抱愧,你的留言太长,最多为1000个字符!");
theForm.comment.focus();
return(false);
}
return(true);
}-->
<table>
<tr>
<td>
<tablecellspacing="0"cellpadding="0">
<tr>
<td><!--表单入手下手-->
<formaction="addmysql.jsp"method="POST"name="all_comments"onsubmit="javascript:return(test_comments(this))">
<tableborder="0"width="100%"cellspacing="0"cellpadding="0">
<tr>
<tdwidth="60%">昵称:<inputname="name"size="20"value="<%if(username!=null)out.print(username);%>"><%=testcomment.Comment_Er("username")%></td>
<tdnowrapwidth="40%">性别:<selectname="sex"size="1">
<optionselectedvalue="男"<%if(sex=="男")out.print("select");%>>男</option>
<optionvalue="女"<%if(sex=="女")out.print("select");%>>女</option>
<optionvalue="保密"<%if(sex=="保密")out.print("select");%>>保密</option>
</select><%=testcomment.Comment_Er("sex")%></td>
</tr>
<tr>
<tdcolspan="2">地址:<inputname="address"size="40"value="<%if(address!=null)out.print(address);%>"><%=testcomment.Comment_Er("address")%></td>
</tr>
<tr>
<td>电话:<inputname="telphone"size="15"value="<%if(telnumber!=null)out.print(telnumber);%>"><%=testcomment.Comment_Er("tel")%></td>
<td>邮编:<inputname="postal"size="6"value="<%if(post!=null)out.print(post);%>"><%=testcomment.Comment_Er("postal")%></td>
</tr>
<tr>
<td>OICQ:<inputname="oicq"size="10"value="<%if(oicq!=null)out.print(oicq);%>"><%=testcomment.Comment_Er("oicq")%></td>
<td>ICQ:<inputname="icq"size="15"value="<%if(icq!=null)out.print(icq);%>"><%=testcomment.Comment_Er("icq")%></td>
</tr>
<tr>
<tdcolspan="2">Email:<inputname="email"size="25"value="<%if(email!=null)out.print(email);%>"><%//=testcomment.Comment_Er("")%></td>
</tr>
<tr>
<tdcolspan="2">网址:<inputname="url"size="40"value="<%if(url!=null)out.print(url);%>"><%//=testcomment.Comment_Er("")%></td>
</tr>
<tr>
<tdcolspan="2"><textareacols="80"name="comment"rows="10"wrap="physical"><%if(comment!=null)out.print(comment);%></textarea>
<tr>
<tdalign="right"><inputname="put_submit"type="submit"value="断定"?></td>
<tdalign="left"><inputname="r"type="reset"value="重置"></td>
</tr>
</table>
</form>
<!--提交表单停止-->
</td>
<td><%=testcomment.Comment_Er("comment")%>请注重:你所输出的内容中,昵称和留言为必需输出的项目!<br>
不撑持html标记</td>
</tr>
</table>
</td>
</tr>
</table>
<%
}
%>
</body>
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。
作者:
飘灵儿
时间:
2015-1-21 11:47
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者:
小魔女
时间:
2015-1-29 11:49
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者:
分手快乐
时间:
2015-2-6 00:36
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
透明
时间:
2015-2-21 06:39
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
仓酷云
时间:
2015-2-23 13:54
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
admin
时间:
2015-3-7 09:04
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者:
飘飘悠悠
时间:
2015-3-14 15:58
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
作者:
兰色精灵
时间:
2015-3-17 16:09
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
乐观
时间:
2015-3-18 16:09
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者:
莫相离
时间:
2015-3-19 05:45
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者:
简单生活
时间:
2015-3-20 17:44
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者:
若天明
时间:
2015-3-22 21:08
是一种突破用户端机器环境和CPU
作者:
愤怒的大鸟
时间:
2015-3-31 06:16
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者:
小女巫
时间:
2015-4-12 19:31
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
作者:
谁可相欹
时间:
2015-4-16 17:53
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者:
冷月葬花魂
时间:
2015-4-19 12:46
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
变相怪杰
时间:
2015-4-26 03:19
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者:
再现理想
时间:
2015-5-4 15:59
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者:
海妖
时间:
2015-6-7 22:18
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
作者:
山那边是海
时间:
2015-6-11 09:10
是一种使用者不需花费很多时间学习的语言
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2