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.方法前攔截器 返回後攔截器 異常丟擲攔截器