?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

網賭新浦金可靠嗎:JSP常見錯誤

?

具體信息:

測試情況為 jdk1.2.2 jswdk-1.0 winnt4.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有相同的參數名稱呢?下面是一段測試代碼:

<form method="POST" action="query.jsp?id=2">

<input type="text" name="id" value="1" size="60">

</form>

name都是id,結果是url的參數優先獲得,jsp的這種處置懲罰要領和asp比擬我覺的各有千秋。

4。頭疼的漢字處置懲罰問題。

在其他的文章里曾說到網賭新浦金可靠嗎在中文NT情況下如下語句輸出會獲得亂碼,

<%="你好"%> 及 out.print("你好");等。辦理措施是只要對字符串變量進行編碼就可以獲得精確結果,如下代碼可以獲得精確的輸出:

<% String title="你好";

byte[] tmpbyte=title.getBytes("ISO8859_1");

title=new String(tmpbyte);

out.print(title); %>

或者<%=title%>

關于sql語句漢字問題,例句為 select * from test where title=´誰是傻瓜´

在jdbc-odbc驅動下連db2,不管是原句照樣對sql語句進行編碼后都生逝世通不過。

換了ibm的jdb網賭新浦金可靠嗎c直接驅動后,對sql語句編碼后法度榜樣可以經由過程。

這個問題的孕育發生大年夜概是中文NT的緣故原由,在其他情況下可能就沒漢字處置懲罰問題了,聽說ibm的web sphere對中文支持的很好,這也給jsp的開拓帶來必然的通用性問題。聽說對字符串編碼是一種通用的辦理措施,不過沒有這么多情況來測試。

5。在asp中常常應用到字符串判斷語句如 if state="真是傻瓜" then.....

在java中String變量不是一個簡單的變量而是一個類實例,不合的措施會獲得不合的結果

a.

String str1="我是傻瓜";

String str2="我是傻瓜"; (or String str2="我是"+"傻瓜"; )

if (str1==str2)

out.print("yes");

else

out.print("no");

結果是"yes"。

大年夜概是編譯優化,str1,str2指向同一個類實例;

b.

String str1,str2,str3;

str1="我是傻瓜";

str2="我是";

str3=str2+"傻瓜";

if (str1==str3)

out.print("yes");

else

out.print("no");

結果是"no"。

String str1=new String("我是傻瓜");

String str2=new String("我是傻瓜");

if (str1==str2)

out.print("yes");

else

out.print("no");

結果是"no"。

String str1=new String("我是傻瓜");

String str2=new String("我是傻瓜");

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

<%

String sDBDriver = "COM.ibm.db2.jdbc.app.DB2Driver";

String sConnStr = "jdbc:db2:faq";

Connection conn = null;

Statement stmt = null;

ResultSet rs=null;

try {

Class.forName(sDBDriver);

}

catch(java.lang.ClassNotFoundException e) {

out.print("faq(): " + e.getMessage());

}

try{

conn = DriverManager.getConnection(sConnStr,"wsdemo","wsdemo1");

stmt = conn.createStatement();

}catch(SQLException e){

out.print(e.toString());

}

%>

query.jsp

<%@ page language="java" import="java.sql.*" %>

<%@ page contentType="text/html; charset=gb2312" %>

<%@ include file="conn.jsp" %>

<%

.......

int pages=0;

int pagesize=10;

ResultSet result = null;

ResultSet rcount = null;

pages = new Integer(request.getParameter("pages")).intValue();

if (pages>0)

{

String sql=" state=´我不傻´";

int count=0;

try {

rcount = stmt.executeQuery("SELECT count(id) as id from user where "+sql);

catch(SQLException ex) {

out.print("aq.executeQuery: " + ex.getMessage());

}

if(rcount.next())

count = rcount.getInt("id");

rcount.close();

if (count>0)

{

sql="select * from user where "+sql;

try {

result = stmt.executeQuery(sql);

}

catch(SQLException ex) {

out.print("aq.executeQuery: " + ex.getMessage());

}

int i;

String na網賭新浦金可靠嗎me;

// result.first();

// result.absolute((pages-1)*pagesize);

// 此措施jdbc2.0支持。編譯經由過程,但履行不過,不知是不是跟驅動有關,只好用下面的笨法子。

for(i=1;i<=(pages-1)*pages網賭新浦金可靠嗎ize;i++)

result.next();

for(i=1;i<=pagesize;i++) {

if (result.next()) {

name=result.getString("name");

out.print(name);

}

result.close();

int n= (int)(count/pagesize);

if (n*pagesize<count) n++;

if (n>1)

{

for(i=1;i<=n;i++)

out.print("<a href=query.jsp?pages="+i+">"+i+" </a>");

}

}

}

%>

摘自:netsword.net

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

快三平台开户