Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
一步,先寫html或jsp頁面,寫一個form,enctype設置為multipart/form-data,寫兩個input,一個type為file,一個type為submit,type的值可以用雙引號,也可不用。詳細代碼如下:<form action="uploadServlet" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上傳">
</form>
第二步,在web.xml中設置servlet和servlet mapping,并在servlet中設置multipart-config,設置允許上傳文件的最大長度,注意單位為字節,樣例中約為10M和20M。
第三步,在servlet中處理文件上傳,使用 request.getPart("file")方法獲取part,再通過part.getSubmittedFileName獲取上傳文件名,使用part.write方法寫文件到服務中,注意路徑問題,可以直接使用絕對路徑。
對于linux中使用tomcat,可能還需要配置tomcat的servlet.xml中的UMASK="0022",修改前為0027。
以上便是我分享的內容,感謝您的閱讀,非常歡迎并期待您在評論區留下寶貴的意見和建議。如果你在處理數據時遇到了類似的問題,歡迎隨時私信我,我將竭誠為你提供幫助。同時,如果你對數據處理領域充滿熱情,也歡迎你與我私信交流,期待與你共同探討、學習和進步,期待與您的每一次交流。
ervlet開發步驟
安裝服務器比如:tomcat
1.創建WEB項目
目錄:webapp/WEB-INF/web.xml
2.導入jar包
通過maven導入jar包,搜javaee
或者使用服務器自帶的jar包,右鍵項目->target runtime->勾選tomcat
3.創建Servlet
實現Servlet接口
也可以繼承HttpSevlet,此類已實現了Servlet接口
實現/重寫service(),在此方法內動態拼HTML
4.注冊Servlet
注冊Servlet,(找到web.xml文件)并聲明別名
通過別名,給此Servlet注冊網名(以/開頭)
<!-- 1.注冊別名(小名) -->
<servlet>
<servlet-name>time</servlet-name>
<servlet-class>web.TimeServlet</servlet-class>
</servlet>
<!-- 2.注冊訪問路徑(網名) -->
<servlet-mapping>
<servlet-name>time</servlet-name>
<url-pattern>/ts</url-pattern>
</servlet-mapping>
5.部署項目
在Servers下選擇Tomcat,右鍵Add and Remove
在彈出框內左側選中項目,雙擊移動到右側
部署:
6.訪問Servlet
啟動Tomcat
瀏覽器輸入地址 http://ip:port/項目名/Servlet網名
7.重新部署
修改代碼后,需要重新部署并重啟Tomcat才有效
或者點擊Servers下面的Tomcat7,右鍵publish
可以手動關閉Tomcat,再啟動它
也可以等待Eclipse自動重啟Tomcat(Reloading...)
常見錯誤及解決方法:
404產生的原因為Web服務器(容器)根據請求地址找不到對應資源,以下情況都會出現404的錯誤提示:
1.輸入的地址有誤(應用名大小寫不正確,名稱拼寫不正確)
2.在web.xml文件中<servlet>和<servlet-mapping>中的兩個<servlet-name>不一致
3.沒有將工程部署到Tomcat的webapps下面
4.Web工程部署時的結構沒有遵循Servlet的規范
具體的解決辦法就是根據上面提到的4種情況,逐條進行檢查。
容器如何找到service()方法
首先容器會根據firstweb這個應用名找到位于webapps下面對應的文件夾,然后根據地址中的“/sayHi”到web.xml文件中尋找與之匹配的<url-pattern>節點,找到匹配的節點后會找到與該節點緊鄰的<servlet-name>節點,獲取名稱并在此尋找與該名稱相等的<servlet-name>節點,找到相等的節點后,搜尋該節點下面緊鄰的<servlet-class>節點,于是獲取到了與該地址相對應的類名,借助于ClassLoader加載該類文件,創建對象并調用service()方法,客戶端即看到了與該地址匹配的運行結果。
405錯誤產生原因及解決方法
405這個錯誤的產生原因是容器找不到service方法來處理請求。以下情況容器都將視為沒有找到service()方法
1.service方法名寫錯,字母順序不對或大小寫錯誤
2.service方法參數類型與標準不一致,或參數順序與標準不一致。一定是先HttpServletRequest,然后是HttpServletResponse類型
3.service方法異常、返回值類型與標準不一致,一定是拋出ServletException、IOException。返回值類型是void。
解決405錯誤的方法即檢查service方法是否存在,簽名(方法名、參數、返回值、異常類型)是否與覆蓋的父類中的方法一致。
500錯誤產生原因及解決方法
500的錯誤原因是請求的Servlet在執行service方法的過程中出現了錯誤,程序不能繼續運行了。以下情況容器都將視為500的一種情況,而返回給客戶端這個錯誤說明。
1.Servlet沒有繼承HttpServlet或實現Servlet接口
2.web.xml文件中的<servlet-class>寫錯,與真正的包名類名不符
3.service方法中的代碼運行時拋出異常
解決500的方法為依據上面三種情況依次進行檢測,逐條排除。
HTTP協議:
HTTP協議是HyperText Transfer Protocol的縮寫,即超文本傳輸協議。是由w3c(萬維網聯盟)制定的一種應用層協議,用來定義瀏覽器與web服務器之間如何通信以及通信的數據格式。
因為BS架構中的通信模塊就是以HTTP這個協議作為標準協議的,所以對該協議有所了解可以更好的編寫程序。
HTTP協議的通信過程可以分為以下四個步驟:
1.瀏覽器根據IP地址和端口號與服務器建立連接
2.向Web服務器發送請求數據包
3.Web服務器接收請求數據包后,發送相應的響應數據包
4.瀏覽器接收響應數據后關閉連接
在這個過程中,一次請求對應一次連接,當瀏覽器再次發請求給服務器時,Web服務器并不知道這就是上次發請求的客戶端,這也是HTTP協議的一個特點-無狀態協議。這種需要時建立連接,使用結束后立即斷開連接的方式使得Web服務器可以利用有限的連接為盡可能多的客戶提供服務。也正是具備了這樣的特點,才使得BS結構能夠承載企業級應用的大量訪問。
請求數據包組成
請求數據包包含三個部分:
請求行,包括請求方式,請求資源路徑,以及協議版本
消息頭是由若干的鍵值對組成,主要用于傳遞給Web服務器一些信息。如,瀏覽器版本、接受資源的類型等
在消息頭的下面會跟著一個空白行,這樣就可以區分出消息頭與實體內容這兩個部分。而在請求數據包中,大部分情況實體內容為空,只有當請求方式為POST時,實體內容才有要提交的表單數據
響應數據包組成
響應數據包也包含三個部分:
狀態行,包括協議類型、版本、狀態碼、狀態描述
消息頭(若干),也是多組鍵值對組成的信息說明。如返回的Content-Type消息頭可以告訴瀏覽器返回的結果數據類型和字符集
實體內容,位于消息頭下面的一個空白行之后。空白行意在通知瀏覽器消息頭的結束以及結果內容的開始,瀏覽器就從這里開始數據的逐行解析。
Servlet如何處理HTTP協議
如何控制通信數據
HTTP協議在Web容器這端主要表現為通信數據的到達以及響應數據的返回。于是Web容器將這兩部分數據解釋為兩個對象,一個是與請求數據對應的HttpServletRequest對象,一個是與響應數據對應的HttpServletResponse對象。對于Servlet來講,主要的業務邏輯過程就是從請求對象中獲取數據,經過加工后將結果附著在響應對象中發送回客戶端。
HttpServletRequest對象用來讀取請求數據;
HttpServletResponse對象用來設置響應數據;
前市面上有不少開源的CMS系統,可以快速搭建一個網站,但是延展性、安全性、功能適配性肯定沒有按需求開發的性能好。所以下面主要介紹不使用開源CMS系統搭建網站的過程。
在做網站之前首先要找好網站的定位,確定好網站要服務哪一部分人群、要足他們的什么需求以及網站的后期盈利方式等。
·根據網站的定位確定一個符合網站定位的名字和域名,便于上線后的推廣。
·策劃網站的功能模塊以及頁面布局
·畫出頁面的原型圖
設計師根據原型圖,設計頁面,形成設計稿。
搭建靜態頁面是指將設計的網頁效果圖轉換為能夠在瀏覽器瀏覽的頁面。這就需要對頁面設計規范有一個整體的認識并掌握一些基本的網頁腳本語言,例如HTML、CSS等。需要注意的是,在拿到網頁設計效果圖后,切忌直接切圖、搭建結構。應該先仔細觀察效果圖,對頁面的配色和布局有一個整體的認識,主要包括顏色、尺寸、輔助圖片等,具體介紹如下
(1)顏色:觀察網頁效果圖的主題色、輔助色、點睛色,了解頁面的配色方案。
(2)尺寸:觀察網頁效果圖的尺寸,確定頁面的寬度和模塊的分布。
(3)輔助圖片:觀察網頁效果圖,看哪些地方使用了素材圖片。確定需要單獨保留的圖片。例如,重復的背景圖、小圖標、文本內容配圖等。
對頁面效果圖有了一個基本的分析之后,就能夠“切圖”了。“切圖”就是對效果圖進行分割,將無法用代碼實現的部分保存為圖片。當切完圖之后,就可以使用HMCs搭建靜態頁面。搭建靜態頁面就是將效果圖轉換為瀏覽器能夠識別的標記語言的過程。
靜態頁面建設完成后(一般和前端工程師工作并行),如果網站還需要具備一些動態功能(例如搜索功能、留言板、注冊登錄系統、新聞信息發布等),就需要開發動態功能模塊。目前廣泛應用的動態網站技術主要有PHP、ASP、JSP三種,具體介紹如下。
(1)PHP
PHP即Hypertext Preprocessor(超文本預處理器),是一種通用的開源腳本語言。PHP語法吸收了C語言、Java(C語言和Java均是編程語言)的特點,利于學習,使用廣泛,主要適用于web開發領域。PHP提供了標準的數據庫接口,數據庫連接方便,兼容性和展性非常強,是目前使用較廣泛的技術。
(2)ASP
ASP即Active Server Pages(動態服務器頁面),是一種局限于微軟的操作系統平臺之上的動態網站開發技術,主要工作環境為微軟的IIS應用程序結構。ASP入門比較簡單,但是安全性較低,而且不宜構架大中型站點,其升級版ASP.NET雖然解決了這一問題,但開放程度低,操作麻煩。
(3)JSP
JSP即Java Server Pages(Java服務器頁面),是基于Java Servlet以及整個Java體系的Web開發技術,它與ASP有一定的相似之處。JSP被認為是網站建設技術中安全性最好的,雖然學習和操作均較為復雜,但目前被認為是三種動態網站技術中有前途的技術。
網站建設后期事宜主要包括網站的測試、上傳、推廣、維護等,具體介紹如下。
(1)網站測試
網站測試主要包括本地測試和上傳到服務器之后的網絡測試,具體介紹如下
·本地測試:是指在網站搭建完成之后的一系列測試。例如,鏈接是否錯亂,是否兼容不同的瀏覽器,頁面功能邏輯是否正常等,以確保網站發布到服務器上不會出現些基本錯誤。
·網絡測試:是指網站上傳到服務器之后針對網站的各項性能情況的一項檢測工作。例如,網頁打開速度的測試,網站安全的測試(服務器安全、腳本安全)等。
(2)網站上傳
網頁制作完成后,最終要上傳到Web服務器上,網頁才具備訪問功能。在網頁上傳之前首先要申請域名和購買空間(免費空間不用購買),然后使用相應的工具上傳即可。上傳網站的工具有很多,可以運用FTP軟件上傳(例如Flash FXP),也可運用Dreamweaver自帶的站點管理上傳文件。
(3)網站推廣
當網站上傳發布后,還要不斷對其進行推廣宣傳,以提高網站的訪問率和知名度。推廣網站的方法有很多,例如,到搜索引擎上注冊、與其他網站交換鏈接、加入廣告鏈接等。
(4) 網站維護
網站只有經常注意更新與維護保持內容的新鮮感,才能持續吸引訪問者。網站維護階段的主要工作是更新網站內容、確保網站的正常運行以及歷史文件的歸類等。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。