2019獨角獸企業重金招聘Python工程師標準>>>
1.內置對象簡介:JSP內置對象是WEB容器創建的一組對象,不使用new關鍵就可以是用的對象。
<%
out.println(123);
%>
?
2.九大內置對象:
?
- out
- request
- response
- session
- application
- ?
- Page?
- pageContext?
- exception?
- config?
3.WEB程序請求響應模式
- request: ?用戶發送請求。
- response: 服務器給用戶響應。
?
4.out對象:是JspWriter類的實力,是向客戶端輸出內容常用的對象。
常用方法如下:
- void println() 向客戶端打印字符串。
- void clear() 清除緩沖區內容,若在flush之后調用會拋出異常。
- void clearBuffer() 清除緩沖區內容,若在flush之后用不會拋出異常。
- void flush() 講緩沖區內容輸出到客戶端。
- int getBufferSize()返回緩沖區字節數的大小。不設緩沖區時為0.
- int getRemaining 返回緩沖區剩余可用。
- boolean isAutoFlush() 返回緩沖區滿時,是自動清空還是拋出異常。
- void close() 關閉輸出流。
?
5.表單兩種提交方式
get:
- 一明文方式通過URL提交數據,數據在URL中可以看到。
- 提交的數據不超過2KB。
- 安全性低但效率比post方式高。
- 適合提交數據量不大,安全行不高的數據,例:搜索,查詢等功能。
?post:
- 講用戶信息封裝在HTML HEADER內。
- 適合提交數據量大,安全性高的用戶信息。例:注冊,修改,上傳等功能。
?
6.request對象
- 客戶端的請求被封裝在request對象中,通過它了解客戶的需求,然后做出響應。
- 是HttpServletRequest類的實力。
- request對象有請求域,即完成客戶端的請求之前,該對象一直有效。
常用方法:
String getParameter(String name)? 返回name指定參數的參數值。
String[] getParameterValues(String name) ?返回包含name的所有值的數組。
void setAttribute(String,Object) 存儲此請求中的屬性。
object getAttribute(String name) 返回指定屬性的屬性值
String getContentType() 得到請求體的MIME類型。
String getProtocol() 返回請求用的協議類型及版本號。
String getServerName() 返回接受請求的服務器主機名。
?
int getServerPort():返回服務器接受此請求用的端口號。
String getCharacterEncoding():返回字符編碼方式。
int getContentLength():返回請求體的長度(以字節數)。
String getRemoteAddr():返回發送此請求的客戶端IP地址。
String getRealPath(String path):返回一虛擬路徑的真實路徑。
Stirng request.getContextPath():返回上下文路徑。
?
reg.jsp
?
[html]?view plain?copy
?print?
- <body>??
- ????
- ????<h2>用戶注冊</h2><br>??
- ????<form?name="2"?action="request.jsp"?method="post">??
- ????????<table>??
- ????????????<tr>??
- ????????????????<td>用戶名</td>??
- ????????????????<td?><input?type="text"?name="username"/></td>??
- ????????????</tr>??
- ??????????????
- ????????????<tr>??
- ????????????????<td>密碼</td>??
- ????????????????<td?><input?type="password"?name="password"/></td>??
- ????????????</tr>??
- ??????????????
- ????????????<tr>??
- ????????????????<td>愛好</td>??
- ????????????????<td>??
- ????????????????<input?type="checkbox"?name="fa"?value="read">讀書??
- ????????????????<input?type="checkbox"?name="fa"?value="music">音樂??
- ????????????????<input?type="checkbox"?name="fa"?value="movie">電影??
- ????????????????<input?type="checkbox"?name="fa"?value="internet">上網??
- ????????????????</td>??
- ????????????</tr>??
- ??????????????
- ????????????<tr>??
- ????????????????<td?colspan?="2"><input?type="submit"?value="提交"/></td>??
- ????????????</tr>??
- ????????</table>??
- ????</form>??
- ????<a?href=<span?style="color:#cc0000;">"request.jsp?username=中文"</span>>中文傳參鏈接</a>??
- ??</body>??
?
?
request.jsp
?
[html]?view plain?copy
?print?
- <body>??
- ????
- ????注冊成功.?<br>??
- ????<%??
- ????request.setCharacterEncoding("utf-8");??
- ????%>??
- ????用戶名:<%=?request.getParameter("username")?%><br>??
- ????愛好:<%??
- ???????????if(request.getParameterValues("fa")!=null){??
- ?????????String[]?ff=?request.getParameterValues("fa")?;??
- ????????????for(int?i=0;i<ff.length;i++)??
- ????????????{??
- ????????????out.println(ff[i]+"?"+"?"+"?");??
- ????????????}??
- ????????}?????
- ????%>??
- ??</body>??
?
7.中文亂碼相關:
http://blog.csdn.net/qq276878300/article/details/52423478
?
8.response對象:
?
- 包含響應客戶請求的有關信息,
- HttpServletResponse類的實例。
- 具有頁面作用域,即訪問一個頁面時,該頁面內的response對象只能對這次訪問有效,其他頁面的response對象對當前頁面無效。
?
常用方法如下:
?
- String getCharacterEncoding():返回響應的是何種字符編碼。
- void setContentType(String type):設置響應的MIME類型。
- PrintWriter getWriter():返回可以想客戶端輸出字符的一個對象(注意比較PrintWriter與內置out對象的區別)
- sendRedirect(java.lang.String location):重新定向客戶端請求。
?
9.請求轉發-請求重定向:
請求重定向:
?
- 客戶端行為。
- response.sendRedirect()
- 等同于兩次請求,前一次請求對象不會保存。
- 地址欄的URL地址會改變。
?
請求轉發:
?
- 服務器行為。
- request.getRequestDispatcher().forward(req,resp);
- 是一次請求,轉發后請求對象會保存,
- 地址欄的URL地址不會改變。
?
10.