javaweb複習筆記

  1. 理解“動”態網站
    HTML、CSS、JavaScript(動態效果)——(界面層,運行在客戶端瀏覽器);
    Java、SQL、JSP、Servlet——(運行在服務器)
    上邊老師總結的,不看,看下邊的
    動態網站指數據是活的,也就是說數據是存在數據庫中的,靜態網站是指數據就在前端頁面上,如果要改靜態頁面上的數據,就得改代碼。靜態網站上有種東西叫JavaScript,這個只是搞一些動態效果或者和後端交互數據(Ajax),有這個不叫動態網站。

  2. JavaBean
    javaBean分爲實體JavaBean和業務JavaBean
    實現實體的JavaBean,叫做封裝數據的JavaBean,俗稱實體類(entity)。
    實現功能的JavaBean,叫做封裝業務的JavaBean,比如dao,biz。
    典型的JavaBean,是指封裝數據的JavaBean(entity),它的特徵:
    (1) 必須是public類
    (2) 私有成員變量(private)
    (3) public的無參構造方法
    (4) 圍繞每個屬相生成set方法和get方法

  3. JSP工作原理
    第1次執行JSP頁面時,經過轉譯(.jsp->.java)、編譯(.java->.class)、執行的過程。
    第2次以後再執行時,直接執行.class,這個.class就是Servlet。
    例題:
    JSP文件在第一次運行的時候被JSP引擎編譯爲( A )文件
    A. Servlet
    B. Class
    C. HTML
    D. XML

  4. HTTP協議發送消息的方法:get和post
    get方法特徵:明文傳輸數據,發送數據大小有限制。

    <form method="GET">
    …
    </form>
    <a href="#">…</a>
    response.sendRedirect("list.jsp?boardId=1");
    

    post方法特徵:密文傳輸數據,發送數據大小沒有限制。

    <form method="post">
    …
    </form>
    

    post相比get要安全點兒

  5. HTTP協議具有"無狀態"的特點。
    點擊超鏈接<a>,相當於發起新的HTTP鏈接,產生一個新的request對象。

  6. HTML

    <form method="post" action="……">
    	<input type="text" name="username" id="username"/>
    	<input type="hidden" name="temp" value="123"/>  <!--隱藏表單域 -->
    </form>
    <a href="next.jsp?a=1&b=2&c=3"></a>		
    <!--下級目錄,上級目錄,根目錄-->
    <!--下級 直接寫 next.jsp-->
    <!--上級 ../next.jsp-->
    <!--根目錄   /next.jsp-->
    <!-- URL重寫 (重定向)-->
    response.sendRedirect("list.jsp?boardId=1");
    
  7. JSP指令元素包括:page、include、taglib
    (1) jsp中import可以有多個
    (2) jsp中的include有兩種,一種是靜態引入(<%@ include file = frangmentURL%>),一種是動態引入(<jsp:include page= frangmentURL />),前者的頁面將會直接插入包含該頁面中該指令的位置,然後jsp編譯器再對合成的文件進行編譯,最終編譯的頁面只有一個;後者的jsp程序將會將請求forward到被包含頁面,並將執行結果放入輸出至瀏覽器中,並返回頁面繼續執行後面的代碼,包含文件和被包含文件將會分別編譯。簡單來說,前者得到一個Servlet,後者得到兩個Servlet。
    (3) 當jsp頁面使用第三方標籤庫時,使用taglib指令"導包",url是第三方標籤庫定義的,prefix是標籤的前綴,使用這個庫裏的標籤時,前邊要加一個前綴。

    <%@ page import="entity.*,dao.*,java.util.Date" contentType="text/html;charset=utf-8" %>
    <%@include file="other.jsp"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <c:out value="renliang"></c:out>
    
  8. JSP腳本元素包括:表達式(<%=… %>)、腳本代碼(<%… %>)、聲明(<%!… %>)
    例題:
    JSP標記都是以<%<jsp開頭,以%>/>結尾。

  9. 9個內置對象: response、out、request、pageContext、session、application、config、exception、page
    常用的:request、response、out、pageContext、session、application
    比較作用域範圍:pageContext、request、session、application
    (1) pageContext:當前頁面(默認的作用域)

    <% pageContext.setAttribute("color","yellow");%>
    <%=pageContext.getAttribute("color")%>	<!--用JSP表達式輸出 -->
    	${pageScope.color}					<!--用EL表達式輸出 -->
    <c:forEach item="list" var="obj">		<!—obj默認是定義在pageContext內置對象中 -->
    	…${obj.attr}
    </c:forEach>
    

    (2) request:當次HTTP鏈接中

    String變量名 = request.getParameter("變量名");
    request. setAttribute("變量名",值);
    request. getAttribute("變量名");
    

    (3) session:當前會話中(只要不註銷session即關閉瀏覽器)
    如果當前已展開會話,就返回當前session對象;如果當前沒有session,創建一個新的session對象:

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

    如果當前已展開會話,就返回當前session對象;如果當前沒有session,返回null:

    HttpSession session = request.getSession(false);
    

    (4) application:整個應用程序(所有頁面、所有會話,只要服務器不關)
    一般用於計數的
    例題:
    request內置對象代表了客戶端的請求信息,主要用於通過HTTP協議傳送給服務端的數據。out對象主要用來向客戶輸出各種數據類型的內容。
    page對象用於指定當前JSP本身。
    pageContext對象提供了對JSP頁面內使用到的所有對象及名稱空間的訪問。
    application對象保存應用程序中公有的數據。
    response對象實現了HttpServletResponse接口,可對客戶的請求作出動態響應,向客戶端發送數據。
    如果希望在多個頁面間共享數據,可以使用(A)作用域
    A. request,session
    B. application.session
    C. request,application
    D. pageContext,request

  10. 頁面跳轉的兩種方式:重定向和轉向的區別
    重定向:response.sendRedirect("index.jsp");
    相當於發起新的HTTP鏈接;
    地址欄會發生變化;
    效率低;
    安全性較高。
    轉向:request.getRequestDispatcher("index.jsp").forward(request,response);
    不發起新的HTTP鏈接,服務器內部資源的跳轉;
    地址欄不變化;
    效率較高。

  11. EL表達式支持關鍵字:eq、ne、lt等等、empty

    算數運算符 描述
    ( ) 括號,改變運算優先級
    - 負號
    *,/(div),%(mod) 乘除取餘,若除以0,返回值爲無窮大而不是錯誤
    +,- 加減
    關係運算符 說明 範例 結果
    ==或eq 等於 ${5==5}或${5eq5} true
    !=或ne 不等於 ${5!=5}或${5ne5} false
    <或lt 小於 ${3<5}或${3lt5} true
    >或gt 大於 ${3>5}或${3gt5} false
    <=或le 小於等於 ${3<=5}或${3le5} true
    >=或ge 大於等於 ${3>=5}或${3ge5} false
    邏輯運算符 範例
    &&或and ${A && B}或${A and B}
    ||或or ${A || B}或${A or B}
    !或not ${!A}或${not A}

    empty主要判斷值是否爲空 ${empty A}
    條件運算符 ${A?B:C}
    例題:
    EL表達式,${10 mod 3}的執行結果爲( B )
    A. 10 mod 3
    B. 1
    C. 3
    D. null

  12. EL表達式與JSP表達式區別
    EL表達式取出一個變量的值時,要求這個變量必須來自某個內置對象中;

    <!--name 必須來自pageScope、requestScope、sessionScope或applicationScope作用域-->
    ${name} 
    

    JSP表達式取出一個變量的值時,這個變量是一個局部變量;
    <%=name%>
    EL表達式,如果表達式結果爲NULL,不會有任何顯示;
    JSP表達式,如果表達式結果爲NULL,顯示NULL。
    給定以下JSP代碼片段,有2個客戶依次瀏覽該JSP;且每個客戶只瀏覽一次,第2個客戶會看到瀏覽器顯示(A)

    <% int x = 1; %>
    <%! int x = 10; %>
    X = <%=x %>
    

    A. x = 1
    B. x = 2
    C. x = 10
    D. x = 11

  13. JSTL標籤:Core庫和Format庫
    Core庫
    format庫
    Core庫:

    <c:if test="${}">…</c:if>
    <c:choose>
    	<c:when test="${}">
    		….
    	</c:when>
    	<c:otherwise>
    		….
    	</c:otherwise>
    </c:choose>
    <c:forEach item="${list}" var="obj" >		
    	…${obj.attr}
    </c:forEach>
    

    Format庫:格式化日期或數字,本地化和國際化
    <fmt:formatNumber />、<fmt:formatDate>

  14. Servlet的理解
    Servlet繼承javax.servlet.http.HttpServlet類。
    HttpServlet是抽象類,它的Http處理方法只有定聲明沒有具體實現。
    開發Servlet類,一般需要重寫**doGet( )或doPost( )**方法。
    例題:
    Servlet的優點有(ABC)
    A. 執行效率高
    B. 可移植性好
    C. 功能強大
    D. 運行速度快
    Servlet和JSP的區別是(BCD)
    A. 性能更強
    B. 編程方式不同
    C. 運行速度不同
    D. 編譯順序不同

  15. Servlet的訪問:web.xml中配置

    <servlet>
    	<servlet-name>firstServlet</servlet-name>
    	<servlet-class>servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    	<servlet-name>firstServlet</servlet-name>
    	<url-pattern>/hello</url-pattern>
    </servlet-mapping>
    
  16. Servlet的生命週期:
    加載類實例化
    init()初始化
    請求處理
    destroy()
    第1次訪問某Servlet時,會調用init()方法;
    之後訪問Servlet的doGet()或doPost()方法;
    關閉服務器時候,會調用destroy()方法。
    例題:
    當訪問一個Servlet時,以下Servlet中的哪個方法先被執行( D )
    A. destroy
    B. doGet()
    C. service()
    D. init()

  17. session對象是HttpSession接口類型;application對象是ServletContext接口類型。

  18. 過濾器

    <filter>
     	<filter-name> EncodingCharacterFilter </filter-name>
    	<filter-class> filter. EncodingCharacterFilter </filter-class>
    </filter>
    <filter-mapping>
     	<filter-name> EncodingCharacterFilter </filter-name>
    	<url-pattern>/admin/*</url-pattern >
    </filter-mapping>
    

    例題:
    編寫一個filter,需要( B )
    A. 繼承Filter類
    B. 實現Filter接口
    C. 繼承HttpFilter類
    D. 實現HttpFilter接口
    在編寫過濾器時,需要完成的方法(A)
    A. doFilter()
    B. doChain()
    C. doPost()
    D. doDelete()

  19. Model1和Model2模型對比
    Model1是JSP+JavaBean
    Model2是JSP+Servlet+JavaBean
    Model1中,JSP頁面獨自響應請求,並將處理結果返回客戶端,所有的數據通過Bean來處理,JSP頁面顯示數據。Model實現了視圖層和業務層的分離。大量Model1會使JSP頁面嵌入大量腳本代碼,使整個頁面程序變得很複雜,造成了代碼開發和維護的困難。
    Model2中,通過JSP頁面顯示數據,通過Servlet完成大量的事務處理工作。這樣的話,JSP頁面中沒有任何數據處理邏輯,所有數據處理邏輯均出現在Servlet中。Model2具有更清晰的頁面表現、清楚的開發者角色劃分,做到了基本的前後端分離。
    例題:
    JSP的兩種體系結構是model1model2

補充:

  1. 能夠保留請求作用域中數據的轉向方式是(D)
    A. response.forward()
    B. response.sendRedirect()
    C. session.getRequestDispatcher().forward(request,response)
    D. request.getRequestDispatcher().forward(request,response)
  2. Login.jsp爲登錄頁面,表單代碼如下:
    <form action="index.jsp" method="post">
    	<input type="text" name="name" />
    	<input type="submit" value="login" />
    </form>
    
  3. index.jsp中直接顯示用戶名,以下哪種代碼正確(C)
    A. ${requestScope.name}
    B. <%=name %>
    C. ${param.name}
    D. <%=param.name%>
  4. 按作用域從大到小排列正確的是(D)
    A. application,page,request,response
    B. session,pageContext,request,application
    C. public,application,session,request
    D. application,session,request,pageContext
  5. 在編寫Servlet時,需要繼承HttpServlet類,在Servlet中聲明doGet()和doPost()需要HttpServletRequestHttpServletResponse類型的兩個參數
  6. jsp主要內置對象有:responseexceptionpageContextrequestsessionapplicationoutconfigpage
  7. 使用useBean動作標記的時候scope屬性有4種選項,作用範圍由小到大是pageContext、request、session、application,其中session是指當關閉瀏覽器的時候這個javabean失效,application是指當關閉服務器的時候這個javabean失效。
  8. 三種常用的動態網頁技術是ASP,PHP,JSP
  9. JSP利用JDBC操作數據庫的步驟:
    (1) 加載驅動程序,調用 Class.forName()將自動加載驅動程序類。
    (2) 建立連接,若連接字符串爲String url = "jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPwd,其中dbName、userName和userPwd3個分別代表
    數據庫名
    數據庫的用戶名密碼
    (3) 建立StateMent
    (4) 執行sql語句,其中,查詢數據庫裏的表內容是Statement接口使用**executeQuery()**方法
    (5) 關閉數據庫

題目來自百度文庫:https://wenku.baidu.com/view/0620ecafd1d233d4b14e852458fb770bf78a3b8a.html和https://www.doc88.com/p-645858552264.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章