freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

藥品進(jìn)銷存管理系統(tǒng)—畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-01-08 15:21 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 Java 的程序員也能編寫出功能完善的 JSP 應(yīng)用。 如今, Java 2 Enterprise Edition(J2EE)平臺(tái)已經(jīng)日趨成熟,并得到廣泛應(yīng)用。在 J2EE 技術(shù)中發(fā)展最迅猛的當(dāng)屬 Java Server Page(JSP)技術(shù)。幾乎所有的基于 Java 的 Web 應(yīng)用都使用 JSP。一些免費(fèi)的、開(kāi)放源 代碼的 JSP/Servlet 容器,如 Apache 軟件組織的 Tomcat,更進(jìn)一步推動(dòng)了 JSP技術(shù)的發(fā)展。本系統(tǒng)的 Web 服務(wù)器選用的就是 Apache Tomcat 。 隨著 JSP 技術(shù)的成熟,越來(lái)越多的開(kāi)發(fā)人員開(kāi)始使用 Web 應(yīng)用框架??蚣転?Web 應(yīng)用提供了預(yù)備的軟件架構(gòu)和相關(guān)的軟件包,它大大提高了開(kāi)發(fā) Web 的速度和效率?,F(xiàn)在,當(dāng)開(kāi)發(fā)人員開(kāi)始一個(gè)新的項(xiàng)目時(shí),他們首先考慮的問(wèn)題不是“我們是否需要框架”,而是“我們應(yīng)該使用什么樣的框架”。 JakartaStruts 是 Apache 軟件組織提供的一項(xiàng)開(kāi)放源代碼的 項(xiàng)目,它為 Java Web 應(yīng)用提供了模型 視圖 控制器( ModelViewController, MVC)框架,尤其適用于開(kāi)發(fā)大型可擴(kuò)展的 Web 應(yīng)用。 Struts 這個(gè)名字來(lái)源于在建筑和舊式飛機(jī)中使用的支撐金屬架。 Struts 為 Web 應(yīng)用提供了一個(gè)通用的框架,使得開(kāi)發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上。此外, Struts 框架提供了許多可供擴(kuò)展和定制的地方,使得應(yīng)用程序可以方便的擴(kuò)展框架,來(lái)更好的適應(yīng)用戶的實(shí)際需求。 當(dāng)然,開(kāi)發(fā)人員需要花一定的時(shí)間來(lái)學(xué)習(xí)和運(yùn)用該框架。不過(guò),一旦掌握了 Struts,就可 以大大簡(jiǎn)化 Web 應(yīng)用的開(kāi)發(fā)過(guò)程,提高開(kāi)發(fā)效率,縮短開(kāi)發(fā)周期。如果想綜合利用 Servlet 和 JSP 的優(yōu)點(diǎn)來(lái)建立可擴(kuò)展的Web 應(yīng)用, Struts 是不錯(cuò)的選擇。 Struts 為 Java Web 應(yīng)用提供了現(xiàn)成的通用的框架。 Struts 可以大大提高 Web 應(yīng)用的開(kāi)發(fā)速度。如果沒(méi)有 Struts,開(kāi)發(fā)人員將不得不首先花大量的時(shí)間和精力來(lái)設(shè)計(jì)、開(kāi)發(fā)自己的框架。如果在 Web 應(yīng)用中恰到好處的使用 Struts,將把從頭設(shè)計(jì)框架的時(shí)間節(jié)省下來(lái),使得開(kāi)發(fā)人員把精力集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上。 而且 Struts 本身是一群經(jīng)驗(yàn)豐富的 Web開(kāi)發(fā)專家的集體智慧結(jié)晶,在全世界范圍內(nèi)得到廣泛應(yīng)用并等到一致認(rèn)可。 Struts 框架提供了許多可擴(kuò)展和定制的地方,使得應(yīng)用程序可以方便的擴(kuò)展框架,來(lái)更好的適應(yīng)用戶的實(shí)際需求。 Java Web 應(yīng)用的核心技術(shù)是 Java Server Page 和 Servlet。此外,開(kāi)發(fā)一個(gè)完整的 Java Web 應(yīng)用還涉及以下概念及技術(shù): ? JavaBean 組件 ? EJB 組件 ? 自定義 JSP 標(biāo)簽 ? XML ? Web 服務(wù)器和應(yīng)用服務(wù)器 圖 11 顯示了 Java Web 應(yīng)用的結(jié)構(gòu)。 MVC 概述 MVC 是 ModelViewController 的簡(jiǎn)稱,即模型 視圖 控制器。 MVC是 Xerox PARC 在 20 世紀(jì) 80 年代為編程語(yǔ)言 Smalltalk80 發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用,最近幾年被推薦為 Sun 公司 J2EE 平臺(tái)的設(shè)計(jì)模式,受到越來(lái)越多的 Web 開(kāi)發(fā)者的歡迎。 MVC 是一種設(shè)計(jì)模式,它強(qiáng)制地把應(yīng)用程序的輸入、處理和輸出分開(kāi)。 MVC 把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖和控制器,它們分別擔(dān)負(fù)不同的任務(wù)。 盡管構(gòu)造 MVC 應(yīng)用程序需要一些額外的工 作,但是它給我們帶來(lái)的好處是毋庸質(zhì)疑的。 首先,多個(gè)試圖能共享一個(gè)模型。在 MVC 設(shè)計(jì)模式中,模型響應(yīng)用戶請(qǐng)求并返回響應(yīng)數(shù)據(jù),視圖負(fù)責(zé)格式化數(shù)據(jù)并把它們呈現(xiàn)給用戶,業(yè)務(wù)邏輯和表示層分離,同一個(gè)模型可以被不同的視圖重用,所以大大提高了代碼的可重用性。 JSP 自定義標(biāo)簽庫(kù) XML 視圖 (View) 控制器 (Controller) XML 配置文件 Servlet 模型 (Model) JavaBean EJB Java實(shí)用類 Web 服務(wù)器以及 應(yīng)用服務(wù)器 圖 11 Java Web 應(yīng)用的結(jié)構(gòu) 其次,模型是自包含的,與控制器和視圖保持相對(duì)獨(dú)立,所以可以方便地改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。由于 MVC 的三個(gè)模塊相對(duì)獨(dú)立,改變其中一個(gè)不會(huì)影響其他兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的松耦合的構(gòu)件。 此外,控制器提高了應(yīng)用程序的靈活性和可配置性。給定一些可重用 的模型和視圖,控制器可以根據(jù)用戶的需求選擇適當(dāng)?shù)哪P瓦M(jìn)行處理,然后選擇適當(dāng)?shù)囊晥D將處理結(jié)果顯示給用戶。圖 12 顯示了 MVC 設(shè)計(jì)模式: Struts 實(shí)現(xiàn) MVC的機(jī)制 及業(yè)務(wù)流程 Struts 實(shí)質(zhì)上就是在 JSP Model2 的基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC 框架。在 Struts 框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的 JavaBean 或 EJB 組件構(gòu)成,控制器由 ActionServlet 和 Action 來(lái)實(shí)現(xiàn),視圖由一組 JSP 文件構(gòu)成。圖 14顯示了 JSP Model2 的 基本結(jié)構(gòu),圖 13 顯示了 Struts 實(shí)現(xiàn)的 MVC 框架。 (控制器) 接受用戶請(qǐng)求 調(diào)用模型響應(yīng)用戶請(qǐng)求 選擇視圖顯示響應(yīng)結(jié)果 (視圖) 顯示模型狀態(tài) 接受數(shù)據(jù)更新請(qǐng)求 把用戶輸入的數(shù)據(jù)傳 給控制器 (模型) 代表應(yīng)用程序狀態(tài) 響應(yīng)狀態(tài)查詢 處理業(yè)務(wù)流程 通知視圖業(yè)務(wù)狀態(tài)更新 方法調(diào)用 事件 用戶請(qǐng)求 狀態(tài)查詢 通知數(shù)據(jù)更新 業(yè)務(wù)處理 選擇視圖 圖 12 MVC 設(shè)計(jì)模式 對(duì)于采用 Struts 框架的 Web 應(yīng)用,在 Web 應(yīng)用啟動(dòng)時(shí)就會(huì)加載并初始化 ActionSeverlet,Actionlet 從 文件中讀取配置信息,把它們存放到各種配置對(duì)象中,例如 Action 的映射信息存放在 ActionMapping 對(duì)象中。 當(dāng) ActionSeverlet 接收到一個(gè)客戶請(qǐng)求時(shí),將執(zhí)行如下 流程。 1) 檢索和用戶請(qǐng)求匹配的 ActionMapping 實(shí)例,如果不存在,就返 瀏覽器 (模型) JavaBean EJB Servlet/JSP 容器 (控制器) ActionServlet (視圖) JSP Web 服務(wù)器 Action Action Action 圖 13 Struts 實(shí)現(xiàn)的 MVC 框架 瀏 覽 器 (控制器) Servlet (視圖 ) JSP (模型) JavaBean 4 3 5 應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù) Web 服務(wù)器 圖 14 JSP Model2 回用戶請(qǐng)求路徑無(wú)效的信息。 2) 如果 ActionForm實(shí)例不存在,就創(chuàng)建一個(gè) ActionForm對(duì)象,把客戶提交的表單數(shù)據(jù)保存到 ActionForm對(duì)象中。 3) 根據(jù)配置信息決定是否需要表單驗(yàn)證。如果需要表單驗(yàn)證。就調(diào)用 ActionForm的 validate()方法。 4) 如果 ActionForm 的 validate()方法返回 null 或返回一個(gè)不包含Actionmessage 的 ActionErroe 對(duì)象 , 就表示表單驗(yàn)證成功。 5) ActionServlet 根據(jù) ActionMapping 實(shí)例包含的映射信息決定將請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè) Action。如果相應(yīng)的 Action 實(shí)例不存在,就先創(chuàng)建這個(gè)實(shí)例,然后調(diào)用 Action 的 execute()方法。 6) Action 的 execute() 方 法 返 回 一 個(gè) ActionForward 對(duì)象,ActionSevelet 再把客戶請(qǐng)求轉(zhuǎn)發(fā)給 ActionForward 對(duì)象指向的JSP 組件。 7) ActionForward 對(duì)象指向的 JSP 組件生成動(dòng)態(tài)網(wǎng)頁(yè),返回給客戶。 對(duì)于以上流程的流程( 4),如果 ActionForm的 validate()方法 返回一個(gè)包含一個(gè)或多個(gè) ActionMessage 的 ActionErrors 對(duì)象,就表示表單驗(yàn)證失敗,此時(shí) ActionServlet 將直接把請(qǐng)求轉(zhuǎn)發(fā)給包含用戶提交表單的 JSP組件。在這種情況下,不會(huì)再創(chuàng)建 Action 對(duì)象并調(diào)用 Action 的 execute()方法。 圖 15 顯示了 Struts 響應(yīng)用戶請(qǐng)求的工作流程 組件 Servlet 在 Web 應(yīng)用中擔(dān)任重要角色。 Servlet 運(yùn)行于 Servlet 容器中,可以被 Servlet 容器 動(dòng)態(tài)加載,來(lái)擴(kuò)展服務(wù)器的功能,并提供特定的服務(wù)。Servlet 按照請(qǐng)求 /響應(yīng)的方式工作,在 Struts 框架中,控制器組件就是由Servlet 來(lái)構(gòu)成的。 當(dāng)用戶請(qǐng)求訪問(wèn)某個(gè) Servlet 時(shí), Servlet 容器將創(chuàng)建一個(gè)ServletRequest 對(duì)象和 ServletResponse 對(duì)象。在 ServletRequest 對(duì)象中封裝了用戶請(qǐng)求信息,然后 Servlet 容器把 ServletRequest 對(duì)象和ServletResponse 對(duì)象傳給用戶所請(qǐng)求的 Servlet。 Servlst 把響應(yīng)結(jié)果寫到ServletResponse 中,然后由 Servlet 容器把響應(yīng)結(jié)果傳給用戶。圖 16 顯示了 Servlet 容器響應(yīng)用戶請(qǐng)求的過(guò)程 ActionServlet Request arrives CreateActionForm Return error CreateAction Process ActionForward Return ActionForward Perform required Business logic Execute() Return Response No Yes Yes ActionMapping found Validate no Not found Another Actionmapping 圖 15Struts 響應(yīng)用戶請(qǐng)求的工作流程 Action Business Logic 在 Java Servlet API 中有以下幾個(gè)比較重要的類,他們決定了 Web 應(yīng)用的請(qǐng)求 /響應(yīng)方式及各種共享數(shù)據(jù)的存放地點(diǎn): ? HttpServletRequest : Servlet 容器把 Http 請(qǐng)求請(qǐng)求信息保存在HttpServletRequest 對(duì)象中, Servlet 組件從 request 對(duì)象讀取用戶的請(qǐng)求數(shù)據(jù)。此外, HttpServletRequest 可也存放 request 范圍內(nèi)的共享數(shù)據(jù)。 ? HttpServletResponse:用于生成 HTTP 響應(yīng)結(jié)果。 ? HttpSession: Servlet 為每個(gè) HTTP 會(huì)話創(chuàng)建一個(gè) HttpSession 實(shí)例,HttpSession 可以存放 session 范圍內(nèi)的共享數(shù)據(jù)。 ? ServletContext: Servlet 容器為 Web 應(yīng)用創(chuàng)建一個(gè) ServletContext 實(shí)例,ServletContext 可以存放 Application 范圍內(nèi)的共享數(shù)據(jù)。 JSP 組件 在傳統(tǒng)的 HTML 文件( *.htm,*.html)中加入 Java 程序片段( Scriptlet)和 JSP 標(biāo)簽,就構(gòu)成了 JSP 網(wǎng)頁(yè)。 Java 程序片段可以操縱數(shù)據(jù)庫(kù)、重定向網(wǎng)頁(yè)以及發(fā)送 Email 等,實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給用戶端的僅為輸出結(jié)果。 JSP 技術(shù)大大降低了對(duì)用戶瀏覽器的要求,即使用戶瀏覽器端部支持 java,也可以訪問(wèn) JSP 網(wǎng)頁(yè)。 當(dāng) JSP 容器接收到 Web 用戶的一個(gè) JSP 文件請(qǐng)求時(shí),它對(duì) JSP 文件進(jìn)行語(yǔ)法分析并生成 Java Servlet 源文件,然后對(duì)其編譯。一般情況下,Servlet 源 文件的生成和編譯僅在初次調(diào)用 JSP 時(shí)發(fā)生。如果原始的 JSP文件被更新, JSP 容器將檢測(cè)所做的更新,在執(zhí)行它之前重新生成 Servlet并進(jìn)行編譯。圖 17 顯示了 JSP 容器初次執(zhí)行 JSP 的過(guò)程: Web 用戶 Servlet 容器 Servlet 請(qǐng)求 響應(yīng) ServletRequest 對(duì)象 ServletResponse 對(duì)象 圖 16 Servlet 容器響應(yīng)用戶請(qǐng)求的過(guò)程 盡管 JSP 本質(zhì)上就是 Servlet,但這兩者的創(chuàng)建方式不一樣。 Servlet完全由 Java 程序代碼構(gòu)成,擅長(zhǎng)于流程控制和事務(wù)處理,而通過(guò) Servlet生成的動(dòng)態(tài)網(wǎng)頁(yè)很不直觀; JSP 由 HTML 代碼和 JSP 標(biāo)簽組成,可以方便的編寫動(dòng)態(tài)網(wǎng)頁(yè)。因此在實(shí)際應(yīng)用中,采用 Servlet 來(lái)控制業(yè)務(wù)流程,而采用 JSP 來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè)。在 S
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1