1. 程式人生 > >java web整合開發 王者歸來

java web整合開發 王者歸來

第三章  深入servlet技術

1.HTTP

請求頭:HTTP版本、瀏覽器版本、瀏覽器支援格式、cookie

POST:傳輸的資料在內部,長度不限制

GET:在URL傳輸引數,不能超過256個字元

2.servlet

requset、response、service() ( doget()、dopost() )

webapps

3.配置servlet

// 配置servlet的類檔案

<servlet>

    <servlet-name />

    <servlet-class />

    <init-param>

        <param-name />

        <param-value />

    <init-param>

    <load-on-startup />

</servlet>

// 配置servlet的訪問方式

<servlet-mapping>

    <servlet-name />

    <url-pattern />

</servlet-mapping>

4.上傳檔案

客戶端

<form enctype="multipart/form-data" method="post" />

檔案域:<input type="file" />

伺服器端

使用apache commons upload

*上傳檔案時資料以二進位制形式提交,而不是ASCII,因此不能用request.getParameter(),應該使用Commons-Upload解析二進位制資料

5.Ajax

核心是XMLHttpRequest

6.servlet生命週期

伺服器啟動時初始化一個servlet物件,然後呼叫service()方法,伺服器關閉物件銷燬

7.servlet之間的跳轉

轉發

request.getRequestDispatcher("/../..").forward(request,response);對客戶端透明

forward之前儘量不要使用out.println()語句,會拋異常

重定向

狀態碼:1xx資訊狀態碼,表示請求被接受,正在被處理;

               2xx正確狀態碼,

               3xx重定向狀態碼,301域名不存在,302地址換了

               4xx請求錯誤,401沒許可權訪問,404資源不存在,405訪問方式錯誤

               5xx伺服器錯誤

response.sendRedirect();

8.自動重新整理refresh

response.setHeader("Refresh","1000;URL=http://localhost:8080/1.jsp");

1000毫秒後跳轉到URL

9.servlet與執行緒安全

不要定義全域性變數,使用區域性變數,避免髒讀等問題

第四章  深入JSP技術

1.JSP是一種servlet

但是與HttpServlet不一樣,HttpServlet先把原始碼編譯為class檔案,再部署到伺服器,JSP是先部署到伺服器,再編譯為class

2.JSP兩部分:模板資料,元素

模板資料就是HTNL程式碼,元素就是java程式碼<% java程式碼 %>

3.JSP輸出

<%= %>輸出型別為int double boolean String Object等,輸出某個類物件時呼叫物件的toString方法

4.JSP指令

<%@ page language=" " contentType="text/html; charset=utf-8"  %>

<%@ include file="1.jsp"%>

<%@ taglib uri=" " prefix=" c" %>  (標籤)

    <c:foreach var=" " items=" " />

5.JSP行為

<jsp:include />  (動態包含)

使用Java Bean   useBean、setProperty、getProperty

useBean 行為屬性id、class、scope(page當前頁面、 request當前request、 session當前使用者、 application當前應用程式)

<jsp:plugin />嵌入Applet小程式

 <jsp:forward />跳轉

<jsp:directive>

6.JSP內建物件

out  request  response  config  session  application  page  pageContext  exception

Print out = request.getWriter();    

第五章  會話跟蹤

1.Cookie不能跨域名

2.Unicode編碼:儲存中文

3.BASE64:儲存二進位制圖片

4.Cookie的有效期:maxAge

5.Cookie不能修改、刪除,要修改,只能建立一個同名的Cookie覆蓋掉原來的Cookie

6.session方法

7.session與cookie的區別

    存取方式:Cookie只能存取ASCII字串,其他的要編碼,Session可以存取任何型別的資料

    隱私安全:Cookie存在客戶端中,對客戶可見,有風險,Session存在伺服器上,安全

    有效期:Cookie設定maxAge,Session關閉瀏覽器就失效

    伺服器負擔:Session在伺服器上,每個使用者一個,伺服器負擔大,Cookie在客戶端上不會讓伺服器負擔

第六章  過濾器Filter

1.Filter用在Servlet之外對request或response進行修改,客戶請求在抵達Servlet之前會經過FileterChain裡的所有Filter,伺服器響應請求也會經過這些Filter

2.Filter的生命週期

init()  doFilter()  destroy()

3.doFilter()方法中一定要執行chain.doFilter(request,response),否則request不會交給後面的Filter或者Servlet

3.Filter配置,在web.xml中,包括filter和filter-mapping,一盒web可以配置多個filter,執行按照配置的順序執行

4.Filter的作用:防盜鏈、字元編碼、日誌記錄、異常捕捉、許可權驗證、內容替換、GZIP壓縮、影象水印(水印是在瀏覽時動態打上的,不破壞原圖片)、快取、檔案上傳

*要注意配置順序,否則會出錯,如執行GZIP再執行影象水印會出錯

第七章 監聽器Listener

1.監聽session request servletcontext等的建立與銷燬

2.單點登入

3.顯示線上人數

第十二章  JDBC

1.Connection conn = null;

Statement stmt = null;(PreparedStatement pst = null;)

ResultSet re = null;

Class.forName("com.jdbc.mysql.Driver");

String url = "jdbc:mysql://localhost:3306/data";

String user = "admin";

String pwd = "123456";

conn = DriverManager.getConnection(url,user,pwd);

stmt = conn.createStatement();(pst = conn.preparedStatement(sql); pst.setInt();)

re = stmt.executeQuery("select * from table");(re = pst.executeUpdate(sql))

2.編碼問題:?unicode=true&characterEncoding=utf-8

第二十六章  Spring概述

1.AOP配置攔截器,在servlet前後執行程式碼

2.AOP基於代理

3.日誌 事務 安全 快取

4.方法前攔截器  返回後攔截器  異常丟擲攔截器