web 面試題
JAVAWEB 面試題
1. css和div 開發的優勢?
顯示和內容實現分離 有利於搜索引擎搜索 有利於維護和程序的擴展
2. 談談頁面間的參數傳遞有哪些方式 ?
通過作用域對象session、request 的setAttribute()和getAttribute()方法進行參數傳遞。
<jsp:forward> <jsp:param name= value=></jsp:forward>
request.gerRequestDispatcher(“1.jsp?name=XX”).forward(request,response);
<jsp:useBean id= class= scope=request/session>
3. hidden表單域有什麽作用?
4. jsp有哪些內置對象?
pageContex,request,session,application,out,exception,config,page,
5. request的作用有哪些?
獲取客戶端傳遞的參數值 獲取客戶端請求頭信息 獲取會話 獲取轉發對象 可作為容器使用, 利用setAttribute()和getAttribute()方法進行參數傳遞
6. session有什麽作用。
7. application有什麽作用。
8. 在jsp中怎樣操作page作用域
9. jsp有哪些動作?作用分別是什麽?
<jsp:include/> <jsp:forward/><jsp:usebean/> <jsp:setProperty/><jsp:getProper>
request.getRequestDispatcher(“1.jsp?name=XX”).forward(request,response);
10. java servlet api中forward() 與redirect()的區別?
11. class.forname的作用?為什麽要用?
加載類;一般使用這個方法是反射方式創建對象;從而可以將一些類信息寫在文件中,避免硬編碼,增加靈活性。
12. 分頁是怎麽實現的?
13. cookie被禁止後怎樣使用session?
14. 項目開發經歷了哪幾個階段?
15. 談談項目的體系統架構:(客戶層,表示層)web層,業務層,數據層?
16. J2EE規範中的組件技術在項目中用到了哪些?
JDBC,jsp,servlet,javabean,xml,JNDI
17. TCP/IP通訊和UDP通迅的區別?
18. 瀏覽器和WEB服務器是用什麽協議通迅的?
應用層使用的是 HTTP協議,傳輸和路由使用的是TCP/IP
19. 網絡通訊中,端口有什麽含義。端口的取值範圍?
端口用於區分基於TCP/IP通訊的不同應用程序, 每個基於TCP/IP應用程序都會向操作系統申請註冊一個服務,這個服務用端口表示。本質上說,端口就是一段內存中的緩沖區。可以認為是計算機與外界交流的出口。
建議用戶使用的端口號 1024-----65535系統使用的端口範圍0 --- 1024
20. 說出3個常見協議的默認端口。
Web服務器80,ftp 21,telenet 23,smtp 25
21. socket是什麽,它有什麽作用?
Socket是通訊的端點,是客戶端和服務器進行通訊的端點
22. TCP/IP通訊的基本步驟是什麽?
23. UDP通訊的基本步驟是什麽?
24. JDBC訪問數據庫的基本步驟是什麽?
25. 說說preparedStatement和Statement的區別
26. 說說事務的概念,在JDBC編程中處理事務的步驟。
1) 事務是作為單個邏輯工作單元執行的一系列操作。
2) 一個邏輯工作單元必須有四個屬性,稱為原子性、一致性、隔離性和持久性 (ACID) 屬性,只有這樣才能成為一個事務
事務處理步驟:
3) conn.setAutoComit(false);設置提交方式為手工提交
4) conn.commit()提交事務
5) 出現異常,回滾 conn.rollback();
27. 數據庫連接池的原理。為什麽要使用連接池。
1) 數據庫連接是一件費時的操作,連接池可以使多個操作共享一個連接。
2) 數據庫連接池的基本思想就是為數據庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之後再放回去。我們可以通過設定連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監視數據庫的連接的數量?使用情況,為系統開發?測試及性能調整提供依據。
3) 使用連接池是為了提高對數據庫連接資源的管理
28. 談談DAO模式的原理的作用。
DAO是一種設計模式
包括三個部分1)DAO接口
2)DAO接口實現類,
3)PO持久化對象,它和數據庫相對應
29. servlet和jsp有什麽關系?
Servlet和JSP都是服務器的組件。
JSP重在表示,解決了servlet頁面輸出困難的問題。而servlet重在業務處理,避免在頁面出現過多的業務處理帶來的閱讀性和維護性的困難。它們可以很好的結合。
Servlet編寫後需要在WEB應用的web.xml進行註冊,從而能讓WEB容器識別用戶編碼的Servlet。但JSP由容器來管理,所以無需註冊。
30. jsp是如何被容器調用和執行的?
31. 編寫一個servlet的步驟。
32. doGet和doPost方法各有什麽作用?
33. 為什麽要為servlet配置URL映射?
34. servlet的類架構是什麽樣的。
35. 談談servlet的生命周期?
36. servlet是線程安全的嗎?為什麽?
不安全。因為Servlet對象在整個過程中,至始至終只有一個對象。以節約服務器資源的消耗,這就意味著很多個線程會同時訪問一個Servlet對象。所以線程不安全。
37. 你是如何處理servlet線程安全問題的?
解決Servlet線程安全問題方法有三種
1)編寫Servlet類的時候,實現SingleThreadModel接口,將Servlet變成單線程機制。
2)涉及對共享資源訪問的時候,使用synchronized同步加鎖,實現共享資源的保護。
3)盡量不在Servlet中定義成員變量,使用局部變量。
在三種方法中,最好使用第三種,這樣線程安全,並且性能最高。
38. 如何得到客戶端的請求參數?
request.getParameter()單個數據
request.getParameterValues()一組數據
request.getParameterMap()返回所有的鍵值對
39. request.getParameter和request.getParameterValues的區別,它們的返回值是什麽類型?
40. response對象的作用?
41. request對象的作用範圍是什麽?
42. session對象的作用範圍是什麽
43. application對象的作用範圍是什麽。
44. session對象是什麽時候產生的,什麽時候銷毀的?
45. 項目中用到了session對象嗎,在哪裏用到的?
46. session和cookie有什麽區別。
47. .Http協議是無狀態的,服務器是用什麽方式為一個客戶端保存狀態的?
48. servlet或jsp能同時響應多個客戶端的請求嗎?是通過什麽方式做到的?
49. 請簡述servlet多線程的實現方式?
50. 在servlet中定義成員變量(全局變量),有線程安全問題嗎?如何處理?
51. 請求轉發和重定向的區別。
52. JSP中動態包含和靜態包含的區別。
1) 靜態包含在轉換成為java文件的時候將要包含的文件包含進來,作為一個整體編譯。動態包含是各個包含文件分別轉換,分別編譯。
2) 靜態包含在兩個文件中不能有相同的變量,動態包含允許
3) 靜態包含只能包含文件,動態包含還可以包含servlet輸出的結果
4) 靜態包含不能使用變量作為文件名,動態包含可以使用變量作為文件名
5) 動態包含文件發生變化,包含文件會感知變化。
53. 談談MVC設計模式的概念,使用MVC的好處。
54. 模式1和模式2和區別。
模式1:jsp+javabean
模式2:jsp+servlet+javabean
55. 你的項目中建有多少張表,字段最多的表是哪一張?每張表裏都有些什麽字段?
56. 說說你項目開發的流程?
57. 說說你所開發模塊的業務流程,業務是什麽?
58. 談談監聽器的原理、配置及使用。你在項目中是怎麽用的?
59. 談談過濾器的原理,配置及使用。有多個過濾器如何進行配置?
60. 你在項目中的角色是什麽,你是如何進行工作的?
61. 你所做的工作,如何和小組其它人員所做的工作進行協調(數據庫設計、程序模塊編寫等兩個方面來說);
62. 一個頁面中有兩個form,如何處理提交?
可以使用提交按鈕的名稱來判斷,也可以使用hidden隱藏表單進行值的區分。
63. web項目與java項目有什麽區別?
64. 不用eclipse,如何手工發布tomcat項目?
65. MVC模式在項目中,都是怎麽用的?
66. 請談談請求轉發的原理?
67. 請說明重定向的原理?
68. 你是否從其它人的表中調用數據,如何進行協調?
69. 在家開發的模塊,如何拿到公司與小組成員的進行合並?
70. 你在項目中是如何處理亂碼的?
71. 談談項目中分頁的實現?
72. CSS有哪幾中選擇器?有什麽區別?
73. 你在web項目中,數據共享有哪些方式 ?如果實現的?
74. 項目各個階段會產生什麽樣的文檔?都有什麽作用?
75. 項目結構是如何劃分的?應該註意些什麽?
76. servlet中,如何取得HTTP頭信息?
77. servlet程序中,可以獲得客戶機的IP地址嗎?如何得到?
78. URL與URI的區別?
79. servlet中的service方法在什麽時候調用?
80. 文件上傳的原理是什麽 multipart/form-data”什麽意思?
81. 文件上傳的form編寫中,應該註意些什麽?
82. 在項目中,文件上傳到服務器上後,你是怎麽處理的?
83. 如何打包一個web項目?
Jar –cf xx.war WEB-INF *.html *.jsp *.jpg
84. MIME的作用是什麽?
告訴客戶端瀏覽器你返回的內容是哪一種類型的,讓瀏覽器采取相應的策略來顯示處理你返回的文檔或者文件。
85. tomcat容器是如何創建servlet類實例?用到了什麽原理?
<load-on-startup>1</load-on-startup>如果為正數,則在一開始就實例化,如果不寫或為負數,則第一次請求實例化。
86. servlet構造函數中可以執行初始化代碼,為什麽還要init方法呢?
87. HttpServletRequest和HttpServletResponse是在哪裏創建的?
88. ServletRequest與HttpServletRequest有什麽區別與聯系?
ServletRequest是HttpServletRequest的父接口
90. servlet中如何到得項目的絕對路徑?
Request.getContextPath();
91. jsp中taglib指令的作用是什麽?
這個指令是標簽庫指令。指示標簽庫的邏輯路徑,以及標簽庫的使用前綴。
使用taglib指令<[email protected] uri=”” prefix=”” %>
92. 文件下載如何實現?如何保證授權用戶的下載?
1) 設置setContextType(),MIME類型。
2) 打開文件,按照二進制流的方式將字節數發往客戶端。
93. 在servlet中,如何得到web.xml中配置的初始化參數?
ServletConfig.getInitParameter()
95. 如何進行URL重寫?要用到什麽方法?
Response.encodeURL();
96. session如何過期?項目中該怎麽應用?
97. tomcat容器的作用是什麽?
98. 在servlet中,怎麽直接往客戶端輸出信息?
100. jsp中的import指令有什麽作用?
101. 如何在jsp中使用bean?
103. 發布項目時,把一jsp文件放到webroot下,與放在web-inf下,有什麽區別?
104. web.xml中welcome-file配置項的作用是什麽?
105. servlet中的response.sendError的作用是什麽?
106. 如何用過濾器實現用戶登錄認證?
114. jstl是什麽?
115. 對客戶輸入的數據,可以在哪些方面對數據格式的合法性進行驗證?
118. ajax的基本原理是什麽。
119. 119、jsp和javascript的區別?
web 面試題