java面試題,java筆試題50道及答案



1、在Java EE中,Servlet是在服務(wù)器端運(yùn)行,以處理客戶端請求而做出的響應(yīng)的程序,下列選項(xiàng)中屬于Servlet生命周期階段的是( )

A、加載和實(shí)例化

B、初始化

C、服務(wù)

D、銷毀

E、以上全部

答案:E 

2、在Java EE中的MVC設(shè)計模式中,( )負(fù)責(zé)接受客戶端的請求數(shù)據(jù)

A、JavaBean

B、JSP

C、Servlet

D、HTML

答案:C

3、過濾器應(yīng)實(shí)現(xiàn)的接口是( )。

A、HttpServlet          

B、HttpFilter         

C、ServletFilter        

D、Filter

答案:D 

4、開發(fā)Java Web應(yīng)用程序的時候,創(chuàng)建一個Servlet,該Servlet重寫了父類的doGet()和doPost()方法,那么其父類可能是( )

A、RequestDispatcher

B、HttpServletResponse

C、HttpServletRequest

D、HttpServlet

答案:D 

5、在Java Web開發(fā)中,如果某個數(shù)據(jù)需要跨多個請求存在,則數(shù)據(jù)應(yīng)該存儲在( )中

A、session

B、page

C、request

D、Response

答案:A

6、在開發(fā)Java Web應(yīng)用程序的時候,HTTP請求消息使用Get或POET方法以便在WEB上傳輸數(shù)據(jù),下列關(guān)于GET和POST 方法描述正確的是( )

A、POST請求的數(shù)據(jù)在地址欄不可見

B、GET請求提交的數(shù)據(jù)在理論上沒有長度限制

C、POST請求對發(fā)送的數(shù)據(jù)的長度限制在240——255個字符

D、GET請求提交數(shù)據(jù)更加安全

答案:A 

7、在JSP中有EL表達(dá)式${10*10 ne 10},結(jié)果是( )

A、100

B、true

C、fasle

D、以上都不對

答案:B 

8、JSTL標(biāo)簽的分類以下說法正確的是( )

A、通用標(biāo)簽與迭代標(biāo)簽        

B、核心標(biāo)簽與迭代標(biāo)簽            

C、核心標(biāo)簽與sql標(biāo)簽        

D、以上都不是

答案:C 

9、在Java Servlet API中,HttpServletRequest接口的( )方法用于返回當(dāng)前請求相關(guān)聯(lián)的會話,如果沒有,返回null

A、getSession() //=gerSession(true)默認(rèn)為:getSession(true)

B、getSession(true)

C、getSession(false)

D、getSession(null)

答案:C 

10、在Java Web開發(fā)中,不同的客戶端需要共享數(shù)據(jù),則數(shù)據(jù)應(yīng)該存儲在( )中

A、session

B、application

C、request

D、response

答案:B

11、利用三層結(jié)構(gòu)搭建某網(wǎng)上書店系統(tǒng),設(shè)計用戶登陸界面,如果你是設(shè)計人員,你將在三層結(jié)構(gòu)的( )中實(shí)現(xiàn)

A、模型層

B、表示層

C、數(shù)據(jù)訪問層

D、業(yè)務(wù)邏輯層

答案:B 

12、在Java EE中,( )接口定義了getSession()方法

A、httpServlet

B、HttpSession

C、HttpServletRequest

D、HttpServletResponse

答案:C 

13、JSP標(biāo)準(zhǔn)標(biāo)簽庫(JSTL)提供的主要標(biāo)簽庫中,其中( )可用于操作數(shù)據(jù)庫。

A、核心標(biāo)簽庫        

B、I18N與格式化標(biāo)簽庫    

C、XML標(biāo)簽庫        

D、SQL標(biāo)簽庫

答案:D 

14、JSP表達(dá)式語言可用于在網(wǎng)頁上生成動態(tài)的內(nèi)容并代替JSP元素,JSP表達(dá)式語言的語法是( )

A、{EL expresion}

B、${EL expresion}

C、@{EL expresion}

D、#{EL expresion}

答案:B 

15、在J2EE的體系結(jié)構(gòu)中,系統(tǒng)的業(yè)務(wù)和功能代碼組成了三層結(jié)構(gòu)中的( )層

A、表示層

B、中間層

C、數(shù)據(jù)層

D、客戶端層

答案:B

16、在JSTL的達(dá)代標(biāo)簽<forEach>的屬性中,用于指定要遍歷的對象集合( )

A、var

B、items            

C、value    

D、varStatus

答案:B 

17、如果不希望JSP網(wǎng)頁支持Session,應(yīng)該( )。

