閱讀457 返回首頁    go 阿裏雲 go 技術社區[雲棲]


張誌宇 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。以多線程的方式運行

不要在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")
.forward(req, resp);

並且隻能以/開頭

常用

常用

 

16.         <jsp:useBean scope =page|request|session|application>

17.         jsp內置對象: out request response sessionapplication exception

最後更新:2017-04-02 22:16:18

  上一篇:go 給UIView添加陰影
  下一篇:go hql基本查詢語句