程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

javaweb

編輯:JAVA綜合教程

javaweb


如果是servlet 則可以通過servletContext 讀取web資源文件

如果不是servlet則只能通過類裝載器去讀取了(類裝載器有弊端,文件不能太大,二不能及時更新)

web工程中,對於java類我們是無法直接讀取web資源的,因此如果想要java程序讀取web資源,我們通常使用類裝載器(UserDao)為任意src下的java文件

java文件運行的話,服務器通過類裝載器去裝載classes目錄下的所有java類(src目錄下的內容發布的時候會發布到web工程下的classes目錄中)的所有資源文件

我們可以通過UserDao.class.getClassLoader().getResourceAdStream("fileName");/、通過任何一個類,我們可以獲得加載該類的類裝載器,通用的應該只有一個吧????,可以加載所有的資源文件

對於某些資源,如數據庫連接的數據,我們只需要加載一次就可以了,這是我們可以把加載數據庫相關的代碼,放到靜態代碼塊中

\

在web工程中,類裝載器對類的加載只加載一次,如果以前加載過該類並且沒有銷毀,則不會再次加載該類

注意以下兩種方式的區別,第一種是類加載器的方式,第二種是普通的輸入流的方式,如果在程序運行期間改變properties中的內容,第一種方式獲取是還是以前的內容,第二種方式是改變後的內容

\

程序以什麼碼表輸出到客戶端,就在respond中指定客戶端浏覽器以什麼樣的編碼讀取這些數據

\

標簽可以模擬http相應頭,我們可以用 標簽來控制浏覽器的行為

,如指定編碼格式

out.write("

");這和在respond添加header頭信息是一樣的(如上圖)

respond.setHeader("content-type","text/html.charset=UTF-8")//注意這樣寫訪問servlet時會下載文本

printWriter 字符流輸出,只能輸出字符串

outputStream 字節流,可以輸出所有的內容形式

\

setContentType("text/html;charset=UTF-8")//這句話可以代替上邊兩句話,內部調用了上邊兩個函數.解決亂碼問題

第一句話控制respond以什麼編碼格式寫出數據

第二句話控制浏覽器以什麼編碼格式打開返回的數據

 

服務端向客戶端游覽器發送文件時,如果是浏覽器支持的文件類型,一般會默認使用浏覽器打開,比如txt、jpg等,會直接在浏覽器中顯示,如果需要提示用戶保存,就要利用Content-Disposition進行一下處理,關鍵在於一定要加上attachment:

Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");


文件下載時,如果文件文成是中文,則需要把中文經過URL編碼

URLEncoder.encode(filename,encodetype);

URLEncoder.encode(filename,"UTF-8");

重定向:

respond.setStatus(302);

respond.setHeader("location","/error.html");

OR

respond.setRedirect("error.html");//特點放兩次請求,地址會變

注意重定向和轉發的區別,轉發不會改變地址欄,

重定向的用處,登陸和購買

 

 

獲取rquest數據的幾種方式

\\

 

\

web servlet一般不輸出數據跳轉到jsp輸出數據, 跳轉後一定要return,否則可能出現異常

 

forword時會清空respond 中的數據,respond頭信息仍然有效

 

respond可以實現轉發,

request也可以實現轉發

web中各種地址的寫法

書寫地址時主要看改地址是誰要使用

對於1,我們知道是請求轉發,轉發到另一個servlet中處理,因此是在web工程中使用,因此書寫時應相對於當前web應用根目錄

2,sendRedirect我們知道是重定向,讓浏覽器去發送另一個請求,是浏覽器要調用改資源地址,因此是相對於tomcat容易而言的

3,4相對於web應用根目錄而言的

5表單,點擊是浏覽器發送一個請求,是浏覽器調用的,因此是相對於tomcat目錄而言的

\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved