更新時間:2020-10-21 17:54:06 來源:動力節(jié)點(diǎn) 瀏覽1213次
在Java中,動態(tài)Web資源開發(fā)技術(shù)統(tǒng)稱為Java Web,而動態(tài)web資源開發(fā)技術(shù)有JSP/Servlet、ASP、PHP等。這些技術(shù)都是Java Web面試題中的常客,下面為小伙伴們帶來Java Web面試題中最常考的10道面試題。
1、說一說 Servlet 的生命周期?
web 容器加載 servlet,生命周期開始。通過調(diào)用 servlet 的 init()方法進(jìn)行 servlet 的初始化。通過調(diào)用 service()方法實(shí)現(xiàn),根據(jù)請求的不同調(diào)用不同的 do***()方法。結(jié)束服務(wù),web 容器調(diào)用 servlet 的 destroy()方法。
2、SERVLET API 中 forward() 與 redirect()的區(qū)別?
答:前者僅是容器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會顯示出轉(zhuǎn)向后的地址;后者則是完全的跳轉(zhuǎn),瀏覽器將會得到跳轉(zhuǎn)的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用 forward()方法,并且,這樣也有助于隱藏實(shí)際的鏈接。
在有些情況下,比如,需要跳轉(zhuǎn)到一個其它服務(wù)器上的資源,則必須使用
sendRedirect()方法。
3、 jsp 有哪些內(nèi)置對象
request 用戶端請求,此請求會包含來自 GET/POST 請求的參數(shù)
response 網(wǎng)頁傳回用戶端的回應(yīng)
pageContext 網(wǎng)頁的屬性是在這里管理
session 與請求有關(guān)的會話期
application servlet 正在執(zhí)行的內(nèi)容
out 用來傳送回應(yīng)的輸出
config servlet 的構(gòu)架部件
page JSP 網(wǎng)頁本身
exception 針對錯誤網(wǎng)頁,未捕捉的例外
4、JSP 和 Servlet 有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么?
JSP 是 Servlet 技術(shù)的擴(kuò)展,本質(zhì)上是 Servlet 的簡易方式,更強(qiáng)調(diào)應(yīng)用的外表表達(dá)。
JSP 編譯后是"類 servlet"。Servlet 和 JSP 最主要的不同點(diǎn)在于,Servlet 的應(yīng)用邏輯是 在 Java 文件中,并且完全從表示層中的 HTML 里分離開來。而 JSP 的情況是 Java 和HTML 可以組合成一個擴(kuò)展名為.jsp 的文件。JSP 側(cè)重于視圖,Servlet 主要用于控制邏輯。
5、MVC 的各個部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)?
MVC 是 Model-View-Controller 的簡寫。Model 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB 組件實(shí)現(xiàn)), View 是應(yīng)用的表示面(由 JSP 頁面產(chǎn)生),Controller 是提供應(yīng)用的處理過程控制(一般是一個 Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
6、MVC 的各個部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)?
MVC 是 Model-View-Controller 的簡寫。Model 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB 組件實(shí)現(xiàn)), View 是應(yīng)用的表示面(由 JSP 頁面產(chǎn)生),Controller 是提供應(yīng)用的處理過程控制(一般是一個 Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。
7、Tomcat 的優(yōu)化經(jīng)驗(yàn)
答:去掉對 web.xml 的監(jiān)視,把 jsp 提前編輯成 Servlet。
有富余物理內(nèi)存的情況,加大 tomcat 使用的 jvm 的內(nèi)存
8、Servlet的基本架構(gòu)
答:
public class ServletName extends HttpServlet
{
//初始化方法
public void init()
{
……
}
//GET請求處理的方法
public void doGet(HttpServletRequest request,HttpServletResponse response)
{
……
}
//POST請求處理的方法
public void doPost(HttpServletRequest request,HttpServletResponse response)
{
……
}
//結(jié)束服務(wù)的方法
public void destroy()
{
……
}
}
9.、cookie和session的作用、區(qū)別、應(yīng)用范圍。
答:a、cookie數(shù)據(jù)保存在客戶端,session數(shù)據(jù)保存在服務(wù)端。
b、cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,相當(dāng)重要的數(shù)據(jù),應(yīng)該使用session保存到服務(wù)端。
c、session會在一定時間內(nèi)保持在服務(wù)器上,但是會占用內(nèi)存資源,當(dāng)訪問的用戶過多,會加重服務(wù)器的負(fù)載,考慮到減輕服務(wù)器的壓力,可以將不重要的數(shù)據(jù)放在cookie中持久的保存。
d、單個cookie保存的數(shù)據(jù)不能超過4k,很多瀏覽器都限制站點(diǎn)最多保存20個cookie。
10.JSP的四種范圍?
答:a、page是代表一個頁面相關(guān)的對象和屬性。一個頁面由一個編譯好的java servlet類(可以帶有include指令,但不可以帶有include動作)表示。這既包括servlet又包括編譯成servlet的jsp頁面。
b、request是代表與web客戶機(jī)發(fā)出的一個請求相關(guān)的對象和屬性。一個請求可能跨越多個頁面,涉及多個web組件(由于forware指令和include動作的關(guān)系)
c、session是代表與用于某個web客戶機(jī)的一個用戶體驗(yàn)相關(guān)的對象和屬性。一個web回話也可以經(jīng)常跨域多個客戶機(jī)請求。
d、application是代表與整個web應(yīng)用程序相關(guān)的對象和屬性。這實(shí)質(zhì)上是跨域整個web應(yīng)用程序,包括多個頁面、請求和回話的一個全局作用域。
以上就是為大家?guī)淼?0道最常考的Java Web面試題,希望能夠?yàn)榍舐毜男』锇槁员M綿薄之力。當(dāng)然,這些只是出現(xiàn)頻率比較高的面試題,想要穩(wěn)拿offer還是要付出相應(yīng)的努力的,本站的Java面試題庫里面有海量高質(zhì)量Java面試題,小伙伴們可以隨時去刷題檢驗(yàn)自己的Java水平哦。
初級 202925
初級 203221
初級 202629
初級 203743