A、調(diào)用HttpSession的invalidate()方法

B、<%@ page session= “false”>

C、在jsp頁面中寫入如下代碼HttpSession session=request.getSession(false);

D、調(diào)用HttpSession的setMaxInactiveInterval(),將時間設(shè)置為0

答案:B 

18、Servlet是一個在服務(wù)器上運(yùn)行、處理請求信息并將其發(fā)送到客戶端的Java程序()接受服務(wù)請求、找到Servlet類、加載Servlet類并創(chuàng)建Servlet對象。

A、客戶端

B、IE瀏覽器

C、Servlet容器

D、Servlet本身

答案:C 

19、MVC設(shè)計模式包含模型層、視圖層和控制層,在下列組件扮演控制器角色的是( )    

A、Servlet

B、JSP

C、javaBean

D、HTML

答案:A 

20、JSP標(biāo)準(zhǔn)標(biāo)簽庫(JSTL)的標(biāo)簽庫描述符文件的后綴是( )

A、.tld

B、.jar

C、.properties

D、.xml

答案:A

21、在J2EE中,以下不是JSP隱式對象的是( )

A、pageContext            

B、context            

C、application            

D、out

答案:B 

22、在Java Web應(yīng)用程序中,給定servlet A的代碼片段如下所示:        

    Public void doPost(HttpServletRequest request,HttpServletResponse response)

        throws ServletException,IOException{

        String id=”kingdom”;

        _________________

}    

Servlet B與servlet A同在一個有效的會話范圍內(nèi),當(dāng)把請求轉(zhuǎn)發(fā)給servlet B后,要

使B能夠獲得”kingdom”值,下劃線處應(yīng)填入( )

A、request.getSession().setAttribute(“ID”,id);

B、request.getSession().getAttribute(“ID”,id);

C、request.getSession().setParameter(“ID”,id);

D、request.getSession().getParameter(“ID”,id);

答案:A 

23、在Java Web應(yīng)用程序中,包含兩個名為Servlet1和Servlet2的HttpServlet,在web.xml中指定Servlet2的訪問路徑為”/servlet2″,Servlet1的doGet方法中的代碼為:

PrintWriter out=response.getWriter();

out.print(“Servlet1″);

RequestDispatcher dispatcher=request.getRequestDispatcher(“/servlet2″);

dispatcher.forword(request,response);

out.close();

Servlet2的doGet方法中的代碼為:

PrintWriter out=response.getWriter();

out.print(“Servlet2″);

out.close();

如果用戶在瀏覽器中訪問Servlet1,則瀏覽器將( )                    

A、顯示”Servlet1″

B、顯示”Servlet2″

C、顯示”Servlet1Servlet2″

D、什么也不顯示

答案:B 

24、在Java Web應(yīng)用程序中,使用數(shù)據(jù)源與JNDI獲得數(shù)據(jù)庫連接時,應(yīng)把JDBC驅(qū)動程序jar文件放在( )下:                                                

A、應(yīng)用程序的src目錄

B、應(yīng)用程序的/WEB-INF/lib目錄

C、Tomcat的根目錄

D、Tomcat的common/lib目錄

答案:D 

25、在Java Web 應(yīng)用中,下面關(guān)于HttpSession的說法正確的是( )(選擇二項(xiàng))

A、Servlet容器負(fù)責(zé)創(chuàng)建HttpSession對象

B、每個HttpSession對象都有唯一的ID

C、客戶端瀏覽器負(fù)責(zé)為HttpSession分配唯一的ID

D、HttpSession 對象的ID值,由程序員進(jìn)行分配

答案:AB

26、在HTTP協(xié)議中,請求消息使用( )方法用于通過Internet發(fā)送大量數(shù)據(jù),沒有長度的限制。    

A、get

B、post

C、put

D、head

答案:B 

27、在Java Web應(yīng)用程序中,JSP EL 表達(dá)式可用于訪問( )中存儲的數(shù)據(jù)

A、Web.xml

B、Servlet

C、Applet

D、JavaBean

答案:D 

29、在JSP中,使用<jsp:useBean>動作可以將javaBean嵌入JSP頁面,對JavaBean的訪問范圍不能是( )。    

A、page                

B、request            

C、response            

D、application

答案:C 

30、在Java Web應(yīng)用程序中,包含jsp1.jsp和jsp2.jsp,以及封裝在user包下的名為User的Javabean,user中包含loginName屬性以及相應(yīng)的setter和getter方法,如果用戶A在瀏覽器中訪問jsp1.jsp后,用戶B在瀏覽器中訪問jsp2.jsp,則用戶B的瀏覽器將( )

