1.經過WEB層處理,是B/S結構(瘦客戶端);
未經WEB層處理是C/S結構。
2.客戶層(browser)--->WEB層(jsp/servlet)--->業務層(EJB)--->數據層(DBServer)
3. GET | POST
位置 地址後面追加 | http header中
長度 255 | 無限制
利弊 顯示密碼 | 安全
4.所有自定義servlet必須實現 javax.servlet.Servlet 接口,容器自動調用其中的方法。
5.生命週期:init() <只創建一次,讓所有用戶訪問>
service()
destroy()
6.抽象類javax.servlet.GenericServlet:不和特定協議相關
|
|
抽象類javax.servlet.http.HttpServlet:與http協議相關(大部分的時候用它繼承)
7.響應流程:service()接收到請求 ---->請求封裝到javax.servlet.ServletRequest對象中---->傳回service()
---->service()解析 ---->寫到javax.servlet.ServletResponse對象中---->傳回client(javaI/O流)
8.得到當前webApplication對象
ServletContext sc;----servlet屬性
sc = this.getServletContext();----init()中寫
9.設置響應類型,字符集
private static final String CONTENT_TYPE = "text/html; charset=GBK";-----servlet屬性
response.setContentType(CONTENT_TYPE);----doGet()中寫
10.如果用戶用form傳來中文數據,要加入 request.setCharacterEncoding("GB2312");--->doGet()的第一行
11.設置頁面刷新時間 response.setHeader("Refresh" , "5");
12.String name = request.getParameter("name");--->得到表單數據
String[] hobby = request.getParameterValues("hobby");---注意返回類型是String[]
if(hobby!=null){
for(int i = 0;i < hobby.length; ++i){
out.print(hobby[i]);
}
}
String queryString = request.getQueryString();--->得到GET方法的上傳字符串