TOP

JSP面試問題集
2014-11-01 14:30:05 】 瀏覽:10150
Tags:

1. 問:在JAVA與JSP中要調用一個LINUX上的腳本程序,或WINDOWS上的腳本程序,該怎么寫?


答:System.getRuntime().exec(“bash < aaa.sh”);


2. 問:java中用什么表示雙引號


答:”\”"


3. 問:如何在JSP程序里另起一個線程?


答:JSP本身就是獨立線程運行而不象CGI都是獨立進程.


一般:Thread t = new Thread(“你的對象\\”);


t.start();就可以了.


要求你這個對象要實現runnable接口或繼承thread.


4. 問:jsp如何獲得客戶端的IP地址?


答:request.getRemoteAddr()


看看各個webserver的API文檔說明,一般都有自帶的,resin和tomcat都有


5. 問:程序終止與輸出終止


答:程序中止:return;


輸出中止:out.close();這一句相當于ASP的response.end


6. 問:jsp中如何得到上頁的URL?


答:request.getHeader(“referer”);


7. 問:提交網頁的網頁過期功能是怎么做的?


答:response.setHader(“Expires”,”0″);


8. 問:在JSP網頁中如何知道自已打開的頁面的名稱


答:request.getRequestURI() ;//文件名


request.getRequestURL() ;//全部URL


9. 問:提交表單后驗證沒有通過,返回提交頁面,如何使原提交頁面中的數據保留?


答:java script的go(-1)可以把上頁的表單內容重新顯示出來,但password域沒有


10. 問:如何取得http的頭信息?


答:request.getHader(headerName);


11. 問:&&和&的區別?


答:&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)。


12. 問:將*以正弦曲線的一個周期顯示出來


答:


public void paint(Graphics g)


{


for(int i=0;i<200;i++)


g.drawString(“*”,i,(int)(Math.sin(i)*20)+50);


}


}


13. 問:浮點數相乘后結果不精確如100.0 * 0.6 結果等于 60.0004


答:這不叫錯誤,float和double是這樣實現的.如果要精確計算,java提供了一個strictfp,它的計算遵循IEEE 754標準.而普通的float和double是由地平臺浮點格式或硬件提供的額外精度或表示范圍。


14. 問:如何獲得當前用的cursors的位置?


答:int row = rs.getRow()就是當前指針行數,還有isFrist();isBeforeFist();isLast();isAfterLast();可以測試是不是在方法名所說的位置


15. 問:表單成功提交了,點后退顯示網頁過期


答:在 里面加以下代碼





或者在表單頁中加上


<%


response.setHeader(“Pragma”,”no-cache”);


response.setHeader(“Cache-Control”,”no-cache”);


response.setDateHeader(“Expires”,0);


%>


16. 問:接口的簡單理解


答:接口為了規范,比如我在接口中定義了一個方法:


getData()


這是用來從不同的數據庫中取數據的,就是JDBC的實現對于用戶,我不要知道每種數據庫是如何做的,但我知道如何它們要實現這個接口就一定有這個方法可以供我調用.這樣SUN就把這個接口給各個數據庫開發商,讓他們自己實現. 但為什么不用繼承而用接口哩,因為繼承只能從一個你類繼承,而接口可以實現多個,就是說我實現的子類有多個規定好的接口中的功能. 這只是簡單的理解,等你深入理解抽象的時候就知道抽象到抽象類時為什么還要再抽象到接口.


17. 問:怎樣編寫一個取消按鈕(怎樣返回上一個頁面优乐棋牌app下载,象工具欄的后退按鈕)?


答:java script把每次瀏覽過的location都壓到了一個棧中,這個棧就是history,然后你如果要回到第幾個頁面它就做幾次POP操作,把最后POP出來的那個LOCATION給你. 這就是java script在實現history.go(-x)的原理.


18. 問:什么是回調?


答:簡單說,回調用不是讓你去監聽誰做完了什么事,而是誰做完了什么事就報告給你. 這就是回調用的思想.例子太多了,AWT的事件,SWING事件模型都是這樣有. 還有多線程中,如果要控制線程數,不能總是查詢每個線程是否結束,要在每個線程結束時讓線程自己告訴主線程我結束了,你可以開新的線程了.


19. 問:簡要介紹一下compareTo方法


答:compareTo方法是Comparable 接口必需實現的方法,只要實現Comparable 就可以用Arrays.srot()排序就象實現Runnable接口的run就能Thread()一樣.


