Servlet筆試面試

1 、Tomcat 的優(yōu)化經驗
答:去掉對 web.xml 的監(jiān)視宰僧,把 jsp 提前編輯成 Servlet茅坛。
有富余物理內存的情況案怯,加大 tomcat 使用的 jvm 的內存

2 、HTTP 請求的 GET 與 與 POST 方式的區(qū)別
答:servlet 有良好的生存期的定義江场,包括加載和實例化纺酸、初始化、處理請求以及服務結束址否。
這個生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表達餐蔬。

在Form表單中定義的method=“” 中可以是get和post,用get在http上會顯示表單中的數據佑附,相對不安全用含,只有表單中可以選擇get和post,其余的默認為get帮匾;

3 、解釋一下什么是 servlet;
答:servlet 有良好的生存期的定義痴鳄,包括加載和實例化瘟斜、初始化、處理請求以及服務結束。
這個生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表達螺句。

4 虽惭、說一說 Servlet 生命周期

生命周期中有三個方法
init是初始化的方法
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
}
//service方法無需我們操作,它會根據用戶向服務器端發(fā)送請求的方式(get/post)會自動調用service方法來判斷調用doGet/doPost
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
// TODO Auto-generated method stub
super.service(arg0, arg1);
}
銷毀的方法在關閉服務器時執(zhí)行destroy方法
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
}

5 蛇尚、Servlet 的基本架構(doget/dopost)

public class ServletName extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
}
}

6 芽唇、SERVLET API 中 中 forward() 與 與 redirect() 的區(qū)別?
forward 是服務器請求資源取劫,服務器直接訪問目標地址的 URL匆笤,把那個 URL 的響應內容
讀取過來,然后把這些內容再發(fā)給瀏覽器谱邪,瀏覽器根本不知道服務器發(fā)送的內容是從
哪兒來的炮捧,所以它的地址欄中還是原來的地址。
redirect 就是服務端根據邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址惦银,一般來
說瀏覽器會用剛才請求的所有參數重新請求咆课,所以 session,request 參數都可以獲取

(1).實現資源跳轉 用forward(arg0, arg1)轉發(fā)資源 在瀏覽器中的地址顯示的事最開始的請求地址
req.getRequestDispatcher("映射地址").forward(req, resp);

(2).重定向 一定要加工程名稱 可以定向站內資源也可以定向站外資源//可以寫到http:www.163.com
在瀏覽器中的地址顯示的事最最終映射到的第二次的地址
resp.sendRedirect("/項目名/映射地址");

7 、什么情況下調用 doGet()和 和 doPost() 扯俱?

Jsp 頁面中的 FORM 標簽里的 method 屬性為 get 時調用 doGet()书蚪,為 post 時調用
doPost()。如果不是表單迅栅,那么都調用doGet()殊校;

8 、Request 對象的主要方法:
setAttribute(String name,Object):設置名字為 name 的 request 的參數值
getAttribute(String name):返回由 name 指定的屬性值
getParameter(String name):獲得客戶端傳送給服務器端的有 name 指定的參數值

10 库继、request.getAttribute() 和 request.getParameter() 有何區(qū)別?

