❶ 如何寫出訪問量很大的java web 項目
這是一個很不好回答的問題,訪問量大那麼對你這個項目的性能要求就很高,項目新能好就涉及到如下方面:
1、前期項目的設計包括設計模式。如果設計得好開發起來也相當簡單點性能也好點。
2、編碼。你代碼的邏輯關繫到你項目的性能,然後盡量少在容器、session中放一些用得不多的數據,能用request解決的盡量用request。盡量少用靜態類。
3、後期的性能優化。如hibernate優化增加緩存等。不過這種項目最好用ibatIS作為持久層。
❷ JavaWeb主要適用於哪些類型項目
對於比較簡單的小型應用,JavaWeb並沒有多大優勢,比如對於只有一個資料庫、簡單幾個表結構的博客網站,完全可以用其他更簡單的方案搞定。JavaWeb適用於需要和其他一些系統進行交互的大型Web應用,比如銀行或者保險公司的項目。
❸ Java Web應用開發中的一些概念
概念一直是學習計算機軟體開發中經常遇到的問題 也是軟體行業最喜歡創造的東西 很多時候 學習計算機軟體開發遇到困難都是因為對某些概念的不理解 而不是因為技術本身有多麼復雜 Java Web作為Java EE技術體系的一部分 應該是目前所有Web開發技術中最復雜的一種 很多初學者 或者是從ASP PHP轉移過來的開發者都會遇到概念方面的困難
其實很多概念都是非產簡單的 只是因為廠家為了宣傳需要 將概念復雜化 學術化 導致學習者覺得這些概念非常深奧 難以理解 在這里 我們首先去澄清Java Web開發中幾個常用的基本概念 當然理解這些概念的前提是需要你具備一定的計算機系統 面向對象等方面基礎知識
Web容器
所有的程序運行都需要有一個必要的運行環境 這個環境可以是軟體 也可以是硬體 或者是軟體和硬體的結合 比如說Windows操作系統需要運行在硬體基礎上 Office軟體需要運行在操作系統上 並且程序與運行環境之間會有一定的數據交換 比如操作系統會將運行指令傳遞給硬體 硬體也會將指令運行結果傳遞給操作系統 Java Web程序也需要一個運行環境才能夠執行 這種運行Java Web程序的環境被稱為Web容器 Java Web程序與Web容器之間存在數據交互 目前主要存在兩種類型的Java Web容器 一種是獨立的Java Web容器 在這種容器裡面只能運行Web程序 這種容器一般也叫做Web伺服器 如Tomcat等 另一種是與其他Java EE容器混合在一起的Web容器 Web容器負責運行Web程序 其他容器負責運行EJB等程序 如WebLogic等
當用戶通過瀏覽器等Web客戶端軟體向伺服器發出一個請求之後 首先接收到這個請求的是Web容器 Web容器會將請求信息封裝到一個HttpServletRequest類型的Java對象中 並將對象傳遞給Java Web程序 對於每個請求 Web容器還會創建一個HttpServletResponse類型對象 該對象的作用是用來保存需要返回到瀏覽器等客戶端的內容 Java Web程序可以從HttpServletRequest提取用戶發出的請求信息 進行適當的處理之後 將處理結果放置到HttpServletResponse中 然或由Web容器解析HttpServletResponse對象內容 並將解析結果以瀏覽器能夠識別的HTML等格式返回給瀏覽器等客戶端 在這個過程中 HttpServletRequest和HttpServletResponse就如同兩條渡船 負責在Web容器和Java Web程序之間傳遞信息 需要注意的是 這兩個對象僅存在於Web容器和Java Web程序當中 與瀏覽器沒有關系 下圖是這個過程的示意圖
Web應用
Web應用 可以認為是Web程序的另一個名稱 缺的的定義就是運行在Web容器當中的 能夠完成完整功能的應用程序 Java Web應用由一系列編譯之後的Java類 靜態圖片 靜態HTML文件 配置文件等構成 通過Java Web應用可以就收用戶的輸入和請求 並對請求信息進行加工處理 訪問資料庫 對用戶的請求給出回應 開發Java Web應用程序處理需要遵守Web應用的一些特殊規范要求以外 與開發其他類型的應用程序並沒有本質區別 目前Web應用主要有兩種類型 一種是以展示為目的的Web應用 這種應用會以HTML等標記文本或者瀏覽器所能識別的媒體格式最為請求返回內容 用戶可以通過瀏覽器等客戶端操作這類應用 另一類是以服務為目的的Web應用 這類應用不提供圖形操作界面 只提供方法調用結構 比如Web服務 該類應用一般只能被其他應用程序調用和訪問
Web元件
Web元件是構成Web應用 能夠對來自瀏覽器等客戶端請求做出回應的基本單元 在Java Web應用中 所提供的Web元件有Servlet JavaServer Pages(JSP) JavaServer Faces(JSF)等 另外還可以使用其他類型Web應用同樣使用的內容 比如HTML文件 靜態圖片等 事實上Java Web只提供了一種Web元件元件 就是Servlet JSP JSF等都是基於Servlet的衍生技術 Servlet實質就是一個有特殊繼承關系要求的Java類 理解Servlet就基本上完全理解Java Web技術了
Web模塊
在Java EE技術體系中 除了Java Web以外 還包括EJB等其他技術 每個技術體系會運行在各自的容器當中 不同的部分組合在一起構成完整的Java EE應用 每個部分根據自己的特點被稱為Java Web模塊或者EJB模塊 之所以把他們稱為模塊 是因為希望Java EE應用不同部分能像積木一樣組合出更大 更復雜的應用出來 並且每個部分保證其獨立性 不同的模塊都有自己特定的目錄結構要求 Java Web模塊的目錄結構要求如下
◆應用文檔根目錄 改目錄是Java Web模塊的最上層目錄 組成Web模塊的所有Web元件以及配置文件等都包含在該目錄或者子目錄下 在改目錄下可以直接存放HTML文件 圖片文件等
◆WEB INF目錄 改目錄位於應用文檔根目錄下 用來保存那些不希望被瀏覽器等客戶端訪問的文件 比如發布描述文件 編譯之後的類文件 因為這些文件是由由Web容器進行解釋或者執行的 瀏覽器不可以直接看到這些文件 只能看到這些文件的執行結果
◆web xml文件 該文件位於WEB INF目錄下 是Web應用的部署描述文件 用來與定義Web應用運行相關的信息 比如執行邏輯 Servlet等Web元件的訪問路徑等 改文件的格式必須符合所使用的Servlet版本的規格要求
◆classes目錄 該目錄位於WEB INF目錄下 用來保存編譯之後的Java類文件 比如Servlet 輔助類 其他業務處理類等
◆tags目錄 該目錄位於WEB INF目錄下 用來保存那些標簽庫的標簽描述文件
◆lib目錄 該目錄位於WEB INF目錄下 用來保存Web應用運行所依賴的 經過打包之後的Java類文件 打包格式一般是 jar格式
對於Java Web模塊目錄中WEB INF web xml classes tags lib這些內容以外 用戶可以根據自己的需要在Web應用文檔根目錄下創建其他目錄 比如可以為圖片 不同用途的HTML或者JSP單獨創建目錄 還可以為不用的Java類在classes下創建包目錄 如果在你的Web應用中沒有使用到Servlet 過濾器 監聽器等Java Web元件 可以沒有web xml文件 如果沒有使用到標簽 則可以沒有tags目錄
Web模塊的發布工作 可以直接以目錄的形式發布 也可以打包成jar格式文件進行發布 因為用途和內容的特殊性 打包文件的擴展名會採用 war而不是 jar 另外如果不是發布到獨立的Web伺服器上 而是發布到與其他Java EE一起使用的企業應用伺服器上 還需要編寫一個與企業應用伺服器相關的配置文件 這個文件對於不同的企業應用伺服器也不同 比如發布到glassfish伺服器上 需要編寫的文件時sun web xml
lishixin/Article/program/Java/hx/201311/26761
❹ 如何利用Java開發高性能,高並發Web應用
太寬泛了,沒有具體到點,也只能講的寬一點。
首先要有錢,高性能高並發,程序並不是最終決定性能的,硬體才是,什麼樣的硬體才好,很明顯了,你不會指望用小霸王學習機來跑淘寶吧。
良好的異常處理機制,這里指的並不是程序上的,而是硬體和突發事件人為處理的反應機制,比如地震把你們的某個機房幹掉了。
高性能的負載均衡方案,如nginx,LVS等。
良好的架構解決方案,比如消息匯流排的搭建,共享緩存的搭建,共享session的搭建,共享計時器的搭建等。
優秀的單體運行效率,這個才是程序的,要求程序運行效率高,漏洞少。
❺ 如何利用Java開發高性能高並發Web應用.ppt
1、提供HTML靜態訪問
web界面上最快的訪問速度是什麼?當然是最原始的HTML文件訪問,對於其他語言 比如 jsp ,asp,php等等,他們首先要通過伺服器解析成html之後在返回給訪問者,如果我們能提供全部是htm來的頁面,那麼就能大大的降低伺服器和資料庫資源的利用和提高網站的並發,所以我們盡可能使我們的網站上的頁面採用靜態頁面來實現,這個最簡單的方法其實也是最有效的方法。當然實現這種方式大家比較了解的就是信息發布系統CMS,信息發布系統可以實現最簡單的信息錄入自動生成靜態頁面,還能具備頻道管理、許可權管理、自動抓取等功能,對於一個大型網站來說,擁有一套高效、可管理的CMS是必不可少的。
在後續的文章中我們會單獨的使用jsp + servlet實現一個簡單的信息發布系統.
2、使用獨立的圖片伺服器
為什麼要把圖片單獨設置一個伺服器?對於Web伺服器來說,圖片消耗的伺服器資源是最多的,如果能把所有的圖片資源放到一個單獨的圖片伺服器中進行處理的話,可以降低提供頁面訪問請求的伺服器系統壓力,從而能進一步的提高web程序的並發.所以在有條件的情況下最好能把圖片放置到一個單獨的伺服器中.
3、配置多台資料庫伺服器,多個資料庫集群
集群(Cluster)技術是使用特定的連接方式,將價格相對較低的硬體設備結合起來,同時也能提供高性能相當的任務處理能力。
越是大型高並發的應用,資料庫的壓力就會越大,如果資料庫操作很頻繁,資料庫的瓶頸很快就能顯現出來,這時一台資料庫將很快無法滿足應用,於是我們需要使用資料庫集群。
資料庫集群就是使用多個資料庫伺服器分擔請求的壓力,達到快速響應的目的.
4、使用緩存
所謂的緩存就是把數據咱是放置到內存中,前台在請求的時候直接從內存中讀取數據,而不需要去查詢資料庫或者讀取文件等,這樣就能做到最快的響應。網站架構和網站開發中的緩存是非常重要的。
目前有很多開源的緩沖實現方案,APC,File,SQLite,Memcache等等各種類庫實現著不同的緩存方式,只有通過了解他們的實現方式,根據具體應用具體選擇,才會使緩存系統發揮出最大的性能。
對於java開發來說,大名頂頂的 分布式緩存系統Memcache 可能是最好的選擇,他提供一個基於Socket的訪問方式,使得該緩存系統支持遠程讀寫訪問。盡管這個緩存的內容可能是存在內存中,也可能是存在文件內。