20. 問:如何可以從別的Web服務器檢索頁, 然后把檢索到的網頁的HTML代碼儲存在一個變量中返回過來


答:這是一個簡單的WEB ROBOT實現,用URL類實現從網頁中抓內容,然后自己寫一個分析程序從中找出新的URL,不斷遞歸下去就行了.


21. 問:applet中如何獲得鍵盤的輸入


答:application的System.in是當前系統的標準輸入,applet因為安全的原因不可能讀取當前系統(客戶端)的標準輸入,只能從它的ROOT組件的事件中,比如鍵盤事件中取得鍵值.


22. 問:怎樣計算代碼執行所花費的時間?


答:代碼開始取時間,結束后取時間,相減


long t1 = System.currentTimeMillis();


///////////////// your code


long t2 = System.currentTimeMillis() ;


long time = t2-t1;


23. 問:如何獲在程序中獲得一個文件的ContentType?


答:URL u = new URL(“file:///aaa.txt”);


URLConnection uc = u.openConnection();


String s = uc.getContentType();


24. 問:連接池的使用是建立很多連接池,還是一個連接池里用多個連接?


答:只有在對象源不同的情況下才會發生多個池化,如果你只連一結一個數據源,永遠不要用多個連結池. 所以連結池的初始化一定要做成靜態的,而且應該在構造對象之前,也就是只有在類LOAD的時候,別的時候不應該有任何生成新的連結池的時候。


25. 問:JavaMail要怎么安裝?


答:下載兩個包,一個是javamail包优乐棋牌app下载,另一個是jaf包。下載完直接把這兩個包不解壓加到CLASSPATH。


26. 問:怎樣把地址欄里的地址鎖定?


答:把你的服務器的可訪問目錄索引選項關閉就行了,任何服務器都有一個conf文件,里面都有這個選項。


27. 問:在JAVA中怎么取得環境變量啊。比如: TEMP = C:\TEMP ?


答:String sss = System.getProperty(key)


28. 問:怎樣實現四舍五入,保留小數點后兩位小數?


答:import java.text.*;



NumberFormat nf=NumberFormat.getNumberInstance();


nf.setMaximumFractionDigits(2);


nf.setMinimumFractionDigits(2);


nf.format(numb);


29. 問:Applet和form如何通信?


答:取得的參數傳到param里面


<%


String xxx = request.getParameter(“xxx”);


%>





30. 問:java-plug-in是什么?


答:Java Runtime Environment的插件。用來運行java程序。不需要什么特別的設置。等于你的機器里面有了jvm。


31. 問:WEB上面怎么樣連接上一個EXCEL表格?


答:定義頁面得contentType=”application/vnd.ms-excel”,讓頁面以excel得形式打開。同樣也可以以word得形式打開:application/msword。


32. 問:怎樣才能避免textarea字數限制?


答:是使用了FORM的默認方法的緣故,如果什么也不寫默認是GET改用Post即可,在Form中定義mothod=”post”。


33. 問:為什么加了<%@page contentType=”text/html;charset=gb2312″ %>插入數據庫的中文,依然是亂碼?


答:這要從環境看,能顯示說明你的JSP引擎沒有問題,但寫入數據庫時你的JDBC能不能處理中文,同一公司不同版本的JDBC都有支持中文和不支持中文的情況,RESIN自帶的MYSQL JDBC就不支持,MM的就支持,還有你的數據庫類型是否支持中文 CHAR的一般支持,但是否用binary存儲雙字節碼


34. 問:對于JFrame,hide(),show()與setVisibel()有什么區別嗎?


答:setVisible()從Component繼承過來,而hide(),show()從Window里面繼承過來。


Makes the Window visible. If the Window and/or its owner are not yet displa yable, both are made displayable. The Window will be validated prior to being made visible. If t he Window is already visible, this will bring the Window to the front. 區別在這。


36. 問:sendRedirect為什么不可以轉到mms協議的地址的?response.sendRedirect(“mms://missiah.adsldns.org:9394″);


答:java平臺目前實現的protocol中并沒有mms,你可以取系統屬性java.protocol.handler.pkgs看看它的值中有沒有mms,所以如果要想重定向到mms://host這樣和URL,只有生成客戶端的java script讓它來重定向


37. 問:JTable中怎樣定義各個Columns和Width和怎樣設置表格的內容靠做靠右或居中?


答:TableColumn tc = table.getColumn(“Name”);//取得列名為”Name”的列Handle


int currentWidth = tc.getPreferredWidth();