Java web學習(一)

  1. 什麼是jsp?html

    在html代碼中嵌入Java代碼片斷和jsp標籤,構成jsp網頁,在接收到用戶請求是,服務器會處理Java代碼片斷,而後將生成處理結果的HTML頁面返回給客戶端,客戶端的瀏覽器將呈現最終頁面效果,java

  2. jsp技術特徵:1)跨平臺;2)業務代碼鋒利;3)組件重用;4)繼承Java servlet功能;5)預編譯。web

  3. jsp基本構成:jsp頁面主要由指令標籤,HTML標記語言,註釋,嵌入Java代碼,jsp動做標籤等5個元素組成。數組

    1)指令標籤:主要由3個:page、include,taglib。瀏覽器

    格式:<%@ 命令 屬性名=屬性值,...>服務器

    page指令包括屬性:language、extends、import、pageEncoding、contentType、session、buffer、autoFlush、info、isErrorPage、errorPage、isELIgnored。cookie

    pageEncoding="utf-8"用來當前jsp頁面的編碼格式;session

    contentType="y=text/html;charset=utf-8"用來設置jsp頁面的mime類型和字符編碼。瀏覽器會根據此來顯示網頁內容。併發

    include指令:靜態包含。file屬性app

    taglib指令:用於加載用戶自定義標籤。<%@ taglib prefix="c" uri="...">

    2)嵌入Java代碼:代碼片斷<%   %>,聲明<%!  %> 表達式<%= %>

    3)jsp動做標籤:<jsp:include page=""/><jsp:forward page=""/><jsp:param name="" value=""/>

  4. jsp內置對象:共有九個request,response.session,apllication,page,pageContext,out,config,exception

    1)request對象

    HttpServletRequest對象,有如下幾個方法:

    ①獲取請求參數值:request.getParameter(name)

    ②解決中文亂碼

    name=URLEncoder.encode(param);
    String param = new String(request.getParameter(param).getBytes("iso-8859-1"),"gbk");

    ③獲取Form表單的信息

    對於文本元素,單選按鈕,下拉列表框均可以使用getParameter方法來獲取選定的內容,但對於複選框以及多選下拉框就要使用getParameterValues(name)方法來獲取,返回一個字符串數組

    ④獲取請求客戶端信息:getHeader(name), getMethod(), getContextPath(), ...

    ⑤在做用域中管理屬性:setAttribute()、getAttribute()、removeAttribute(),做用域爲一次請求。

    ⑥cookie管理

    cookie是小段的文本信息,經過使用cookie能夠表示用戶身份,記錄用戶名及密碼,跟蹤重複用戶。cookie在服務器端生成併發送給瀏覽器。

    Cookie myCook = new Cookie("key","value");
    myCook.setMaxAge(60*60*24);
    response.addCookie(myCook);
    
    
    客戶端:
    Cookie[] cook= request.getCookies();
    if(cook!= null){
        for(Cookie c:cook){
          if(c.getName().equals("key")){
           info= c.getValue();
          }
        }
    }

    2)response對象:

    方法有:addHeader()、setHeader()、addCookie()、sendError()、sendRedirect()、getOutputStream()。

    3)session對象

    ①在session中也能夠建立屬性,與request中相同,但做用域範圍是一次對話中有效

    ②銷燬session:session.invalidate();

    ③會話超時的管理:session.setMaxInactiveInterval(time)

    4)application對象:ServletContext對象,可將信息保存在服務器中,知道服務器關閉

    5)out:向瀏覽器輸出信息

    6)pageContext對象:取得任何範圍的參數

    7)config:讀取web.xml配置信息

    8)page對象:表明jsp自己,在jsp頁面內是合法的。至關與this指針。

  5. servlet

    servlet是運行在web應用服務器上的Java程序,能夠對web瀏覽器發送的請求進行處理。servlet對象的運行須要servlet容器的支持

    ①servlet的生命週期,由容器進行管理:

    在web容器啓動或客戶機第一次請求服務時,容器將加載servlet類,並將其放到servlet實例池;

    當servlet實例化後,容器將調用init方法完成servlet的初始化操做;

    容器經過servlet對象的service方法處理客戶端請求;

    在web容器關閉時,容器調用destroy()對資源進行釋放。servlet對象將被垃圾回收器回收。

    ②servlet能夠在web.xml中配置name,class,url-pattern。而在servlet3.0中提供了註解來配置servlet,極大的簡化了servlet的配置。

           @WebServlet("/TestServlet")

  6. Filter:servlet過濾器是客戶端與目標資源間的中間層組件,用於攔截客戶端的請求與響應信息。當web容器接受到一個客戶端請求時,將判斷此請求是否與過濾器對象相關聯,若是相關聯,則將請求交給過濾器處理,過濾器能夠更改請求中的數據信息,處理完成後,再將這一請求交給其餘業務進行處理。在對客戶端響應時,容器又將請求交給過濾器進行處理,處理事後將響應發送到客戶端。

    ①Filter API:Filter接口有init、doFilter、destroy方法

    FilterChain接口只有一個方法dofilter;

    FilterConfig接口:獲取過濾器初始化期間的參數信息。

    Filter的配置與servlet基本一致。dispatcher有4種選擇:request、forward、include、error。

相關文章
相關標籤/搜索