問題實錄(3)
發表時間:2024-02-17 來源:明輝站整理相關軟件相關文章人氣:
[摘要]41. 問:我的applet code 中用到jbutton 時就出錯是否由于ie不支持swing package 請問應怎么辦? 答:JBUTTON是SWING基本包啊,只要把jdk/jre/lib/rt.jar放在classpath就行了.不要加載任何別的庫。42. 問:不知道java是...
41. 問:我的applet code 中用到jbutton 時就出錯是否由于ie不支持swing package 請問應怎么辦?
答:JBUTTON是SWING基本包啊,只要把jdk/jre/lib/rt.jar放在classpath就行了.不要加載任何別的庫。
42. 問:不知道java是否支持midi格式,如果支持,應該怎么把wave格式轉換成midi格式?
答:目前還不行,可以看一下JMF三個版中對MIDI的格式支持是read only,而WAVE是read/write,MIDI只能播放,不能生成。
43. 問:在jsp里面防止用戶直接輸入url進去頁面,應該怎么做呢?
答:
一是從web服務器控制,對某一目錄的所有訪問要通過驗證.
二是在要訪問的頁面中加入控制.這個一般用session,也可以用請求狀態碼實現
44. 問:
例如后臺有一計算應用程序(此程序運算起來很慢,可持續幾分鐘到幾小時,這不管,主要是能激活它),客戶機講任務提交后,服務器對任務進行檢測無誤后將向服務器后臺程序發送信息,并將其激活。要求如下:
1)首先將后臺程序激活,讓它執行此任務(比如,前臺將計算的C代碼提交上后,后臺程序程序能馬上調用,并將其運行)
2)要在前臺JSP頁面中顯示運行過程信息(由于運行時間長,希望讓客戶看到運行過程中產生的信息)如何完成?
答:
活是可以的,運行一個shell讓它去運行后臺就行,但不可能取出運行信息,因為HTTP的超時限制不可能永遠等你后臺運行的,而且信息如果要動態實時推出來就得用SERVER PUSH技術。
45. 問:數據庫是datetime 型 ,插入當前時間到數據庫?
答:
java.sql.Date sqlDate = new java.sql.Date();
PreparedStatement pstmt = conn.prepareStatement("insert into foo(time) values(?)");
pstmt.setDate(1,sqlDate);
pstmt.executeUpdate();
46. 問:怎樣去掉字符串前后的空格。
答:String.trim()。
47. 問:session怎樣存取int類型的變量?
答:
session.setAttribute("int", i+"");
int i = Integer.parseInt(session.getAttribute("int"));
48. 問:在javascript中如何使輸出的float類型的數據保留兩位小數。
答:Math.round(aaaaa*100)/100。
49. 問:在bean種如何調用session。
答:
你可把session對象作為一個參數傳給bean
在BEAN中定義HttpServletRequest request;HttpSession session;
然后
session = request.getSession(false);
false為如果session為空,不建立新的session
將session作為參數傳入.其實只要將request傳入就可以
50. 問:如何把txt或word文件按原格式顯示在jsp頁面或servlet上?
答:
其實一個非常簡單的解決方法就是在服務器的MIME中指點定TEXT和WORD的解釋方式,然后用JSP或SERVLET生成它就行了,客戶端就會自動調用相應程序打開你的文檔。
如果是希望按原格式的顯示在頁面上,而不是調用其他程序打開那么你可以試試用WEBDEV協議,可以說這是MS的一個亮點.它是在WEB方式下打開文檔,和共享一樣.完全符合的要求。
51. 問:object的clone方法為什么不能直接調用?
答:
這個方法在object中是protected
為什么要把這個方法定義為protected,這是一個折中,它的目的是想知道你這個方法在Object里只是一個標記,而不是一個實現,比如\r
public class Object
{
.............
protected Object clone()
{}
}
所以直接繼承的clone()方法并不能做任何時,你要使用這個方法就要重載這個方法并放寬訪問權限為public,或實現cloneable接口.
但它沒法這樣告訴你它沒有真的實現,只好用protected 方法加以警示
52. 問:一個頁面中如何刷新另外一個頁面?
答:
要求是這些面頁必須有關聯,一是它們都有一個共同的頂層幀,也就是說是一個幀內的分級頁面,當然可以是任意級,幀內再分幀也可以,另一個可能是當前窗口彈出的窗口,如果沒有聯系,那就不可能用一個頁面刷新另一個頁面.
幀內只要一級一級引用就行了.
比如在左幀中一個頁面中寫
top.right.location.reload();那么名為right的右幀中的頁面就會刷新.
彈出的一樣,用open時的名稱刷新子窗口,子窗口用opener刷新主窗口
53. 問:如何在jsp中怎么樣向客戶端寫cookies?
答:
Cookie coo = new Cookie(name, value);
HttpServletResponse.addCookie(name);
54. 問:為什么jTextField1.setText("aaabbb");jTextField2.setText("AAABBB"); 得到的字體寬度不一樣?
答:就是說如果不是指定為等寬字體,每個字體的寬度都是不一樣的.因此JAVA中用FontMetrics 類來取字符寬度。
55. 問:String kk=application/octet-stream; name="G:/SMBCrack.exe";如何得到SMBCrack.exe?
答:
這應該是解析上傳時候的二進制流得到的
這一行里面格式是固定的,取到name="后面的字符串,然后把";去掉。
然后取最后一個/后面的所有字符組成一個新字符串就行了。
56. 問:如何傳值并不刷新頁面?
答:
彈出一個頁面進行值的選擇或者輸入,ok后使用將值傳給原窗口,使用javascript關閉打開的窗口即可:
window.close();opener.focus();
57. 問:有一個字符串:“EF0C114EA4”,如何變為a[0] = 0xEF a[1] = 0x0C a[2] = 0x11 a[3] = 0x4E a[4] = 0xA4?
答:
String str="EF0C114EA4F";
out.print(str+"<br>");
int l=str.length()/2+str.length()%2,j=0,k=0;
String[] a=new String[l];
for(int i=0;i<l;i++){
if(str.length()-j==1)
k=str.length();
else
k=j+2;
a[i]="0x"+str.substring(j,k);
out.print("a["+Integer.toString(i)+"]="+a[i]+"<br>");
j+=2;
}
58. 問:怎樣將一個int轉換成一個四字節的byte數組?
答:
int x = 1234567;
byte[] b = new byte[4];
for(int i=0;i<b.length;i++)
{
b[i] = (x >>( i*8)) & 0xFF;
}
59. 問:indexOf()的使用需要注意什么?
答:參數是指從第幾位(1,2,3,...)開始搜索,而返回值是指搜索到的位置(0,1,2,3.......)注意是從零算起的。
60. 問:在Java應用程序中如何動態的添加一個按鈕?
答:
這里涉及一個組件重繪的問題,組件要先于panel被顯示之處存在,如果一panel已經顯示了,那么加在上面你能看到嗎?但如果在同一個panel上,先有button A,假如按下它加了button B,這時你如果使整個panel重給,那么A本身要重繪,它的事件監聽就沒有了,當然也就加不成B了,所以如果要先有另一個panel,當按A時把B加在這個panel上并重繪這個paenl,其實更好的方法是先把B加在panel中,同一個也行.把它setVisiable(flase),按A時設為true。