一、 填空題
- Servlet中使用Session對象的步驟為:調用 HttpServletRequest.getSession() 得到Session對象,查看Session對象,在會話中保存數據
- http全稱是___HyperText Transfer Protocol_____
- 用戶可以有多種方式請求Servlet,如 瀏覽器直接調用,頁面form中提交調用 、 超鏈接調用 、 Servlet調用 等。
- out對象的 _out.flush()_方法,功能是輸出緩沖的內容。
- response對象的_ sendRedirect(URL url)__方法可以將當前客戶端的請求轉到其他頁面去。表單的提交方法包括__get__和___post__方法。
- response.setHeader(“Refresh”, “5”)的含義是指 頁面刷新時間為 5秒 _。
- 表單標記中的__action___屬性用於指定處理表單數據程序url的地址。
- 使用cookie的基本步驟為:創建cookie對象,設置cookie對象的有效時間 ,傳送cookie對象 , 讀取cookie對象 。
- Servlet中使用Session對象的步驟為: 調用 HttpServletRequest.getSession() 得到Session對象,查看Session對象,在會話中保存數據。
- 在Servlet中,主要使用HttpServletResponse類的重定向方法 sendRedirect() 方法實現重定向,以及使用RequestDispatcher類的轉發方法 forward() 方法實現轉發功能。
- javax.servlet.Servlet接口定義了三個用於Servlet生命周期的方法,它們是 init() 、service() 、 destroy()
- Servlet中使用Session對象的步驟為: 調用 HttpServletRequest.getSession() 得到Session對象,查看Session對象,在會話中保存數據。
- Servlet運行於 服務器 端,與處於客戶端的___ Applet ___相對應。
- 當Server關閉時,_ Servlet __就被銷毀。
- 使用Servlet處理表單提交時,兩個最重要的方法是_ doGet() _和_doPost() 。
- Serlvet接口只定義了一個服務方法就是_ service() _。
- MVC是三層開發結構,這三個字母按順序分別代表_ model__、__view 、__controller __。
- Filter接口中最主要的方法是 doFilter 方法。
- 實現Filter接口的類需要重寫doFilter方法、init方法、destroy方法。
- ServletContext 被創建時的監聽類需要實現 ServletContextListener接口。
- 配置事件監聽類的配置文件是 <listener><listener-class>監聽類路徑</listenr-class></listener>______
- url-pattern配置方式都有那些:_____ /s、/*、*.do
- "/"的問題。在瀏覽器發請求時它代表什么含義__代表服務器根目錄__,_服務器內部跳轉時代表什么含義___代表項目根目錄_____
- 下面代碼有什么問題,請指出:resp.setContentType("text/html,charset=gbk");
_______中間應該是;而不是,_____
二、 選擇題
1. |
對於B/S架構的工作流程,以下說法正確的是( A )(選擇一項) |
|
|
|
|
|
A. |
瀏覽器接受用戶的輸入-->瀏覽器向服務器端發送請求-->服務器端數據處理-->響應數據至客戶端 |
|
B. |
發送響應-->瀏覽器接受用戶的輸入-->瀏覽器向服務器端發送請求-->服務器端數據處理 |
|
C. |
發送響應-->瀏覽器接受用戶的輸入-->服務器端數據處理-->瀏覽器向服務器端發送請求 |
|
D. |
瀏覽器接受用戶的輸入-->發送響應-->服務器端數據處理-->瀏覽器向服務器端發送請求 |
2. |
關於動態網頁的特點,以下說法正確的是( D )(選擇一項) |
|
|
|
|
|
A. |
交互性 |
|
B. |
自動更新 |
|
C. |
隨機性 |
|
D. |
以上說法均正確 |
3. |
如果做動態網站開發,以下( A )可以作為服務器端腳本語言(選擇一項) |
|
|
|
|
|
A. |
Java |
|
B. |
Jsp |
|
C. |
Javascript |
|
D. |
Html |
4. |
關於Tomcat服務器的說法中正確的是( AC )(選擇二項) |
|
|
|
|
|
A. |
tomcat出自於apache,可以為web應用程序提供運行環境 |
|
B. |
使用tomcat需要支付費用,否則不允許授權使用 |
|
C. |
tomcat是一款開源服務器,性能優良 |
|
D. |
以上全正確 |
5. |
在WEB項目的目錄結構中,web.xml文件位於( C )中(選擇一項) |
|
|
|
|
|
A. |
Src |
|
B. |
META-INF |
|
C. |
WEB-INF |
|
D. |
WebRoot |
6. |
在Servlet生命周期中,對應服務階段的方法是( C )(選擇一項) |
|
|
|
|
|
A. |
init() |
|
B. |
destroy() |
|
C. |
service() |
|
D. |
initial() |
7. |
在web編程中,對於cookie的作用說法正確的有( A )(選擇一項) |
|
|
|
|
|
A. |
為了識別不同的用戶信息 |
|
B. |
為了簡化程序開發 |
|
C. |
為了提高程序執行速度 |
|
D. |
以上說法都不對 |
8. |
對於ServletRequest接口的getAttribute()方法,說法正確的是( A )(選擇一項) |
|
|
|
|
|
A. |
獲取指定名稱的屬性值 |
|
B. |
設置指定屬性的值 |
|
C. |
刪除指定屬性的值 |
|
D. |
以上都不對 |
9. |
<servlet> <servlet-name>testServlet</servlet-name> <servlet-class>com.accp.servlet.TestServlet</servlet-class> </servlet> 對於以上代碼片段,說法正確的是( AB )(選擇二項) |
|
|
|
|
|
A. |
配置了邏輯名為testServlet的Servlet組件 |
|
B. |
其對於的類的路徑是:com.accp.servlet.TestServlet |
|
C. |
客戶端可以通過testServlet訪問 |
|
D. |
以上說法都不對 |
10. |
在java Web應用開發中,Servlet程序需要在( B )文件中配置。(選擇一項) |
|
|
|
|
|
A. |
Jsp |
|
B. |
web.xml |
|
C. |
struts.xml |
|
D. |
servlet.xml |
11. |
在Java EE中,HttpServletResponse的( B )方法用於一個HTTP請求重定向到另一個資源。(選擇一項) |
|
|
|
|
|
A. |
sendURL() |
|
B. |
sendRedirect() |
|
C. |
forward() |
|
D. |
redirectURL() |
12. |
以下哪種格式是正確的URL( A )(選擇一項) |
|
|
|
|
|
A. |
http://localhost:8080/news/index.jsp> |
|
B. |
http://localhost/8080/news/index.jsp> |
|
C. |
http://localhost/8080:news/index.jsp> |
|
D. |
http:localhost://8080/news/index.jsp |
13. |
以下代碼中可以正確設置客戶端請求編碼為UTF-8 的是( A )(選擇一項) |
|
|
|
|
|
A. |
request.setCharacterEncoding("UTF-8") |
|
B. |
request.setCharset("UTF-8") |
|
C. |
request.setContentType("UTF-8") |
|
D. |
request.setEncoding("UTF-8") |
14. |
通過response的( A )方法可以設置響應所采用的字符編碼類型。(選擇一項) |
|
|
|
|
|
A. |
setCharacterEncoding() |
|
B. |
setCharset() |
|
C. |
setEncoding() |
|
D. |
setContentType() |
15. |
在部署帶有Servlet的Java Web程序時,( D )不是必需的。(選擇一項) |
|
|
|
|
|
A. |
web.xml文件 |
|
B. |
WEB-INF文件夾 |
|
C. |
classes文件夾 |
|
D. |
csses文件夾 |
16. |
對於servlet在程序中的作用,以下說法正確的是( AB )(選擇二項) |
|
|
|
|
|
A. |
分離業務邏輯代碼與表現層代碼 |
|
B. |
讓程序執行流程更加清晰 |
|
C. |
加快了程序訪問速度 |
|
D. |
大大減少了編碼工作量 |
17. |
在WEB應用程序開發中,有時會出現Tomcat端口號已經被占用的情況,為此我們需要修改配置文件,下列選項中修改正確的是( B )(選擇一項) |
|
|
|
|
|
A. |
在tomcat目錄\bin文件夾\server.xml文件中,修改 Connection的port |
|
B. |
在tomcat目錄\conf文件夾\server.xml文件中,修改 Connector的port |
|
C. |
在tomcat目錄\bin文件夾\server.xml文件中,修改 Connector的port |
|
D. |
在tomcat目錄\conf文件夾\server.xml文件中,修改 Connection的port |
18. |
如果要把一個“accp”字符串信息放在session對象里,則下列正確的是( A )(選擇一項) |
|
|
|
|
|
A. |
session.setAttribute("message","accp"); |
|
B. |
session.setAttribute(message,"accp"); |
|
C. |
session.setAttribute("accp","message"); |
|
D. |
session.setAttributes("message","accp"); |
19. |
如果要從session范圍取出名為flag的變量,則以下說法正確的是( A )(選擇一項) |
|
|
|
|
|
A. |
session.getAttribute("flag"); |
|
B. |
session.getAttributes("flag"); |
|
C. |
session.getParameter("flag"); |
|
D. |
session.get("flag"); |
20. |
假設session對象中存放了一個Book對象,即:session.setAttribute("book",new Book()) , 則取出Book對象的正確語句是( B )(選擇一項) |
|
|
|
|
|
A. |
Book book = session.getAttribute("book") |
|
B. |
Book book = (Book)session.getAttribute("book") |
|
C. |
Book book = session.getValue("book") |
|
D. |
Book book = (Book)session.getValue("book") |
21. |
在JSP中,以下可以實現請求轉發的是( D )(選擇一項) |
|
|
|
|
|
A. |
request.getRequestDispatcher("list.jsp"); |
|
B. |
response.getRequestDispatcher("list.jsp"); |
|
C. |
response.getRequestDispatcher("list.jsp").forward(request,response); |
|
D. |
request.getRequestDispatcher("list.jsp").forward(request,response); |
22. |
web.xml中預先對Servlet進行初始化設置的代碼如下: <init-param> <param-name>myWord</param-name> <param-value>hello</param-value> </init-param> 則如下獲取初始化參數的語句正確的是( A )。(選擇一項) |
|
|
|
|
|
A. |
String myWord = getInitParameter("myWord"); |
|
B. |
String myWord = getInitParameter("hello"); |
|
C. |
String myWord = getInit("myWorld"); |
|
D. |
String myWord= getInit("hello"); |
23. |
以下代碼片段是使用cookie存儲數據,橫線處填寫( D )可以在look.jsp頁面顯示”用戶名:Jack";(選擇一項) <% response.addCookie(new Cookie("uname","Jack"); ___________________________(1)____________ %> look.jsp頁面部分代碼 <% Cookie[]cookies=___________(2)______________ String user=""; if(cookies !=null){ for(int i =0;i<cookies.length;i++){ if(cookies[i].getName().equals("uname")) user = cookies[i].getValues(); } } out.print("用戶名:+user); %> |
|
|
|
|
|
A. |
(1)request.getRequestDispatcher("look.jsp").forward(request,response) (2)response.getCookies(); |
|
B. |
(1)request.getRequestDispatcher("look.jsp").forward(request,response) (2)request.getCookies(); |
|
C. |
(1)response.sendRedirect("look.jsp") (2)response.getCookies(); |
|
D. |
(1)response.sendRedirect("look.jsp") (2)request.getCookies(); |
24. |
以下關於Servlet生命周期說法錯誤的是( C )。(選擇一項) |
|
|
|
|
|
A. |
Servlet容器根據Servlet類的位置加載Servlet類,成功加載后,由0容器創建Servlet的實例 |
|
B. |
對於每一個Servlet實例,init()方法只被調用一次 |
|
C. |
當Servlet容器接收到客戶端請求時,調用 Servlet的service()方法以及destory()方法處理客戶端請求 |
|
D. |
servlet的實例是由servlet容器創建的,所以實例銷毀也由容器業完成 |
25. |
以下關於轉發和重定向的說法錯誤的是( C )(選擇一項) |
|
|
|
|
|
A. |
轉發通過request的getRequestDispatcher().forward()方法即可實現,它的作用是在多個頁面交互過程中實現請求數據的共享。 |
|
B. |
重定向可以理解為是瀏覽器至少提交了兩次請求,它是在客戶端發揮作用,通過請求新的地址實現頁面轉向 |
|
C. |
轉發和重定向都可以共享request范圍內的數據 |
|
D. |
轉發時客戶端的URL地址不會發生改變,而重定向時客戶端瀏覽器中顯示的是新的URL地址。 |
26. |
以下Servlet代碼主要實現添加功能,並進行了中文亂碼的處理。其中第( C )處有錯誤。(選擇一項) public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); //1處 response.setCharacterEncoding("utf-8"); //2處 String name=request.getparam("uname"); //3處 ...... PrintWriter out = response.getWriter(); //4處 ...... } |
|
|
|
|
|
A. |
1 |
|
B. |
2 |
|
C. |
3 |
|
D. |
4 |
27. |
自定義標簽的配置文件放在___D___ |
|
|
|
|
|
A. |
WebRoot |
|
B. |
lib |
|
C. |
classes |
|
D. |
WEB-INF |
28. |
在J2EE中,給定某Servlet的代碼如下,編譯運行該文件,以下陳述正確的是( B )。(選擇一項) Public class Servlet1 extends HttpServlet{ Publicvoid init() throws ServletException{ } Publicvoid service(HttpServletRequest request,HttpServletResponse response) ThrowsServletException,IOException{ PrintWriterout = response.getWriter(); out.println(“hello!”); } } |
|
|
|
|
|
A. |
編譯該文件時會提示缺少doGet()或者dopost()方法,編譯不能夠成功通過 |
|
B. |
編譯后,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中會看到輸出文字:hello! |
|
C. |
編譯后,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中看不到任何輸出的文字 |
|
D. |
編譯后,把Servlet1.class放在正確位置,運行該Servlet,在瀏覽器中會看到運行期錯誤信息 |
29. |
J2EE中,Servlet API為使用Cookie,提供了( A )類。 |
|
|
|
|
|
A. |
javax.servlet.http.Cookie |
|
B. |
javax.servlet.http.HttpCookie |
|
C. |
javax.servlet. Cookie |
|
D. |
javax.servlet.http.HttpCookie |
30 |
能夠保留請求作用域中數據的轉向方式是__D___ |
|
|
|
|
|
A. |
response.forward() |
|
B. |
response.sendRedirect() |
|
C. |
session.getRequestDispatcher().forward(request,response) |
|
D. |
request.getRequestDispatcher().forward(request,response) |
三、 判斷題
- out對象是一個輸出流,它實現了javax.servlet.JspWriter接口,用來向客戶端輸出數據。( T )
- 利用response對象的sendRedirect方法只能實現本網站內的頁面跳轉,但不能傳遞參數。( T )
- respone對象主要用於向客戶端發送數據。( T )
- Post屬於表單的隱式提交信息方法。( T )
- 表單提交的信息就封裝在HTTP請求消息的信息體部分,用戶使用request對象的getParameter方法可以得到通過表單提交的信息。( T )
- request對象的getRemoteHost()方法既能獲取客戶機的名稱,又能獲取客戶IP地址的方法是( T )
- 同一個客戶在同一個Web服務目錄中的session對象是相同的,在不同的Web服務目錄中的session對象是不相同的。( T )
- session對象是HttpSession接口類的實例,由客戶端負責創建和銷毀,所以不同客戶的session對象不同。( F )
- publiclongsession.setMaxInactiveInterval()設置最長發呆時間,單位毫秒。( F )
- session對象可以用來保存用戶會話期間需要保存的數據信息。( T )
- url重寫可以把session對象的id作為url參數傳帶過去,可以使用request對象的encodeURL(“”)。( F )
- application對象對所有用戶都是共享的,任何對它的操作都會影響到所有的用戶。( T )
- application對象可以用來保存數據。( T )
- 使用request對象獲取信息的時候,可能會出現NullPointerException異常( F )
- Servlet與Applet它們都運行在服務器端。( F )
- Cookie由瀏覽器保存在客戶端,通常保存為一個文本文件。( T )
- 客戶機與Servlet間可以直接的交互。( F )
- servlet容器中,一個Servlet類只會new一個servlet對象( T )
- 當服務器收到一個請求時,會new一個新的線程來處理該請求( T )
- request.getSession(),調用兩次后,返回的Session對象是完全不同的兩個對象( F )
- servlet能脫離服務器運行( F )
- 一個servlet可以對應多個url( T )
- servlet程序通過HttpServletResponse對象直接將信息發送給客戶端( F )
四、 簡答題
- 創建並運行一個Servlet的基本流暢是什么?
- 簡述Servlet的聲明周期
- 簡述請求轉發於重定向的區別
- 簡述tomcat的目錄結構及其作用
- 簡述HTTP協議的特點
- 簡述Cookie和Session機制
- tomcat配置文件web.xml中,DefalutServlet的作用是? JspServlet的作用是?
- server.xml中,我們修改哪個元素的哪個屬性可以將服務器監聽端口改成其他端口?80端口有什么特別嗎?
- 請說明:service,doGet,doPost方法的調用順序
10.下面的問題如何解決:405 http method post is not supported by this url
11. Servlet中可以隨意定義成員變量和隨意使用它。對不對?為什么?
12. 我想讓session對象使用完后,立馬失效。可以調用哪些方法?
13. 翻譯如下英文,明白session的基本用法:
Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user.
The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user. A session usually corresponds to one user, who may visit a site many times. The server can maintain a session in many ways such as using cookies or rewriting URLs.
This interface allows servlets to
View and manipulate information about a session, such as the session identifier, creation time, and last accessed time
Bind objects to sessions, allowing user information to persist across multiple user connections
14. tomcat目錄:lib、webapps分別有什么作用?
15. 如何手工發布一個web項目到tomcat服務器上?
五、 編碼題
1. 動手操作:解壓tomcat,配置JAVA_HOME。啟動tomcat,關閉tomcat。
2. 動手操作:建立一個web項目,建立一個servlet並配置,將該項目發布到tomcat下。然后訪問你寫好的servlet
3. 動手操作:建立第二個servlet,使用HttpServletRequest對象讀取某個請求頭信息,使用HttpServletResponse對象向客戶端寫比較復雜的html、css、js代碼。
4.使用純Servlet技術實現網站登陸功能,要求鏈接數據庫,創建一個User表。User表包括id、用戶名,密碼,昵稱,用戶創建日期,性別,年齡這些字段,並使用cookie技術實現三天免登陸功能。要求有用戶密碼登陸錯誤提示,以及用戶名和密碼格式檢驗,驗證碼,並有友好的HTML界面。