国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java面試題(4)-JavaWeb基礎部分

2019-11-08 00:55:18
字體:
來源:轉載
供稿:網友

講下Servlet的執行流程。doGet和doPost的區別 Servlet的執行流程也就是servlet的生命周期,當服務器啟動的時候生命周期開始,然后通過init()《啟動順序根據web.xml里的startup-on-load來確定加載順序》方法初始化servlet,再根據不同請求調用doGet或doPost方法,最后再通過destroy()方法進行銷毀。 doGet和doPost都是接受用戶請求的方法,doGet處理get請求,doPost處理post請求,doGet用于地址欄提交,doPost用于表單提交,在頁面提交數據時,get的數據大小有限制4k,post沒有限制,get請求提交的數據會在地址欄顯示,post不顯示,所以post比get安全. 當service有一個實例變量,doGet和doPost去調用這個變量,會出現什么問題,你是如何解決的。 會出現線程不安全問題。無論是doGet還是doPost去調用,服務器端處理的過程都是一樣的,那么我們可以把處理過程單獨寫在另外一個方法handle里,讓兩個方法都去調用handle,根據不同請求去調用不同的方法。 如何處理servlet的線程不安全問題 線程安全就是多線程操作同一個對象不會有問題,線程同步一般來保護線程安全,所以可以在Servlet的線程里面加上同步方法或同步塊。(Synchronized)可以保證在同一時間只有一個線程訪問,(使用同步塊會導致性能變差,最好不去使用實例變量) jsp的重定向和轉發的流程有什么區別 重定向是客戶端行為,轉發是服務器端行為 重定向時服務器產生兩次請求,轉發產生一次請求,重定向時可以轉發到項目以外的任何網址,轉發只能在當前項目里轉發 重定向會導致request對象信息丟失。轉發則不會 轉發的url不會變,request.getRequestDispatch().forward() 重定向的url會改變,response.getRedirect(); Jsp和servlet的區別 jsp的可讀性強,容易維護,并且jsp在最后會編譯成servlet servlet容易調試 Jsp的九大內置對象,三大指令,七大動作的具體功能 JSP九大內置對象: pageContext :只對當前jsp頁面有效,里面封裝了基本的request和session的對象 Request :對當前請求進行封裝 Session :瀏覽器會話對象,瀏覽器范圍內有效 application :應用程序對象,對整個web工程都有效 Out :頁面打印對象,在jsp頁面打印字符串 Response :返回服務器端信息給用戶 Config :單個servlet的配置對象,相當于servletConfig對象 Page :當前頁面對象,也就是this Exception :錯誤頁面的exception對象,如果指定的是錯誤頁面,這個就是異常對象 三大指令: Page :指令是針對當前頁面的指令 Include :用于指定如何包含另一個頁面 Taglib :用于定義和指定自定義標簽 七大動作: Forward,執行頁面跳轉,將請求的處理轉發到另一個頁面 Param :用于傳遞參數 Include :用于動態引入一個jsp頁面 Plugin :用于下載javaBean或applet到客戶端執行 useBean :使用javaBean setPRoperty :修改javaBean實例的屬性值 getProperty :獲取javaBean實例的屬性值 獲取頁面的元素和值有幾種方式,分別說一下 request.getParameter() 返回客戶端的請求參數與值

request.getParameterNames() 返回所有可用屬性名的枚舉

request.getParameterValues() 返回包含參數的所有值的數組 servlet和javaScript的區別,他們分別是什么作用 一個是服務端,一個是客戶端 Servlet是獨立于平臺和協議的服務器端的java應用程序,可以動態生成web頁面,并采用響應–請求的模式提供web服務 Javascript是一種解釋性語言,用于向html頁面提供交互行為,通常被直接嵌入在html頁面中 servlet是java語言編寫的web應用 js是基于html上的一種解釋語言 會話跟蹤有哪些,他們的區別是什么 Cookie,session和application, Cookie是http對象,客戶端與服務端都可以操縱 cookie是在客戶端保持狀態,session是在服務器端保持狀態,由于cookie是保存在客戶端本地的,所以數據很容易被竊取,當訪問量很多時,使用session則會降低服務器的性能,application的作用域是整個工程里只有一個,可以在不同瀏覽器之間共享數據,所有人都可以共享,因此application也是不安全的 說說jsp的隱藏對象有哪些 Request,out,response , pageContext , session , application , config , page , exception,也即jsp的九大內置對象 request ,response,session 和 application是怎么用的 Request是客戶端向服務端發送請求 Response是服務端對客戶端請求做出響應 Session在servlet中不能直接使用,需要通過getSession()創建,如果沒有設定它的生命周期,或者通過invildate()方法銷毀,關閉瀏覽器session就會消失 Application不能直接創建,存在于服務器的內存中,由服務器創建和銷毀 jsp頁面跳轉 Jsp頁面跳轉有兩種方式,forward和redirect(轉發和重定向) Forward只能在當前項目里跳轉,只產生一次請求,request保存的變量不會丟失,url地址不會改變 Redirect可跳轉到項目以外的任何頁面,產生兩次請求,request保存的變量會全部丟失,url地址會發生改變,變化為第二個請求的地址 話跟蹤 如果創建servlet實例不用構造方法,怎么創建一個servlet實例 Web容器會自動為servlet寫一個無參的構造器,它使用class.forName(“”).newInstance()反射來創建servlet實例的 Servlet是安全的嗎?當service有一個實例變量,doGet和doPost去調用這個變量,會出現什么問題,你是如何解決的 是線程不安全的,因為servlet是單例模式,當多個客戶端共同訪問的時候線程不安全。 盡量用局部變量,同步塊,如果當前字段是不會改變的,用final修飾


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂伦春自治旗| 富源县| 滦南县| 京山县| 高雄市| 留坝县| 永兴县| 宁都县| 工布江达县| 万山特区| 井研县| 阜新市| 蒙城县| 辽宁省| 南涧| 连江县| 鹤壁市| 太和县| 龙川县| 理塘县| 永胜县| 济阳县| 承德市| 澄城县| 凤城市| 宝兴县| 肃北| 灵石县| 青海省| 当雄县| 清流县| 新丰县| 洛扎县| 潼关县| 林州市| 甘孜| 凤山县| 金沙县| 喀喇沁旗| 札达县| 石家庄市|