Java Web 基礎

首先:java web 是大學的唯一一門技術課,故必須要會java web不然我的大學真的就被人笑談爲:
只懂一些理論的書呆子;
1、在html中寫java代碼:格式<% %>
2、在html設置 id是唯一的通常是用於 javaScript
在html中設置name是用於服務器端;
Jsp內置對象
1、out對象:當jsp容器將jsp頁面自動轉化成Servlet實現類時,所有的模板元素都會轉化爲
out.print()語句輸出。
①向瀏覽器輸出數據
public abstract void print() 顯示各種類型的數據,該方法需要一個參數。
public abstract void println()分行顯示各種類型的數據。
public abstract void close()關閉輸出流。
②對緩衝區進行操作
public abstract void clear()清空緩衝區中的內容,不將數據發送到客戶端。
public abstract void clearBuffer()清空緩衝區中的內容。
public abstract void getBuffersize()獲取緩衝區的大小。
2、request對象:是從客戶端向服務器端發出請求,包含用戶提交的信息及客戶端的一些信息。
request對象封裝了瀏覽器的請求信息,通過request對象的各種方法可以獲取
客戶端以及用戶提交各項請求信息。
①String getParameter(String name),獲取客戶端的參數值。
例如:String name=request.getParameter(“name”);
String[] getParameterValues(String name);
獲取單個參數的所有參數值,主要用於獲取複選框的值,
返回類型是字符串數組。
②Enumeration getParameterNames()獲取所有參數的名稱。返回值類型是枚舉型
③void setCharacterEncoding(“UTF-8”); 設置編碼;

3、response對象:response對象和request對象相對應,用於服務器封裝請求後產生的結果,
並將結果響應給客戶端。
①設定HTTP標頭的方法
void addDateheader(String name ,long date) 新增long類型,名稱name 的標頭
void addHeader(String name,String value) 新增String類型,名稱爲name標頭
void addIntHeader(String name , int value) 新增int類型,名稱爲name的標頭

response.setHeader(“refresh”,”60;url=”); 設置自動刷新的時間。
②重新定向方法解析
void sendRedirect(String url)將頁面重新定向的URL地址上。
它可以實現瀏覽器重新定向功能。常用;
③設定狀態碼的方法
void sendError(int sc) 傳送狀態碼
void sendError(int sc,String msg) 用給定的狀態碼給客戶端發送一個錯誤響應。
void setStatus(int sc); 設置狀態碼;

4、session對象:用於在會話範圍內,記錄每個客戶端的方位狀態。
工作原理:
①客戶端首次訪問服務器的,服務器就會爲該客戶分配一個session對象,同時爲該session
對象指定一個唯一的ID,並且將該ID發送給客戶端並寫入到Cookie中,是客戶和服務端建立
一一對應的關係。
②當客戶繼續訪問服務器上的其他資源時,服務器不再爲客戶分配新的session對象,直到
客戶端瀏覽器關閉、超時或調用session的invalidate()方法使其失效,客戶端與服務器
的會話結束。
③當客戶端重新打開瀏覽器訪問網站時,服務器會重新爲客戶分配一個session對象,
並重新分配sessionID.
①常用方法:
public void setAttribute(String name,Object value)設定指定名字的屬性和值;
並將其添加到session會話中,如果屬性在會話範圍內,則更改屬性的值。
public Object getAttribute(String name)
在會話中獲取指定名字的屬性和值
public void removeAttribute(String name)刪除指定名字的session屬性,若該屬性
不存在,則出現異常。
public void invalidate() ,使session失效。
public String getId() 獲取當前會話的ID ,
簡單實例:
register.html
姓名:
one.jsp
<%
session.setAttribute(“sessionname”,name); //將html中的name 獲取
%>
two.jsp
<%
session.getAttribute(“sessionname”); //從會話中獲取

    %>

5、cookie
①Cookie可以實現讓站點跟蹤特定訪問者訪問的次數、最後訪問的時間以及訪問者進入站點的路徑。
②Cookie能夠幫助站點統計用戶個人資料,以實現個性化服務。
③Cookie在同一個站點內可以實現自動登錄功能,使得用戶不需要輸入用戶名和密碼。
6、application
是在服務器啓動後產生的,當客戶訪問服務器上的一個jsp頁面時,jsp引擎爲該客戶分配
這個application對象,當客戶瀏覽所訪問的網站的各個頁面時,對象是同一個;
區別:
session:①不同客戶的session是不同的;但是applicaiton是 相同的;
②取消在瀏覽器關閉就取消啦;
②:
public Object getAttribute(String name)獲取application 對象含有的屬性,
是name的對象,若name不存在則返回null,由於任何對象都可以添加到application
對象中,因此該方法獲取對象,應該強制轉化爲原來的類型。
例如:
<%
int num;
if(application.getAttribute(“num”)==null){
application.setAttribute(“num”,”1”);
}else{
num=Integer.parseInt((String)application.getAttribute(“num”));
num++;
application.setAttribute(“num”,Integer.toString(num));
}
%>

這個頁面已經瀏覽了+<%=(String)application.getAttribute(“num”) %>次
7、其他內置對象:
Servlet技術:
servlet是用java語言編寫的程序,運行於支持web服務器或應用服務器中。Servlet先於JSP出現
提供和客戶端動態交互的功能,Servlet可以處理來自客戶端的HTTP請求,並生成響應返回給
客戶端。
Servlet具有以下優點:
1、可移植性:
由於Servlet是用java語言編寫的,因此他可以在不同的操作系統和服務器上移植。
2、安全性
Servlet具有類型檢查特性,並利用Java的垃圾回收和沒有指針的設計,使得Servlet
避免內存管理等問題。
3、高效
Servlet加載執行後會產生服務器內存中,當再次收到客戶端的請求時,服務器會產生
新的線程而不是進程爲客戶端服務,這樣提高了速度。
Servlet的生命週期
①當客戶端第一次請求Servlet時,Servlet被加載到內存,容器會創建Servlet實例,並調用其
init()方法進行初始化。
②容器創建請求對象和響應,然後調用Servlet的service()方法爲客戶端提供服務。
③當Servlet不再被需要時,容器用Servlet的destory方法將Servlet實例銷燬。
Servlet的API:
方法:
getServletContext():獲取ServletContext對象,即JSP內置對象中的application對象。
getServletName():獲取Servlet配置聲明在web應用內部使用。
getInitParameter(String name):獲取Servlet配置時提供的名爲name的參數值。
HttpServletRequest的常用方法:
①getRequestURL():獲取請求URL地址,包含協議名,服務器名、端口號
②getContextPath()獲取Web應用的根路徑;
③getServletPath()獲取Servlet的訪問地址。
④getParameter(String name)獲取name的參數的單個值。
⑤getParameterValues(String name)獲得名爲name的參數的多個值。
⑥getAttribute(String name)獲得名爲name的屬性值。
⑦setAttribute(String name,String value) 設置名name的屬性值爲value
⑧getSession()獲取session對象。
⑨getRequestDispatcher(String path)獲取請求轉發對象,轉向地址爲path。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章