JAVA网页编程之ASP程序员过分JSP必要注重事项
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。js|程序|程序员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>");
}
}
}
%>
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。 Java是一种计算机编程语言,拥有跨平台、面向对java 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
页:
[1]