張誌宇 SERVELET JSP學習講義-知識點總結綱要
1. 符合j2ee標準的web-app的目錄結構
n WEB-INF
u classes
u web.xml
u lib
2. servlet開發過程
n 從httpservlet繼承, 重寫doget / doPost方法
n 部署web.xml
3. servlet聲明周期
n 隻有一個對象
n 第一次請求的時候被初始化,隻一遍
n 初始化後先調用init方法,隻一遍
n 每個請求,調用一遍serviceàserviceàdoGet/doPost。以多線程的方式運行
u 不要在servlet中設計成員變量。
n 卸載前調用destroy方法
4. 為什麼有2個init方法
5. /的含義
n form
u form提交中action的路徑可以為虛擬路徑,
u 也可以為絕對路徑,/代表https://127.0.0.1/
n web.xml
u web.xml中url-pattern為webapplication根路徑,/代表https://127.0.0.1/Test/
6. 亂碼
場合:頁麵本身有中文的時候 解決辦法:servlet:resp.setContentType("text/html;charset=gbk"); Jsp: <%@ page contentType="text/html;charset=gb2312"%> 注意:一定要寫在PrintWriter out = resp.getWriter();之前 |
場合:解決get方式亂碼問題: 解決辦法:修改server.xml àURIEncoding="GBK" |
場合:解決post方式提交內容的亂碼 解決辦法:request.setCharacterEncoding("GBK"); 注意:一定要寫在存取第一個參數之前 不要調用response.setCharacterEncoding("GBK"); |
場合:<jsp:param name="user" value="<%=s%>"/>,url地址包含中文參數 解決辦法:<%request.setCharacterEncoding("GBK");%> 注意: |
7. Cookie 和session的區別
注意cookie有時候禁不掉
Cookie |
session |
存儲在客戶端 |
存儲在服務器端 |
兩種類型 l 有聲明周期 l 無聲明周期 |
兩種實現方式 l 依賴於cookie l url重寫 |
父路徑不能訪問子路徑的cookie |
同一個session的窗口共享一個session |
典型應用: l 3個月不用再登陸 l 購物車(https://www.china-pub.com/) |
典型應用: l 用戶登陸 l 購物車也可以用session實現。· |
不可靠 |
可靠 |
8. application (ServletContext)的概念
9. jsp初學者容易犯的錯誤
n WEB-INF子目錄下麵不能放置html jsp 等文件
n 不能直接打開
10. jsp/servlet連接數據庫時要注意的事項
拷貝數據庫驅動的jar包到apache-tomcat-6.0.14\webapps\Test\WEB-INF\lib文件夾
確認數據庫已經啟動
用戶名、密碼應該正確
11. <%! <%區別
12. 如何解決ie緩存問題
13. TestErr.jsp / ErrPage.jsp
l 不太穩定,有的時候不好使:
n 先不寫這句話:<%@pageerrorPage="ErrPage.jsp"%>
n Ie不行,firefox行
14. <%@include和jsp:include的區別
<%@ include %> |
<jsp:include page="date.jsp" flush="true"/> |
include編譯指令是在JSP程序的轉換時期就將file屬性所指定的程序內容嵌入,然後再編譯執行; |
而include指令在轉換時期是不會被編譯的,隻有在客戶端請求時期如果被執行到才會被動態的編譯載入 |
隻生成一個class文件 |
多個 |
Include不能帶參數
|
<jsp:include>可以
|
同一個request對象 |
不同的request對象,可以取得包含它的頁麵的參數,並添加了自己的參數 |
常用 |
不常用 |
15. forward和sendredirect的區別
Sendredirect |
Forward |
是不同的request |
雖然是不同的對象,但是,可以取到上一個頁麵的內容 |
send後的語句會繼續執行,除非return |
forward後的語句不會繼續發送給客戶端 |
速度慢 |
速度快 |
需要到客戶端的往返,可以轉到任何頁麵, |
服務器內部轉換, |
地址欄有變化 |
地址欄沒有變化 |
可以傳參數,直接寫在url後麵 |
可以傳參數 |
/代表的是https://127.0.0.1/ <%response.sendRedirect("/test/ServletToJSP");%> <form action="/test/ServletToJSP"> <a href="/test/ServletToJSP">test</a> |
/代表的是https://127.0.0.1/test this.getServletContext().getRequestDispatcher ("/servlet_jsp/ServletUseJsp.jsp") 並且隻能以/開頭 |
常用 |
常用 |
16. <jsp:useBean scope =page|request|session|application>
17. jsp內置對象: out request response sessionapplication exception
最後更新:2017-04-02 22:16:18