Jsp1.jsp代碼:

<html>

<jsp:useBean id=”user” class=”user.User” scope=”session”/>

<jsp:setProperty name=”user” property=”loginName” value=”Mart”/>

</html>

Jsp2.jsp代碼:

<html>

<jsp:useBean id=”user” class=”user.User” scope=”session”/>

<jsp:getProperty name=”user” property=”loginName”/>

</html>

A、什么也不顯示

B、顯示”null”

C、顯示”Mart”

D、報錯,提示無法顯示網(wǎng)頁

答案:A

31、在servlet的服務(wù)方法(如doPost() )中,如何從請求獲得”userID”值 ( )

A、String userID = request.getParameter(“userID”);

B、String userID = request.getHeader(“userID”);

C、String userID = request.getRequestHeader(“userID”);

D、String userID = getServletContext().getInitParameter(“userID”);

答案:A 

32、HttpServletResponse的哪些方法用于將一個HTTP請求重定向到另一個URL( )

A、sednURL()

B、redirectURL()

C、redirectHttp()

D、sendRedirect()

E、getRequestDispatcher()

答案:D 

33、以下哪個代碼段會得到一個輸出流,用于向HttpServletResponse輸出字符文本 ( )

A、java.io.PrintWriter out = response.getWriter();

B、ServletOutputStream out = response.getOutputStream(); //輸出為字節(jié)文本

C、java.io.PrintWriter out = new PrintWriter(response.getReader());

D、Servlet OutputStream out = response.getBinaryStream();

答案:A 

34、servlet開發(fā)人員在擴(kuò)展HttpServlet時如何處理HttpServlet的service()方法( )(選擇二項(xiàng))

A、大多數(shù)情況下都應(yīng)該覆蓋service()方法

B、應(yīng)當(dāng)從doGet()或doPost()調(diào)用service()方法

C、應(yīng)當(dāng)從init()調(diào)用service()方法

D、應(yīng)當(dāng)至少覆蓋一個doXXX( )方法(如doPost())

答案:AD 

35、關(guān)于會話屬性,以下哪些說法是正確( )(選擇兩項(xiàng))

A、HttpSession.getAttribute(String)的返回類型是Object

B、HttpSession.getAttribute(String)的返回類型是String

C、在HttpSession上調(diào)用setAttribute(“keyA”, “valueB”)時,如果這個會話中對應(yīng)鍵keyA已經(jīng)有了一個值,就會導(dǎo)致拋出一個異常

D、在HttpSession上調(diào)用setAttribute(“keyA”, “valueB”)時,如果這個會話中對應(yīng)鍵keyA已經(jīng)有一個值,則會導(dǎo)致這個屬性原先的值被String valueB替換

答案:AD

36、給定req是一個HttpServletRequest,哪個代碼會在不存在會話的情況下創(chuàng)建一個會話( ) (選擇兩項(xiàng))

A、req.getSession()

B、req.getSession(true)

C、req.getSession(false)

D、req.createSession()

E、req.getNewSession()

F、req.createSession(true)

G、req.createSession(false)

答案:AB 

38、給定TheBean類,假設(shè)還沒有創(chuàng)建TheBean類的實(shí)例,以下哪些JSP標(biāo)準(zhǔn)動作語句能創(chuàng)建這個bean的一個新實(shí)例,并把它存儲在請求作用域 ( )

A、<jsp :useBean name=”myBean” type=”com.example.TheBean”/>

B、<jsp :takeBean name=”myBean” type=”com.example.TheBean”/>

C、<jsp :useBean id=”myBean” class=”com.example.TheBean” scope=”request”/>

D、<jsp :takeBean id=”myBean” class=”com.example.TheBean” scope=”request”/>

答案:C 

39、給定一個Model1體系結(jié)構(gòu),其中有一個JSP頁面處理所有控制器函數(shù),這個JSP控制器要把請求分派給另一個JSP頁面 ( )

A、<jsp:forward page=”view.jsp”/>

B、<jsp:forward file=”view.jsp”/>

C、<jsp:dispatch page=”view.jsp”/>

D、<jsp:dispatch file=”view.jsp”/>

答案:A 

40、有關(guān)<jsp:useBean>標(biāo)準(zhǔn)動作,以下哪些說法是正確的 ( ) (選擇兩項(xiàng))

A、id屬性表示對象的名稱

B、scope屬性是必要的 //是比不可少的,雖說可省略不寫,但默認(rèn)仍存在

C、scope屬性是可選的,默認(rèn)為page

D、class屬性是可選的 //class 屬性與 type屬性一樣,二者(必須)任選一

答案:CD 