getParameter 得到的都是 String 類型的箩艺。或者是 http://a.jsp?id=123 中的 123宪萄,或者是某個表
單提交過去的數據艺谆。
getAttribute 則可以是對象。
getParameter()是獲取 POST/GET 傳遞的參數值拜英;
getAttribute()是獲取對象容器中的數據值静汤;
getParameter:用于客戶端重定向時,即點擊了鏈接或提交按扭時傳值用居凶,即用于在用表單
或 url 重定向傳值時接收數據用虫给。
getAttribute:用于服務器端重定向時,即在 sevlet 中使用了 forward 函數,或 struts 中使用了
mapping.findForward侠碧。 getAttribute 只能收到程序用 setAttribute 傳過來的值抹估。
getParameter()是獲取 POST/GET 傳遞的參數值;
getAttribute()是獲取 SESSION 的值弄兜;
另外药蜻,可以用 setAttribute,getAttribute 發(fā)送接收對象.而 getParameter 顯然只能傳字符串瓷式。
setAttribute 是應用服務器把這個對象放在該頁面所對應的一塊內存中去,當你的頁面服務器
重定向到另一個頁面時语泽,應用服務器會把這塊內存拷貝另一個頁面所對應的內存中贸典。這樣
getAttribute 就能取得你所設下的值,當然這種方法可以傳對象踱卵。 session 也一樣廊驼,只是對象
在內存中的生命周期不一樣而已。 getParameter 只是應用服務器在分析你送上來的 request
頁面的文本時惋砂,取得你設在表單或 url 重定向時的值妒挎。
getParameter 返回的是 String, 用于讀取提交的表單中的值;
getAttribute 返回的是 Object,需進行轉換,可用 setAttribute 設置成任意對象班利,使用很靈活饥漫,
可隨時用

  1. jsp 有哪些內置對象? 作用分別是什么? 分別有什么方法?
    答:JSP 共有以下 9 個內置的對象:
    request 用戶端請求罗标,此請求會包含來自 GET/POST 請求的參數
    response 網頁傳回用戶端的回應
    pageContext 網頁的屬性是在這里管理
    session 與請求有關的會話期
    application servlet 正在執(zhí)行的內容
    out 用來傳送回應的輸出
    config servlet 的構架部件
    page JSP 網頁本身
    exception 針對錯誤網頁庸队,未捕捉的例外

request 表示 HttpServletRequest 對象。它包含了有關瀏覽器請求的信息闯割,并且提供了幾
個用于獲取 cookie, header, 和 session 數據的有用的方法彻消。
response 表示 HttpServletResponse 對象,并提供了幾個用于設置送回 瀏覽器的響應
的方法(如 cookies,頭信息等)
out 對象是 javax.jsp.JspWriter 的一個實例宙拉,并提供了幾個方法使你能用于向瀏覽器回
送輸出結果宾尚。
pageContext 表示一個 javax.servlet.jsp.PageContext 對象。它是用于方便存取各種范圍
的名字空間谢澈、servlet 相關的對象的 API煌贴,并且包裝了通用的 servlet 相關功能的方法。
session 表示一個請求的 javax.servlet.http.HttpSession 對象锥忿。Session 可以存貯用戶的
狀態(tài)信息
applicaton 表示一個 javax.servle.ServletContext 對象牛郑。這有助于查找有關 servlet 引擎
和 servlet 環(huán)境的信息
config 表示一個 javax.servlet.ServletConfig 對象。該對象用于存取 servlet 實例的初始
化參數敬鬓。
page 表示從該頁面產生的一個 servlet 實例

13 淹朋、JSP 的常用指令
isErrorPage(是否能使用 Exception 對象),isELIgnored(是否忽略表達式)

  1. JSP 中動態(tài) INCLUDE 與靜態(tài) INCLUDE 的區(qū)別钉答?
    答:動態(tài) INCLUDE 用 jsp:include 動作實現
    <jsp:include page=included.jsp flush=true />它總是會檢查所含文件中的變化础芍,適合用于包含動
    態(tài)頁面,并且可以帶參數 靜態(tài) INCLUDE 用 include 偽碼實現,定不會檢查所含文件的變化数尿,
    適用于包含靜態(tài)頁面 <%@ include file=included.htm %>

15 仑性、兩種跳轉方式分別是什么? 有什么區(qū)別?
(下面的回答嚴重錯誤,應該是想問 forward 和 sendRedirect 的區(qū)別右蹦,畢竟出題的人不是專
業(yè)搞文字藝術的人诊杆,可能表達能力并不見得很強鲫懒,用詞不一定精準竖伯,加之其自身的技術面也
可能存在一些問題厚者,不一定真正將他的意思表達清楚了旬渠,嚴格意思上來講,一些題目可能根
本就無人能答宰缤,所以,答題時要掌握主動晃洒,只要把自己知道的表達清楚就夠了慨灭,而不要去推
敲原始題目的具體含義是什么,不要一味想著是在答題)
兩種方式
//1.實現資源跳轉 用forward(arg0, arg1)轉發(fā)資源
// req.getRequestDispatcher("/Selectall").forward(req, resp);
//2.重定向 一定要加工程名稱 可以定向站內資源也可以定向站外資源//可以寫到http://www.163.com
resp.sendRedirect("/NeusoftManagerSystem//manager?q=list");

16 球及、頁面間對象傳遞的方法
request氧骤,session,application吃引,cookie筹陵,page 等

