因爲java WEB 快考試了,所以今天粗劣的做了一份java web的考點總結:
(試卷是網上找的!自己把試卷翻書做了一遍。)
一、 選擇題
1. 表單中的數據要提交到的處理文件由表單的( A )屬性指定。
A.method B. name C. action D. 以上都不對
2. 要運行JSP程序,下列說法不正確的是( B )
A. 服務器端需要安裝Servlet容器,如Tomcat等。
B. 客戶端需要安裝Servlet容器,如Tomcat等。
C. 服務器端需要安裝JDK。
D. 客戶端需要安裝瀏覽器,如IE等。
3. 當發佈Web應用程序時,通常把Web應用程序的目錄及文件放到Tomcat的( C)目錄下。
A.work B. temp C. webapps D. conf
4. 下面有關HTTP協議的說法不正確的是( D )
A. HTTP協議是Web應用所使用的主要協議
B. HTTP協議是一種超文本傳輸協議(Hypertext Transfer Protocol),是基於請求/響應模式的
C. HTTP是無狀態協議
D. HTTP的請求和響應消息如果沒有發送並傳遞成功的話,HTTP可以保存已傳遞的信息
5. 下面有關Servlet的描述錯誤的是(C )。
A. 一個Servlet就是Java中的一個類
B. Servlet是位於Web 服務器內部的服務器端的Java應用程序
C. Servlet可以由客戶端的瀏覽器解釋執行
D. 加載Servlet的Web服務器必須包含支持Servlet的Java虛擬機
6. 下面不屬於JSP指令的是:( B )
A. include B. import C. page D. taglib
7. ( B )動作用於轉向另一個頁面。
A. next B. forward C. include D. param
8. 在項目中已經建立了一個JavaBean,該類爲:bean.Student,該bean具有name屬性,則下面標籤用法正確的是:( C )
A.<jsp:useBean id="student" class="Student" scope="session">
</jsp:useBean>
B.<jsp:useBean id="student" class="Student" scope="session">
</jsp:useBean>
C.<jsp:useBean id="student" class="bean.Student" scope="session">
</jsp:useBean>
D.<jsp:getProperty name="name" property="student"/>
9. 下列選項中,( B)可以準確地獲取請求頁面的一個文本框的輸入(文本框的名稱爲name)。
A. request.getParameter(name)
B. request.getParameter(”name”)
C. request.getParameterValues(name)
D. request.getParameterValues(“name”)
10. 使用response對象進行重定向時,使用的方法是( C )。
A. getAttribute B. setContentType
C. sendRedirect D. setAttribute
11. session對象中用於設定指定名字的屬性值,並且把它存儲在session對象中的方法是( A )。
A. setAttribute B. getAttributeNames
C. getValue D. getAttribute
12. 在application對象中用(B )方法可以獲得application對象中的所有變量名。
A. getServerInfo B. nextElements()
C. removeAttribute D. getRealPath
13. 有關struts 2的說法不正確的是( B )
A. Struts是一個用於簡化MVC框架(Framework)開發的Web應用框架
B. 應用Struts 2不需要進行配置
C. Struts 2 含有豐富的標籤
D. Struts2採用了WebWork的核心技術
14. Web應用的數據共享方式不包括( C )。
A.基於請求的共享 B.基於會話的共享
C.基於頁面的共享 D.基於應用的共享
15. 要在頁面上輸出2+3=${2+3},則對應的程序代碼應爲(A )。
A. 2+3=\${2+3}
B. 2+3=${2+3}
C. 2+3=/${2+3}
D. 以上都不對
16. 下面有關EL中“.“和“[ ]“兩種存取運算符的說法不正確的是( C )
A. 兩者在某些情況下是等效的
B. “[ ]“運算符主要用來訪問數組、列表或其他集合
C. 如果要動態取值時,兩者都可以實現
D. 當要存取的屬性名稱中包含一些特殊字符,如.或?等並非字母或數字的符號,就一定要使用“[ ]“
17. 要使用JSTL的核心標籤庫,需要在JSP源文件的首部加入如下聲明語句( A )
A. <%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core" %>
B. <%@ taglib prefix=”x”
uri=”http://java.sun.com/jsp/jstl/xml”%>
C. <%@ taglib prefix=”fmt”
uri=”http://java.sun.com/jsp/jstl/fmt”%>
D. <%@ taglib prefix=”sql”
uri=”http://java.sun.com/jsp/jstl/sql”%>
18. 以下( B)標籤用於實現循環功能,類似與Java語句中的for循環。
A. <c:set> B. <c:forEach>
B. <c:Tokens> D. <c:import>
19. 以下URL中語法不正確的是( D )
A.http://www.bta.net.cn:80/software/home.html
B.telnet://bdysseu.bbb.com:70
C.ftp://ftp.btbu.edu.cn
D.www0.btbu.edu.cn
20. page指令用於定義JSP文件中的全局屬性,下列關於該指令用法的描述不正確的是:( D )
A. <%@ page %>作用於整個JSP頁面。
B. 可以在一個頁面中使用多個<%@ page %>指令。
C. 爲增強程序的可讀性,建議將<%@ page %>指令放在JSP文件的開頭,但不是必須的。
D. <%@ page %>指令中的屬性只能出現一次。
第二題:填空。
1. 在編寫Servlet時,需要繼承 HttpServlet 類,在Servlet中聲明doGet()和doPost()需要 HttpServletRequest 和 HttpServletResponse 類型的兩個參數。
2. jsp主要內置對象有: application 、exception、 pageContext、cookie request 、 response 、____session_ __、out、config、page。
3. 使用useBean動作標記的時候scope屬性有4種選項,作用範圍由小到大是______page___、___request______、___session______、_____application____,其中____session_____是指當關閉瀏覽器的時候這個javabean失效, ____ _application____是指當關閉服務器的時候這個javabean失效。
4. 三種常用的動態網頁技術是_____asp____、____jsp_____、___php______,簡稱3P技術。
5. JSP利用JDBC操作數據庫的步驟:(1)加載驅動程序,調用____forName()_______將自動加載驅動程序類;(2)建立連接,若連接字符串爲:
String url = "jdbc:mysql://localhost/" + dbName +"?user=" +userName
+"&password=" +userPwd,其中dbName、userName和userPwd 3個分別代表 數據庫名 、數據庫的 用戶名 和 密碼 ,(3)建立StateMent;(4) 、執行sql語句,其中,查詢數據庫裏的表內容是Statement接口使用__ _execute_________方法;(5)關閉數據庫。
三簡答題。
1. Tomcat服務器的默認端口是多少?怎樣修改tomcat的端口
答:Tomcat服務器的默認端口是8080;在tomcat下的\conf\server.xml中的Connector元素裏的<Connector port=”8080”.....>把8080改成你想要的端口即可。
2.什麼是cookie? cookie有什麼作用?。
答:Cookie 是一小段文本信息,伴隨着用戶請求和頁面在 Web 服務器和瀏覽器之間傳遞。用戶每次訪問站點時,Web 應用程序都可以讀取 Cookie 包含的信息。
Cookie 爲 Web 應用程序保存用戶相關信息提供了一種有用的方法。例如,當用戶訪問您的站點時,您可以利用 Cookie 保存用戶首選項或其他信息,這樣,當用戶下次再訪問您的站點時,應用程序就可以檢索以前保存的信息。
3. 簡述JSP中動態include與靜態include的區別?
答:動態INCLUDE用jsp:include動作實現,<jsp:include page="included.jsp" flush="true" /> 它總是會檢查所含文件中的變化,適合用於包含動態頁面,並且可以帶參數;
靜態INCLUDE用include僞碼實現。定不會檢查所含文件的變化,適用於包含靜態頁面。
<% @ include file="included.htm" %>
4. 簡述表單中POST和GET的區別。
答:
GET方法
資源類型 :主動的或被動的
數據類型 :文本
數據量 :最多255個字符。儘管HTTP協議並沒有限制查詢串的長度,某些瀏覽器和web服務器可能不能處理超過255個字符的數據。
可見性 :數據是URL的一部分,在瀏覽器的URL地址欄中用戶可見。
緩存 :數據可以在瀏覽器的URL歷史中緩存。
POST方法
目標資源類型 :主動的
數據類型 :文本或二進制數據
數據量 :沒有限制 。
可見性 :數據不是URL的一部分而是作爲請求的消息體發送,因此在瀏覽器的URL地址欄中對用戶不可見。 。
緩存 :數據不能在瀏覽器的URL歷史中緩存。
5、MVC中的M、V、C各指的是什麼?請述其各自的作用。
答:M:Model(模型),在j2ee開發中扮演數據封裝相關的角色(像javabean);
V:View(視圖),在j2ee開發中扮演數據顯示相關的角色(像jsp,html文件);
C:Controller(控制器),在j2ee開發中扮演數據控制相關的角色(像Servlet、Action等)。
6、列舉JSP的主要優點。
答:提高代碼的可複用性、將HTML代碼進行分離、程序利於開發維護。
7、簡稱JSP的執行過程。
答:首先,由客戶端瀏覽器向Web服務器提出訪問JSP頁面的請求(Request),然後
由JSP引擎負責將JSP轉換成Servlet,產生的servlet經過編譯後生成類文件,然後再把類文件加載到內存執行。最後,由Web服務器將執行結果即(Response)給客戶端瀏覽器。
8、JSP的動作標籤有哪幾個?
答:1、jsp:incclude 在當前頁面中包含另一個頁面的輸出;
2、jsp:forward 將請求轉發到指定的頁面;
3、jsp:useBean 查找或創建一個javaBeans對象;
4、jsp:setProperty 設置javaBeans對象的屬性值;
5、jsp:getProperty 返回javaBeans對象的屬性值;
6、jsp:plugin 在JSP頁面中嵌入一個插件。
9、<jsp:forward>與response.sendRedirect()實現頁面轉向有什麼區別?
答:<jsp:forword>轉向只在服務器端進行,不顯示地址。
response.sendRedirect()重新發送請求,會顯示地址。
10、簡述Servlet的生命週期?
答:servlet有良好的生存期定義,包括加載和實例化、初始化、處理請求以及服務結束。
Web容器加載servlet,生命週期開始,通過調用servlet的init()方法進行servlet的初始化
。通過調用service()方法實現,根據請求的不調用不同doXX()方法。結束服務,web容器調用servlet的destroy()方法。
11、較JSP而言,Servlet有什麼優點,有什麼缺點?
答:優點是響應客戶端的請求,根據請求動態響應,最大的優點做爲一個服務,控制程序的流向,過濾等。mvc中,控制就是servlet。
缺點:Servlet在表示邏輯上對於視圖的表示相對於JSP麻煩太多,在負責顯示工作完成並生成頁面上,JSP更優。
12、簡述採用JDBC訪問數據庫的步驟。
答:1、加載對應數據庫驅動,一般用反射Class.forName(String driverName);
2、創建連接通過DriverManager.getConnection(url,userName,passwd);
3、獲取statement對象,通過statement對象執行sql語句;
4、如果是查詢則返回結果集,貯存於ResultSet;
5、如果關閉事物自動提交要提交事物;
6、最後,關閉所有連接,自裏往外關閉。
四、編程題
第一題:
第一個Servlet1文件,讀取一個請求參數test(字符串),存放在請求範圍內,然後把請求轉發給
第二個Servlet2.。第二個Servlet2文件(url爲output),向客戶輸出Servlet1的結果。根據註釋補充下列代碼。(15分)
public class Servlet1 extends HttpServlet {
public void service(ServletRequest request,ServletResponse response)
throws ServletException, IOException {
response.setContentType=(“text/html;charset=gbk”);
PrintWriter out=response.getWriter();
//讀取請求參數
__String test=request.getParameter("test");______ ;(3分)
//在request對象中添加 test屬性
__request.setAttribute("test", test);___(3分)
/*把請求轉發給Servlet2 */
RequestDispatcher dispatcher =
request.getRequestDispatcher("/output");_____
__dispatcher.forward(request, response);__ (4分)
}
}
public class Servlet2 extends HttpServlet {
public void service(ServletRequest request,ServletResponse response)
throws ServletException, IOException {
response.setContentType=(“text/html;charset=gbk”);
PrintWriter out=response.getWriter();
//讀取請求範圍內Servlet1的test
__String temp=request.getParameter("test");____(3分)
//向客戶端輸出test
__out.println("<h1>"+temp+"</h1>");____(2分)
}
}
2、第二題:
1、編寫一個簡單的JavaBean,通過EL的存取運算符訪問其屬性。
答案:文件userLogin.java定義了一個用戶Bean,包含姓名、密碼和電子郵件3個屬性,其代碼如下:
package bean;
public class userLogin {
private String userName;
private String (1)password ;
private String email;
public userLogin() {
userName = "李平";
password = "123";
email = "[email protected]";
}
public void setuserName(String userName) {
this.userName = userName;
}
public String getuserName() {
return this.userName;
}
public void setpassword(String password) {
this.password = password;
}
public String getpassword() {
return this.password;
}
public void setemail(String email) {
this.email = email;
}
public String getemail() {
return this.email;
}
}
文件accessBean.jsp使用EL的存取運算符獲取JavaBean的屬性,其代碼如下:
<%@ page contentType="text/html; charset=gb2312"%>
(2)<%@ page import ="bean.userLogin" %>
<jsp:useBean id="user" class="bean.userLogin" scope="session">
</jsp:useBean>
<html>
<head>
<title>使用存取運算符訪問JavaBean的屬性</title>
</head>
<body>
<!--通過EL存取運算符訪問JavaBean的屬性-->
用戶名:(3) ${user.username}
<br>
密碼:(4)${user.password}
<br>
電子郵箱:(5) ${user.email}
<br>
</body>
</html>