1)、獲取Class對象的方式:類名.class、對象.getClass()、Class.forName(“類名”);
2)、通過Class對象自審
3)、動態調用方法
2. 在oracle大數據量下的分頁解決方法
頁面
DB a:自身特點(limit,rownum,row_num函數) b:ResultSet
數據量少,緩存DB: { r* _2 o: B0 r. V; }9 A
3. mySQl的分頁是怎么實現的?
Select * from limit 0,3
4. cookie被禁止后怎樣使用session?
request.getSession().setAttribute(“aa”, “ss”);
response.sendRedirect(response.encodeURL(“”));
5. 項目開發經歷了哪幾個階段
需求分析及變更管理
項目模型及業務流程分析
系統分析及建模設計
界面設計及代碼開發
系統測試,部署和文檔編寫
維護
6. 談談項目的體系統架構:客戶層,表示層,業務層,數據層
客戶層:用來實現企業級應用系統的操作界面和客戶表示,(如HTML和可以顯示WEB頁面的瀏覽器).
表示層:主要是為企業提供WEB服務,包括JSP頁面和Servlet技術.
業務層:也叫應用層封裝了企業所有的業務邏輯(JAVA Bean,JAVA類).
數據層:用來儲存企業數據信息,(如oracle,mysql).
7. J2EE規范中的組件技術在項目中用到了哪些?
JSP,servlet.,JDBC,XML, JNDL,JAVABEAN
8. TCP/IP通訊和UDP通迅的區別?
1) TCP/IP面向連接,可靠連接,UDP面向不連接,不可靠連接
2) 建立連接經歷3次握手,udp無需連接,ip和port封裝在datagram數據包中,自尋址。
9. 瀏覽器和WEB服務器是用什么協議通迅的?
應用層使用的是 HTTP協議,傳輸和路由使用的是TCP/IP
10. 網絡通訊中,端口有什么含義。端口的取值范圍?
端口用于區分基于TCP/IP通訊的不同應用程序, 可以認為是計算機與外界交流的出口。端口取值范圍>1024,系統使用的端口范圍0 — 1024
11. 說出3個常見協議的默認端口。
21 ftp File Transfer [Control] 文件傳輸協議(控制)
80 http World Wide Web HTTP 全球信息網超文本傳輸協議
25 smtp Simple Mail Transfer 簡單郵件發送協議
12. socket是什么,它有什么作用?
Socket是通訊的端點。是黑盒子的出入口。對于應用層來說,socket封裝了底層的所有通訊細節。
13. TCP/IP通訊的基本步驟是什么?
1) 向操作系統注冊:讓操作系統將一個端口和服務器通訊進程綁定。這個端口就代表了這通訊進程。ServerSocket ss = new ServerSocket(port),服務端通訊進程在port端口監聽。
2) Socket socket = serverSocket.accept();取出一個客戶端的socket連接。如果沒有客戶端的連接到來,就一直等待,也就是阻塞狀態
3)和服務器建立連接:Socket socket = new Socket(ip地址,port);
如果創建socket對象成功,代表連接建立。如果拋出異常,連接建 立不成功。
4)在發送方通過socket獲取輸出流對象,socket.getOutputStream()并執行寫入操作
5)在接收放通過socket獲取輸入流,socket.getInputStream()并執行讀取操作
14. UDP通訊的基本步驟是什么?
創建客服端的DatagramSocket,創建時,定義客服端的監聽端口
創建服務端的DatagramSocket,創建時,定義服務端的監聽端口
在服務端定義DatagramPaket對象,封裝待發送的數據包
服務端講數據發送出去
客服端接收數據
15. JDBC訪問數據庫的基本步驟是什么(手寫)?
以查詢為例:
步驟一:注冊并加載驅動程序
Class.forName(“oracle.jdbc.driver.OracleDriver”)
步驟二:創建連接
Connection conn = DriverManager.getConnection(url,user,password);
步驟三:創建sql語句對象
Statement st = conn.createStatement()
步驟四:提交sql語句
String sql = “select * from tablename”;
ResultSet rs = st.executeQuery(sql);
步驟五:顯示結果
While(rs.next()){
}
步驟六:關閉連接
Rs.close();
St.close();
Conn.close();
16. 說說preparedStatement和Statement的區別
1) 提高效率,數據庫系統只編譯一次sql語句。而通過statement的sql語句每次數據庫系統都會編譯。
2) 防范sql注入攻擊
17. 說說事務的概念,在JDBC編程中處理事務的步驟。
1):事務(Transaction)是并發控制的單位,是用戶定義的一個操作序列。這些操作要么都做,要么都不做,是一個不可分割的工作單位。
2) JDBC API中使用事務處理步驟: a. 用false作為參數調用setAutoCommit方法; b. 執行一或多個關于數據庫的操作; c. 調用commit方法完成改變; d. 恢復上次提交后的改變,調用rollback()方法
18. 數據庫連接池的原理。為什么要使用連接池。
數據庫連接池在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的。無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能占有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。為了解決資源的頻繁分配,釋放所造成的問題,提供高效率的連接分配,實現連接的高效安全避免了數據庫頻繁建立,關閉的開銷
19. servlet和jsp有什么關系?
1;jsp從本質上講就是一個servlet
2;Jsp通過編譯后,會生成.java 文件,它extends與HttpJspBase.
20. 編寫一個servlet的步驟。
public calss MyServlet extends HttpServlet(){
public void init(){};
public void destroy(){};
public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServlerException,IOException{};
}
web.xml中配置—-
<servlet>
<serlvet-name> </>
<serlvet-calss></>
</servlet>
<serlvet-mapping>
<serlvet-name></>
<url-pattern>/x</>
</serlvet-mapping>
31.HttpservletResponse的sendError方法的作用
向客戶端發送一個錯誤的HTTP狀態碼
22.什么情況下使用URL重寫
當cookie被禁用后,可以通過URL重寫將sessionid附加在URL后發送.
好處:
1.縮短url,隱藏實際路徑提高安全性
2 易于用戶記憶和鍵入。
3 易于被搜索引擎收錄
其中詳細如下
1.通過URL重寫,把動態地址轉換成更容易被搜索引擎收錄的形式-靜態頁面地址,是一種對搜索引擎友好的方法。google雖然可以抓取動態頁面,但是對動態頁面的評分一般低于靜態頁面。所以,對大量信息發布的網站,把網站地址改變成靜態的絕對是值得的。
2.如果網站改版或目錄結構更改時,很多頁面的鏈接可能會發生變化,許多搜索引擎已索引的頁面及用戶的歷史收藏可能會成為死鏈。使用URL重寫技術,則由于可以構建虛擬的網站目錄和結構,可有效的防止因改版而使搜索引擎已索引的頁面無法訪問的問題,在信息量相同的情況下,反而會增加可索引的頁面數量。如:以前可能會通過http://www.xxx.com/news/detail.asp?id=2436訪問某個頁面,重寫后該頁面的網址可能會變成 http://www.xxx.com/news/detail/2436.html(甚至可以不用擴展名),以這兩種形式的網址訪問的真實頁面仍然是 http://www.xxx.com/news/detail.asp?id=2436。
3.使用URL重寫,通過URL到URL、URL到文件名,甚至文件名到文件名的轉換,為網站建立了一種新的層次清晰、緊湊簡潔的目錄結構,隱藏了真實的目錄和文件。同時服務器可根據請求中諸如瀏覽器類型、源IP地址等特征來決定最終提交給客戶的內容,或限制某個列表中主機對WEB服務器的訪問,極大地提高了網站的安全性。
4.直接生成靜態頁面雖然能提高訪問速度,但由于該靜態頁面一般是在信息發布時生成的,會出現頁面上的其他信息無法更新的問題,除非以后重新生成所有內容頁面(重新生成應該是很耗費資源的)。而通過URL重寫技術,盡管是以靜態網址發出請求,但通過正則表達式匹配后,對應的仍然是動態網頁,因此不存在數據更新的問題。
23.doGet和doPost在什么時候調用?區別?
方法GET和HEAD應該被所有的通用WEB服務器支持,其他所有方法的實現是可選的。GET方法取回由Request-URI標識的信息。HEAD方法也是取回由Request-URI標識的信息,只是可以在響應時,不返回消息體。POST方法可以請求服務器接收包含在請求中的實體信息,可以用于提交表單,向新聞組、BBS、郵件群組和數據庫發送消息。
get和post提交的數據量是不一樣的.
get好像最多只能在url后跟2K 因為get只能發送一個byte的請求
而post則沒有限制
建議用Get方法提交數據時,字節大小不要超過1300,也就是1.3KB。超過這個大小就需用POST方法了
24.response對象的作用
setContentType設置內容格式 如AJAX時response.setContentType(“text/xml;charset=gbk”)
setHeader設置響應頭 response.setHeader(“Cache-Control”,”no-cache”)禁用頁面緩存
sendError 發送一個錯誤的HTTP狀態碼
sendRedirect 重定向
25.jsp中import指令的作用
導入需要引用的類
26 文件上傳的步驟與原理
首先<from enctepy=”multiptart/form-data” method=”post”>
表示這個表單用post提交的是 二進制文件.
這種方式提交的話,在serlvet中的request.getparamer(“”);是得不到內容的.必須用 getIntputStream()來得到字節輸入流
通過字節輸入流得到3部分:1,分界符.2,頭(普通表單域,文件上傳域).3,消息體(普通表單域的內容,文件上傳域的內容).
27.ajax的步驟與原理
1,創建一個XmlHttpRequest對象.
2,調用open方法 (準備發起請求).
open(“提交方式”,”URL地址”,”是否同步(false/true)”).
3,如果是提交方式是post,就需要設置請求頭.SetrequestHeard(“content-Type”,application/X-www;1;);
4,設置回調函數 XmlRequest.onredystatechang=XX;
5,在服務器端 response.setContType(“”);
response.setHeard(“”);
6,通過判斷XmlHttpRequest.readystatc==4 是否會應.
XmlHttpRequest.status==200 判斷狀態碼.
7,用XmlRequest.responseText 接受文本內容
或者是用Xmlrequest.XmlResponse接受Xml內容.
轉載請注明: 文章轉載自:愛思資源網 http://www.randomwithlife.com/show-66-799-1.html