17 、JSP 和 和 Servlet 有哪些相同點和不同點镊尺,他們之間的聯(lián)
系是什么朦佩?
JSP 是 Servlet 技術的擴展,本質上是 Servlet 的簡易方式庐氮,更強調應用的外表表達语稠。
JSP 編譯后是"類 servlet"。Servlet 和 JSP 最主要的不同點在于弄砍,Servlet 的應用邏輯是
在 Java 文件中仙畦,并且完全從表示層中的 HTML 里分離開來。而 JSP 的情況是 Java
和 HTML 可以組合成一個擴展名為.jsp 的文件音婶。JSP 側重于視圖慨畸,Servlet 主要用于
控制邏輯。

18 桃熄、MVC 的各個部分都有那些技術來實現? 如何實現?
答:MVC 是 Model-View-Controller 的簡寫先口。Model 代表的是應用的業(yè)務邏輯(通過
JavaBean,EJB 組件實現)瞳收, View 是應用的表示面(由 JSP 頁面產生)碉京,Controller 是提供
應用的處理過程控制(一般是一個 Servlet),通過這種設計模型把應用邏輯螟深,處理過程和顯
示邏輯分成不同的組件實現谐宙。這些組件可以進行交互和重用


圖片.png

19 、我們在 web 應用開發(fā)過程中經常遇到輸出某種編碼的字符界弧,如 iso8859-1 等凡蜻,如何輸出一個某種編碼的字符串搭综?
Public String translate (String str) {
String tempStr = "";
try {
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
tempStr = tempStr.trim();
}
catch (Exception e) {
System.err.println(e.getMessage());
}
return tempStr;
}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市划栓,隨后出現的幾起案子兑巾,更是在濱河造成了極大的恐慌,老刑警劉巖忠荞,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒋歌,死亡現場離奇詭異,居然都是意外死亡委煤,警方通過查閱死者的電腦和手機堂油,發(fā)現死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碧绞,“玉大人府框,你說我怎么就攤上這事〖チ冢” “怎么了迫靖?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長计维。 經常有香客問我袜香,道長,這世上最難降的妖魔是什么鲫惶? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任蜈首,我火速辦了婚禮,結果婚禮上欠母,老公的妹妹穿的比我還像新娘欢策。我一直安慰自己,他們只是感情好赏淌,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布踩寇。 她就那樣靜靜地躺著,像睡著了一般六水。 火紅的嫁衣襯著肌膚如雪俺孙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天掷贾,我揣著相機與錄音睛榄,去河邊找鬼。 笑死想帅,一個胖子當著我的面吹牛场靴,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼旨剥,長吁一口氣:“原來是場噩夢啊……” “哼咧欣!你這毒婦竟也來了?” 一聲冷哼從身側響起轨帜,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤魄咕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蚌父,有當地人在樹林里發(fā)現了一具尸體蚕礼,經...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年梢什,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朝聋。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗡午,死狀恐怖,靈堂內的尸體忽然破棺而出冀痕,到底是詐尸還是另有隱情荔睹,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布言蛇,位于F島的核電站僻他,受9級特大地震影響,放射性物質發(fā)生泄漏腊尚。R本人自食惡果不足惜吨拗,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婿斥。 院中可真熱鬧劝篷,春花似錦、人聲如沸民宿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽活鹰。三九已至哈恰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間志群,已是汗流浹背着绷。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赖舟,地道東北人蓬戚。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像宾抓,于是被迫代替她去往敵國和親子漩。 傳聞我的和親對象是個殘疾皇子豫喧,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內容

  • 這部分主要是與Java Web和Web Service相關的面試題。 96幢泼、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,405評論 0 10
  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,811評論 0 11
  • 本文包括:1紧显、Listener簡介2、Servlet監(jiān)聽器3缕棵、監(jiān)聽三個域對象創(chuàng)建和銷毀的事件監(jiān)聽器4孵班、監(jiān)聽三個域對...
    廖少少閱讀 6,076評論 6 28
  • 1.Servlet和jsp頁面過濾器Filter的作用及配置 【參考答案】 過濾器是一個駐留在服務器端的Web組件...
    碼記閱讀 458評論 0 0
  • JSP總結(經典) day1 JSP 定義: 1)Java Server Page, Java EE 組件,本...
    java日記閱讀 3,449評論 0 13