41、在JSP頁面上使用JSTL標(biāo)簽時,應(yīng)使用taglib指令導(dǎo)入標(biāo)簽庫描述文件,并設(shè)置taglib指令的( )屬性指定標(biāo)簽的前綴。

A、prefix 

B、name 

C、tag 

D、uri

答案:A 

42、JavaBean是在Java中開發(fā)的可以跨平臺的重用組件,JavaBean必須滿足的要求中不包括( )

A、是一個共有類

B、實(shí)現(xiàn)java.io.Serializable接口

C、具有不帶任何參數(shù)的共有構(gòu)造函數(shù)

D、具有訪問屬性的共有的getter和setter方法

答案:C 

43、在JSP頁面中使用<c:froEach>標(biāo)簽,對session中集合對象arr進(jìn)行迭代時,items屬性賦值正確的是( )。

A、<c:forEach var=”bean” items=”session.arr”/>

B、<c:forEach var=”bean” items=”${session.arr}”/>

C、<c:forEach var=”bean” items=”sessionScope.arr”/>

D、<c:forEach var=”bean” items=”${sessionScope.arr}”/>

答案:D 

44、下列選項(xiàng)中不屬于JSP標(biāo)準(zhǔn)動作的是( )

A、<jsp:forward/>

B、<c:out/> //這個是屬于標(biāo)簽

C、<jsp:useBean/>

D、<jsp:setProperty/>    

答案:B 

45、在JavaEE中,初始化Servlet實(shí)例的時候,init()方法是由( )執(zhí)行    

A、程序員編寫代碼來調(diào)用執(zhí)行

B、每次執(zhí)行當(dāng)前的Servlet時,由系統(tǒng)自動執(zhí)行

C、當(dāng)?shù)谝淮螆?zhí)行當(dāng)前的Servlet時,由系統(tǒng)自動執(zhí)行

D、以上說法都不對

答案:C

46、在Java Web應(yīng)用程序中,要完成將用戶會話中的”counter”計數(shù)器的值增加1,下列( )是正確的Servlet代碼片段。

A、HttpSession session=request.getSession(true);

    int ival=session.getAttribute(“counter”);

    if(ival==null){

        ival=1;    

    }else{

        Ival=ival+1;

        session.setAttribute(“counter”,ival);

    }

B、HttpSession session=request.getSession(true);

   Integer ival=(Integer)session.getAttribute(“counter”);

   session.setAttribute(“counter”,ival+1);

C、HttpSession session =request.getAttribute(“counter”);

   if(ival==null){

       ival=new Integer(1);

   }else{

       ival=new Integer(ival.intValue()+1);

   }

   session.setAttribute(“counter”,ival);

D、HttpSession session=request.getSession();

Integer ival=(Integer)session.getAttribute(“counter”);

If(ival==null){

            ival=1;

}else{

            ival=ival+1;

}

session.setAttribute(“counter”,new Integer(ival));

答案:D 

47、在JSP頁面中,( )可以取得名為boxes的復(fù)選框第一個值。(選兩項(xiàng))

A、${param.boxes}

B、${paramValues.boxes}

C、${paramValues.boxes[0]}

D、${paramValue.boxes[1]}

答案:AC 

48、下面這一段JSP代碼片斷的輸出結(jié)果是( )。

<%! int i=1;%> //<%! Int i=1;%>代表聲明的是全局變量或方法

<%!int getNumber(){ //<% int i=1;%> 代表聲明的是局部變量或方法

return i;

}

%>

<% int i=10;

out.println(“first i=”+i);

%>

<% out.println(“second i=”+i); %>

<% out.println(“third i=”+getNumber()) ; %>

A、first 1=10 second i=1 third i=1

B、first i=10 second i=10 third i=1

C、first 1=10 second i=1 third i=10

D、first 1=1 second i=1 third i=1

答案:B 

49、在J2EE中,test.jsp文件如下。試圖運(yùn)行時,將發(fā)生( )。

<html>

<% String str=null ;%>

str is <% =”str”%>

</html>

A、轉(zhuǎn)譯期錯誤                            

B、編譯期錯誤

C、運(yùn)行后,瀏覽器上顯示:str is null    

D、運(yùn)行后,瀏覽器上顯示:str is str

答案:D 

50、對于以下代碼,說法正確的是( )。

session.setAttribute(“count”,new Integer(0));

Integer count = session.getAttribute(“count”);

A、不能通過編譯                                 

B、能通過編譯,并且能正常運(yùn)行

C、編譯通過,但運(yùn)行時拋出ClassCastException            

D、以上說法都不正確

答案:A

北大青鳥網(wǎng)上報名
北大青鳥招生簡章