|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了这样一个呼声:让java代替C语言成为基本语言。这些足以说明java简单易学的这个优点。其次,java的功能强大,前面我也提到了,EJB3.0的推出使java成为了大型项目的首选。js|初学|心得空话未几说!
测试情况为jdk1.2.2jswdk-1.0winnt4.0中文版。
1。java是巨细写敏感的,用过其他编程言语的人最简单犯这个毛病,特别是刚上手的时分。我刚入手下手调试jsp的时50%以上的编译毛病是都是由于这个。
2。java的挪用历程都是要加括号的,一入手下手对照简单无视,如title=request.getParameter("title").trim();
3。jsp中对应asp中的request.form()和request.querystring()的办理办法。
jsp中获得参数没有form和queryString之分,都是经由过程request.getParameter("XXXX")来获得。固然jsp也有request.getQueryString()办法,但测试了局是test.jsp?id=1&page=20失掉id=1&page=20。
假如url和form有不异的参数称号呢?上面是一段测试代码:
<formmethod="POST"action="query.jsp?id=2">
<inputtype="text"name="id"value="1"size="60">
</form>
name都是id,了局是url的参数优先失掉,jsp的这类处置体例和asp比拟我觉的各有所长。
4。头疼的汉字处置成绩。
在其他的文章里曾说到在中文NT情况下以下语句输入会失掉乱码,
<%="你好"%>及out.print("你好");等。办理办法是只需对字符串变量举行编码就能够失掉准确了局,以下代码能够失掉准确的输入:
<%Stringtitle="你好";
byte[]tmpbyte=title.getBytes("ISO8859_1");
title=newString(tmpbyte);
out.print(title);%>
大概<%=title%>
关于sql语句汉字成绩,例句为select*fromtestwheretitle=谁是傻瓜
在jdbc-odbc驱动下连db2,不论是原句仍是对sql语句举行编码后都逝世活通不外。
换了ibm的jdbc间接驱动后,对sql语句编码后程序能够经由过程。
这个成绩的发生也许是中文NT的缘故原由,在其他情况下大概就没汉字处置成绩了,听说ibm的websphere对中文撑持的很好,这也给jsp的开辟带来必定的通用性成绩。听说对字符串编码是一种通用的办理办法,不外没有这么多情况来测试。
5。在asp中常常利用到字符串判别语句如ifstate="真是傻瓜"then.....
在java中String变量不是一个复杂的变量而是一个类实例,分歧的办法会失掉分歧的了局
a.
Stringstr1="我是傻瓜";
Stringstr2="我是傻瓜";(orStringstr2="我是"+"傻瓜";)
if(str1==str2)
out.print("yes");
else
out.print("no");
了局是"yes"。
也许是编译优化,str1,str2指向统一个类实例;
b.
Stringstr1,str2,str3;
str1="我是傻瓜";
str2="我是";
str3=str2+"傻瓜";
if(str1==str3)
out.print("yes");
else
out.print("no");
了局是"no"。
Stringstr1=newString("我是傻瓜");
Stringstr2=newString("我是傻瓜");
if(str1==str2)
out.print("yes");
else
out.print("no");
了局是"no"。
Stringstr1=newString("我是傻瓜");
Stringstr2=newString("我是傻瓜");
if(str1.compareTo(str2)==0)
out.print("yes");
else
out.print("no");
了局是"yes"。
以是在jsp中判别字符串要利用compareTo办法,用惯传统言语还真一会儿顺应不外来,熟习java的伴侣应当没这个成绩。
6。怎样判别数据库为空?
result=stmt.executeQuery(sql);
if(result.next())
......
result实行后游标出于一个未明的形态,不克不及举行形态判别,也不克不及取值,必定要next()一下才能够用。
7。在jsp中完成分页。
page是关头字,不克不及当变量。
conn.jsp
<%
StringsDBDriver="COM.ibm.db2.jdbc.app.DB2Driver";
StringsConnStr="jdbc:db2:faq";
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione){
out.print("faq():"+e.getMessage());
}
try{
conn=DriverManager.getConnection(sConnStr,"wsdemo","wsdemo1");
stmt=conn.createStatement();
}catch(SQLExceptione){
out.print(e.toString());
}
%>
query.jsp
<%@pagelanguage="java"import="java.sql.*"%>
<%@pagecontentType="text/html;charset=gb2312"%>
<%@includefile="conn.jsp"%>
<%
.......
intpages=0;
intpagesize=10;
ResultSetresult=null;
ResultSetrcount=null;
pages=newInteger(request.getParameter("pages")).intValue();
if(pages>0)
{
Stringsql="state=我不傻";
intcount=0;
try{
rcount=stmt.executeQuery("SELECTcount(id)asidfromuserwhere"+sql);
catch(SQLExceptionex){
out.print("aq.executeQuery:"+ex.getMessage());
}
if(rcount.next())
count=rcount.getInt("id");
rcount.close();
if(count>0)
{
sql="select*fromuserwhere"+sql;
try{
result=stmt.executeQuery(sql);
}
catch(SQLExceptionex){
out.print("aq.executeQuery:"+ex.getMessage());
}
inti;
Stringname;
//result.first();
//result.absolute((pages-1)*pagesize);
//此办法jdbc2.0撑持。编译经由过程,但实行不外,不知是否是跟驱动有关,只好用上面的笨举措。
for(i=1;i<=(pages-1)*pagesize;i++)
result.next();
for(i=1;i<=pagesize;i++){
if(result.next()){
name=result.getString("name");
out.print(name);
}
result.close();
intn=(int)(count/pagesize);
if(n*pagesize<count)n++;
if(n>1)
{
for(i=1;i<=n;i++)
out.print("<ahref=query.jsp?pages="+i+">"+i+"</a>");
}
}
}
%>
www.guanshui.com版权一切Urus2000-5-22
IDE是好。java中的IDE更是百花齐放,你用jbuilder能说jbuilder赶不上vs吗?用eclipse,netbeans也很舒服啊。我就不明白“稍微差一些”那一些是从哪里差来的。 |
|