這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 網頁前端 » javawebhttp請求框架
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javawebhttp請求框架

發布時間: 2022-10-09 16:08:17

A. java web數據介面一般用什麼框架和技術來實現

介面開發不論通過java什麼技術,只要提供了基於java servlet的實現,通過http協議調用服務端介面返回數據即可。

也可以通過java webservice的方式調用。

B. java的框架有哪些啊

struts
Struts最早是作為Apache Jakarta項目的組成部分問世運作。項目的創立者希望通過對該項目的研究,改進和提高Java Server Pages、Servlet、標簽庫以及面向對象的技術水準。

Struts這個名字來源於在建築和舊式飛機中使用的支持金屬架。它的目的是為了減少在運用MVC設計模型來開發Web應用的時間。你仍然需要學習和應用該架構,不過它將可以完成其中一些繁重的工作。

Struts跟Tomcat、Turbine等諸多Apache項目一樣,是開源軟體,這是它的一大優點,使開發者能更深入的了解其內部實現機制。

除此之外,Struts的優點主要集中體現在兩個方面:Taglib和頁面導航。Taglib是Struts的標記庫,靈活動用,能大大提高開發效率。另外,就目前國內的JSP開發者而言,除了使用JSP自帶的常用標記外,很少開發自己的標記,或許Struts是一個很好的起點。

關於頁面導航,我認為那將是今後的一個發展方向,事實上,這樣做,使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對於後期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。

MVC即Model-View-Controller的縮寫,是一種常用的設計模式。MVC 減弱了業務邏輯介面和數據介面之間的耦合,以及讓視圖層更富於變化。Struts 是MVC的一種實現,它將 Servlet和 JSP 標記(屬於 J2EE 規范)用作實現的一部分。Struts繼承了MVC的各項特性,並根據J2EE的特點,做了相應的變化與擴展。Struts的工作原理,如圖所示:

Struts框架
struts框架具有組件的模塊化,靈活性和重用性的優點,同時簡化了基於MVC的web應用程序的開發。
本章詳細討論struts架構。我們將看到struts是如何清晰地區分控制,事務邏輯和外觀,從而簡化了開發應用程序過程的。我們還將介紹struts提供的類如何使得開發工作更加簡單,這些類包括:
 控製程序流程的類
 實現和執行程序事務邏輯的類
 自定義的標記庫使得創建和驗證HTML表單更加容易
1. Struts壓縮包內容
文件夾jakarta-struts-1.0.2包含兩個目錄,lib和webapps。在lib目錄中有使用struts創建應用程序是所需的文件:
文件 描述
jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API類。如果我們要使用struts提供的數據資源,就需要將這個文件拷貝到WEB-INF\lib下
Struts.jar 包含struts中所有的java類。同樣也需要拷貝到WEB-INF\lib下
*.tld 標記庫描述器文件,描述了多個struts標記庫中的自定義標記。同樣要拷貝到WEB-INF\lib下
在webapps目錄下有如下文件:
Web應用程序 描述
Struts-blank.war 一個簡單的web應用程序
Struts-documentation.war 包含struts站點上所有struts文檔
Struts-example.war Struts很多特性的示範
Struts-exercisetaglib.war 主要用於對自定義標簽庫進行增加而使用的測試頁,但也可以示範如何使用struts標記
Struts-template.war 包含struts模板標記的介紹和範例
Struts-upload.war 一個簡單的例子,示範如何使用struts框架上傳文件
2.Struts體系結構
讓我們從MVC角度觀察struts框架中的組件
框架中三個部分:模型,視窗和控制器。
模型
在struts框架中,模型分為兩個部分:
 系統的內部狀態
 可以改變狀態的操作(事務邏輯)
內部狀態通常由一組ActinForm JavaBean表示。根據設計或應用程序復雜度的不同,這些Bean可以是自包含的並具有持續的狀態,或只在需要時才獲得數據(從某個資料庫)。
大型應用程序通常在方法內部封裝事務邏輯(操作),這些方法可以被擁有狀態信息的bean調用。比如購物車bean,它擁有用戶購買商品的信息,可能還有checkOut()方法用來檢查用戶的信用卡,並向倉庫發定貨信息。
小型程序中,操作可能會被內嵌在Action類,它是struts框架中控制器角色的一部分。當邏輯簡單時這個方法很適合。
建議用戶將事務邏輯(要做什麼)與Action類所扮演的角色(決定做什麼)分開。
視窗
由JSP建立,struts包含擴展自定義標簽庫,可以簡化創建完全國際化用戶界面的過程。
控制器
struts中,基本的控制器組件是ActionServlet類中的實例servelt,實際使用的servlet在配置文件中由一組映射(由ActionMapping類進行描述)進行定義。
3.Struts框架中的組件

(由於ROSE工具還未能下載,只能找來這幅圖,它說明了一定問題,特別是ActionErrors,但它並沒有將ActionMapping,JSP和Tag Library包含進來,有時間作完替換)
框架中所使用的組件:
ActionServlet 控制器
ActionClass 包含事務邏輯
ActionForm 顯示模塊數據
ActionMapping 幫助控制器將請求映射到操作
ActionForward 用來指示操作轉移的對象
ActionError 用來存儲和回收錯誤
Struts標記庫 可以減輕開發顯示層次的工作
下面我們看看各自在框架中所扮演的角色和責任。
3.1 Struts配置文件
這是將struts組件結合在一起的東東:struts-config.xml。默認值
\WEB-INF\struts-config.xml。配置文件可以定義:
 全局轉發
 ActionMapping類 幫助控制器將請求映射到操作
 ActionForm bean 顯示模塊數據
 JDBC數據源
配置全局轉發
全局轉發用來在JSP頁之間創建邏輯名稱映射。轉發都可以通過對調用操作映射的實例來獲得,例如:
actionMappingInstace.findForward(「logicalName」);
全局轉發的例子:(所有的例子我沒有進行解釋,一是結合表可以理解,二是例子大部分來自系列四的示例,你應該在作完實驗後,再來看一遍)
<global-forwards>
<forward name="bookCreated" path="/BookView.jsp"/>
</global-forwards>
屬性 描述
Name 全局轉發的名字
Path 與目標URL的相對路徑

配置ActionMapping
ActionMapping對象幫助進行框架內部的流程式控制制,它們可將請求URI映射到Action類,並且將Action類與ActionForm bean相關聯。ActionServlet在內部使用這些映射,並將控制轉移到特定Action類的實例。所有Action類使用perform()方法實現特定應用程序代碼,返回一個ActionForward對象,其中包括響應轉發的目標資源名稱。例如:
<action-mappings>
<action path="/createBook"
type="BookAction"
name="bookForm"
scope="request"
input="/CreateBook.jsp">
</action>
<forward name=」failure」 path=」/CreateBook.jsp」/>
<forward name=」cancel」 path=」/index.jsp」/>
</action-mappings>
屬性 描述
Path Action類的相對路徑
Name 與本操作關聯的Action bean的名稱
Type 連接到本映射的Action類的全稱(可有包名)
Scope ActionForm bean的作用域(請求或會話)
Prefix 用來匹配請求參數與bean屬性的前綴
Suffix 用來匹配請求參數與bean屬性的後綴
attribute 作用域名稱。
className ActionMapping對象的類的完全限定名默認的類是org.apache.struts.action.ActionMapping
input 輸入表單的路徑,指向bean發生輸入錯誤必須返回的控制
unknown 設為true,操作將被作為所有沒有定義的ActionMapping的URI的默認操作
validate 設置為true,則在調用Action對象上的perform()方法前,ActionServlet將調用ActionForm bean的validate()方法來進行輸入檢查
通過<forward>元素,可以定義資源的邏輯名稱,該資源是Action類的響應要轉發的目標。
屬性 描述
Id ID
ClassName ActionForward類的完全限定名,默認是org.apache.struts.action.ActionForward
Name 操作類訪問ActionForward時所用的邏輯名
Path 響應轉發的目標資源的路徑
redirect 若設置為true,則ActionServlet使用sendRedirect()方法來轉發資源

配置ActionForm Bean
ActionServlet使用ActionForm來保存請求的參數,這些bean的屬性名稱與HTTP請求參數中的名稱相對應,控制器將請求參數傳遞到ActionForm bean的實例,然後將這個實例傳送到Action類。例子:
<form-beans>
<form-bean name="bookForm" type="BookForm"/>
</form-beans>
屬性 描述
Id ID
className ActionForm bean的完全限定名,默認值是org.apache.struts.action.ActionFormBean
Name 表單bean在相關作用域的名稱,這個屬性用來將bean與ActionMapping進行關聯
Type 類的完全限定名

配置JDBC數據源
用<data-sources>元素可以定義多個數據源。
屬性 描述
Id ID
Key Action類使用這個名稱來尋找連接
Type 實現JDBC介面的類的名稱
下面屬性需要<set-property>元素定義,在框架1.1版本中已不在使用,但你可用<data-source>元素。例子:
<data-sources>
<data-source id=」DS1」
key=」conPool」
type=」org.apache.struts.util.GenericDataSource」
<set-property id=」SP1」
autoCommit="true"
description="Example Data Source Configuration"
driverClass="org.test.mm.mysql.Driver"
maxCount="4"
minCount="2"
url="jdbc:mysql://localhost/test"
user="struts"
password="wrox" />
<data-source/>
</data-sources>
屬性 描述
desciption 數據源的描述
autoCommit 數據源創建的連接所使用的默認自動更新資料庫模式
driverClass 數據源所使用的類,用來顯示JDBC驅動程序介面
loginTimeout 資料庫登陸時間的限制,以秒為單位
maxCount 最多能建立的連接數目
minCount 要創建的最少連接數目
password 資料庫訪問的密碼
readOnly 創建只讀的連接
User 訪問資料庫的用戶名
url JDBC的URL
通過指定關鍵字名稱,Action類可以訪問數據源,比如:
javax.sql.DataSource ds = servlet.findDataSource(「conPool」);
javax.sql.Connection con = ds.getConnection();

3.2 ActionServlet類
框架中的控制器組件是有org.apache.struts.action.ActionServlet類實現的,這個類是javax.servlet.http.HttpServlet類的擴展。
Struts controller基本功能是:
1. 截獲用戶的Http請求
2. 把這個請求映射到相應的Action類,如果這是此類收到的第一個請求,將初始化實例並緩存
3. 創建或發現一個ActionForm bean實例(看配置文件是否定義),然後將請求過程移植到bean.
4. 調用Action實例的perform()方法並將ActioForm bean,Action Mapping對象,request和response對象傳給它。
如:public ActionForword perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
5.perform返回一個ActionForword對象,此對象連接到相應的jsp頁面.
ActionServlet配置
我們需要在web.xml中聲明ActionServlet,並且將它配置成啟動時進行載入。以下為可以配置的初始化參數:
參數 默認值 描述
application null 應用程序的資源集合的類
bufferSize 4096 文件上傳的緩沖區大小
config /WEB-INF/struts-config.xml 配置文件的位置和名稱
content Text/html 默認的內容類型
debug 0 程序調試的級別
detail 0 程序調試細節的級別
factory null 消息資源工廠,用於國際化中解釋消息資源
formBean org.apache.struts.action.ActionFormBean 封裝ActionForm bean信息的類的名稱
forward org.apache.struts.action.ActionForward 封裝ActionForward對象信息的類的名稱
locale true 為true,將在用戶會話中存儲一個本地對象
mapping org.apache.struts.action.ActionForward 封裝ActionMapping信息的類的名稱
maxFileSize 250M 上傳文件的最大尺寸
multipartClass org.apache.struts.action.ActionForward 處理多部分請求的類的名稱
noCache False HTTP標頭是否要設置為禁止緩寸
Null True 設置為true,對於無效的信息關鍵字將返回null
tempDir 作為一個servlet參數提供給程序的工作目錄 處理下載文件是使用的臨時工作目錄
validate True 是否使用新格式的配置文件
vallidating True 是否對配置文件進行有效性分析
大多數情況下,標準的servlet就能夠滿足用戶需要。
第一次收到特定請求的URI時,ActionServlet將適當的Action類進行實例化,然後ActionServlet在Action類實例中以servlet為變數名存儲一個引用。當被實例化後,Action類會被暫存以備再用。
ActionServlet也提供一些方法,由Action類用來訪問數據源和轉發目標之類的資源。
ActionServlet方法
ActinServlet提供了一組能夠被Action對象使用的方法。
Struts API的全部信息在struts-documentation.war中可以找到。動態的添加或刪除,這些方法隻影響應用程序當前的實例:
public void addFormBean(ActionFormBean formBean)
public void removeFormBean(ActionFormBean formBean)
public void addForward(ActionForward actionForward)
public void removeForward(ActionForward actionForward)
public void addMapping(ActionMapping actionMapping)
public void removeMapping(ActionMapping actionMapping)
根據名稱查找對象:
public ActionFormBean findFormBean(String name)
public ActionForward findForward(String name)
public ActionMapping findMapping(String name)
用來處理數據源:
public void addDataSource(String key , DataSource ds)
public DataSource findDataSource(String key)
我們還可以:
 使用destroy()方法結束ActionServlet
 使用reload()方法從struts配置文件將信息重新載入。

3.3 ActionMapping類
將特定請求映射到特定Action的相關信息存儲在ActionMapping中,ActionServelt將ActionMapping傳送到Action類的perform()方法,Action將使用ActionMapping的findForward()方法,此方法返回一個指定名稱的ActionForward,這樣Action就完成了本地轉發。若沒有找到具體的ActionForward,就返回一個null.
public ActionForward findForward(String name)
可在映射中動態添加ActionForward:
public void addForward(ActionForward forward)
可返回與映射關聯的表單bean:
public String getName()
可返回映射的屬性域(會話或請求)
public String getScope()

3.4 Action類
Action類真正實現應用程序的事務邏輯,它們負責處理請求。在收到請求後,ActionServlet會:
 為這個請求選擇適當的Action
 如果需要,創建Action的一個實例
 調用Action的perform()方法
如果ActionServlet不能找到有效的映射,它會調用默認的Action類(在配置文件中定義)。如果找到了ActionServlet將適當的ActionMapping類轉發給Action,這個Action使用ActionMapping找到本地轉發,然後獲得並設置ActionMapping屬性。根據servlet的環境和被覆蓋的perform()方法的簽名,ActionServlet也會傳送ServletRequest對象或HttpServletRequest對象。
所有Action類都擴展org.apache.struts.action.Action類,並且覆蓋類中定義的某一個perform()方法。有兩個perform()方法:
處理非HTTP(一般的)請求:
public ActionForward perform(ActionMapping action,
AcionForm form,
ServletRequest request,
ServletResponse response)
throws IOException,ServletException
處理HTTP請求:
public ActionForward perform(ActionMapping action,
AcionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
Action類必須以「線程安全」的方式進行編程,因為控制器會令多個同時發生的請求共享同一個實例,相應的,在設計Action類時就需要注意以下幾點:
 不能使用實例或靜態變數存儲特定請求的狀態信息,它們會在同一個操作中共享跨越請求的全局資源
 如果要訪問的資源(如JavaBean和會話變數)在並行訪問時需要進行保護,那麼訪問就要進行同步
Action類的方法
除了perform()方法外,還有以下方法:
可以獲得或設置與請求相關聯的區域:
public Locale getLocale(HttpServletRequest request)
public void setLocale(HttpServletRequest request,Locale locale)
為應用程序獲得消息資源:
public MessageResources getResources()
檢查用戶是否點擊表單上的「取消」鍵,如果是,將返回true:
public Boolean isCancelled(HttpServletRequest request)
當應用程序發生錯誤時,Action類能夠使用下面方法存儲錯誤信息:
public void saveErrors(HttpServletRequest request,ActionErrors errors)
ActionError實例被用來存儲錯誤信息,這個方法在錯誤關鍵字下的請求屬性列表中存儲ActionError對象。通過使用在struts標記庫中定義的自定義標記,JSP頁能夠顯示這些錯誤信息,稍後我們就介紹。

3.5 ActionForm類
框架假設用戶在應用程序中為每個表單都創建了一個ActionForm bean,對於每個在struts-config.xml文件中定義的bean,框架在調用Action類的perform()方法之前會進行以下操作:
 在相關聯的關鍵字下,它檢查用於適當類的bean實例的用戶會話,如果在會話中沒有可用的bean,它就會自動創建一個新的bean並添加到用戶的會話中。
 對於請求中每個與bean屬性名稱對應的參數,Action調用相應的設置方法。
 當Action perform()被調用時,最新的ActionForm bean傳送給它,參數值就可以立即使用了。
ActionForm類擴展org.apache.struts.action.ActionForm類,程序開發人員創建的bean能夠包含額外的屬性,而且ActionServlet可能使用反射(允許從已載入的對象中回收信息)訪問它。
ActionForm類提供了另一種處理錯誤的手段,提供兩個方法:
Public ActionErrors validate(ActionMappin mapping,
ServletRequest request)
Public ActionErrors validate(ActionMappin mapping,
HttpServletRequest request)
你應該在自己的bean里覆蓋validate()方法,並在配置文件里設置<action>元素的validate為true。在ActionServlet調用Action類前,它會調用validate(),如果返回的ActionErrors不是null,則ActinForm會根據錯誤關鍵字將ActionErrors存儲在請求屬性列表中。
如果返回的不是null,而且長度大於0,則根據錯誤關鍵字將實例存儲在請求的屬性列表中,然後ActionServlet將響應轉發到配置文件<action>元素的input屬性所指向的目標。
如果需要執行特定的數據有效性檢查,最好在Action類中進行這個操作,而不是在ActionForm類中進行。
方法reset()可將bean的屬性恢復到默認值:
public void reset(ActionMapping mapping,HttpServletRequest request)
public void reset(ActionMapping mapping,ServletRequest request)
典型的ActionFrom bean只有屬性的設置與讀取方法(getXXX),而沒有實現事務邏輯的方法。只有簡單的輸入檢查邏輯,使用的目的是為了存儲用戶在相關表單中輸入的最新數據,以便可以將同一網頁進行再生,同時提供一組錯誤信息,這樣就可以讓用戶修改不正確的輸入數據。而真正對數據有效性進行檢查的是Action類或適當的事務邏輯bean。

3.6 ActionForward類
目的是控制器將Action類的處理結果轉發至目的地。
Action類獲得ActionForward實例的句柄,然後可用三種方法返回到ActionServlet,所以我們可以這樣使用findForward():
 ActionServlet根據名稱獲取一個全局轉發
 ActionMappin實例被傳送到perform()方法,並根據名稱找到一個本地轉發
另一種是調用下面的一個構造器來創建它們自己的一個實例:
public ActionForward()
public ActionForward(String path)
public ActionForward(String path,Boolean redirect)

3.7 錯誤處理
struts提供了兩個類來處理錯誤:ActionErrors和ActionError,它們都擴展org.apache.struts.action。ActionErrors保存著ActionError對象的集合,其中每一個代表了獨立的錯誤信息。每個ActionError都包含了關鍵字,能夠映射到資源文件中存儲的錯誤信息,而這個資源文件是在ActionServlet初始化參數中指定的。
ActionError類
ActionError類定義了一組重載的構造器來創建錯誤信息,第一個構造器方法使用一個字元串作為參數,例如:
ActionError error = new ActionError(「error.Invalid」);
實例error映射到應用程序資源文件中的一個錯誤消息:
error.invalid=<b>Invalid Number</b>
如果在JSP頁使用<html:error>,用戶就會看見加粗的Invalid Number。
另一種使用了java.text.MessageFormat類,可在消息中指定替換字元串,例如:
error.invalid=<b>Invalid Number</b>
創建一個錯誤消息:
ActionError error = new ActionError(『error.invalid』,new Double(-1));
JSP頁顯示:Invalild Number –1
還有獲得特定消息的錯誤關鍵字:
public String getKey()
還有獲得替換字元串數組:
public String[] getValues()

ActionError類
ActionError類從不獨立進行錯誤處理,它們總是被存儲在ActionErrors對象中。ActionErrors對象保存ActionError類的集合以及它們特定的屬性值,我們可以使用自己定義的屬性值,或是使用ActionErrors.GLOBAL_ERROR.
下面是典型Action類的perform()中錯誤處理情況:
MyForm form = (MyForm) form;
if (number == -1) {
ActionErrors errors = new ActionErrors();
ActionError error = new ActionError(「error.Invalid」,new Double(-1));
errors.add(ActionErrors.GLOBAL_ERROR,error);
saveErrors(req,errors);
String input = mapping.getInput();
Return new ActionForward(input);
}
ActionErrors有如下有用方法:
方法 描述
clear() 清除所有錯誤信息
empty() 如果ActionErrors對象是空的,它返回true
get() 返回錯誤信息。若無參數,所有信息將作為一個Iterator對象返回
properties() 返回包含屬性名稱的Iterator,這些屬性至少有一個錯誤
size() 返回錯誤的數目(整型數)

目前還有基於struts二次開發出來的功能更強大的架構
這些用eclipse開發都可以找到功能非常完善的插件
開發的"傻瓜"程度很高
但是理解起來會比較困難
一旦理解透徹 開發則得心應手

C. java課程分享Javaweb現在流行用什麼框架

說到java,很多人頭都大成了兩個,因為Java框架很多。但是比較好的方面是,這些框架都能解決特定的問題,提高開發效率、簡化我們的代碼復雜度,現在除了很多大家通用的一些主流框架外,很多公司針對自己的業務會自定義一些公司內部的框架,當然作為學習者java課程http://www.kmbdqn.com/告訴大家首先要清楚Javaweb都有哪些框架需要學習。

回答這個問題首先要看我們的項目規模,對於」體量」較小的單應用項目,和需要處理海量數據、高並發的分布式項目所學習使用的框架還是不同的。


ORM型框架,很多Javaweb程序都需要使用關系資料庫來進行數據的持久化,所以對於這種需要進行資料庫操作的框架,也就是對JDBC進行封裝的ORM框架是需要學習的,目前比較流行的是基於SQL的mybatis框架,這是一個輕量級的ORM框架,學習使用起來比較容易上手,同類型的還有Hibernate框架。


MVC型框架,MVC把程序從邏輯上分為視圖層、控制層、模型層,各層各司其職,之間是相互調用的關系而不是相互依賴的關系,這種模式能很好的適應需求的變化及軟體的升級變更。目前應用較多的MVC框架是spring MVC框架,這個框架有清晰的角色劃分,有強大而直接的配置方式,高效的綁定和驗證等很多優勢。較早的Struts2框架也是MVC框架。


Spring框架,其實Java的從業者很多都繞不開Spring ,Spring家族有很多「工具」,編程思想從面相過程到面相對象是一個巨大的進步,然而隨著程序越來越復雜,對象越來越多,高效的「管理」及應用這些對象變得越來越重要,Spring的IoC就是把對象的創建、「管理」交由Spring容器來進行,來實現控制反轉,同時提供了各種注入值(DI)的方式,大大提高和簡化了我們的工作,這就是javaweb需要學習的spring的IoC/DI;我們程序的業務比較復雜時,除了要完成核心功能外,還需要完成注入異常處理、日誌記錄、事務處理等常規功能,這些常規的操作比較耗費精力,springAOP(面向切面編程)就是解決這個問題的。


Javaweb需要學習一些前端框架,尤其是問題中提到的已經寫好了數據介面,或者是已經有了簡單的後台,前端框架jQuery是一定要學習的,如果項目基於效率考慮,需要前後端分離,可以學習vue等框架。


D. 請問JAVAWEB開發中所說的框架是什麼意思啊

這問題有點挖牆腳的意思
框架 容器 .. 不好解釋
猶豫了一會 最後還是決定復制一段文字幫助你理解
框架結構,即幀結構(Frame)網頁表現為一個頁面內的某一塊保持固定,其它部分信息可以通過滾動條上下或左右移動顯示,如左邊菜單固定,正文信息可移動,或者頂部導航和LOGO部分保持固定,其它部分上下或左右移動。我們的郵箱通常都採用框架建構。框架型網頁的另一個表現是,深層頁面的域名通常不會在URL中體現出來,即使進入深層子頁面,瀏覽器顯示出來的URL仍然是主頁的URL。
框架型網站的優越性體現在頁面的整體一致性和更新方便上。尤其對於那些大型網站而言,框架結構的使用可以使網站的維護變得相對容易。但框架對搜索引擎來說是一個很大的問題,這是由於大多數搜索引擎都無法識別框架,也沒有什麼興趣去抓取框架中的內容。此外,某些瀏覽器也不支持框架頁面。
如果網頁已經使用了框架,或出於某種原因一定要使用框架結構,則必須在代碼中使用「Noframes」標簽進行優化,把Noframe標簽看做是一個普通文本內容的主頁。在<Noframe></Noframe>區域中包含指向frame頁的鏈接以及帶有關鍵詞的描述文本,同時在框架以外的區域也出現關鍵詞文本。這樣,搜索引擎才能夠正確索引到框架內的信息。
還有一個辦法是採用iframe即內聯框架(Inner Frame)技術來避免Frame帶來的不便。所謂iframe也是框架的一種形式,它是相當於在主瀏覽器窗口中內嵌一個子窗口,內容自動打開。iframe可以嵌在網頁中的任意部分,也可以隨意定義其大小,其代碼顯示為:
<iframe src=xx width=x height=x scrolling=xx frameborder=x></iframe>」
對搜索引擎來說,iframe中的文字是可見的,也可以跟蹤到其中鏈接指向的頁面,不過與用戶所見不同的是,搜索引擎將iframe內容看成單獨的一個頁面內容,與被內嵌的頁面無關。

當今web開發的流行框架:
1.asp+access ||sql server
2.php+mysql
3.ruby on rails
4.J2EE
5.前台開發加上AJAX

E. java web非同步請求中,async什麼意思

async 是 asynchronous 就是非同步標簽。spring3之後支持@Async註解的非同步任務,和java web無關。java web中servlet3.0標准支持非同步http請求處理。現在常用的web mvc框架中個Spring MVC 3.2 M1 引入支持servlet3.0。

以下是來自 Spring 官方博客的消息:

Spring MVC 3.2 M1 將引入對非同步請求處理的支持,基於 Servlet 3.0 規范。盡管該版本還沒發布,你可以在這里看到包含的改進。
簡單預覽一下:
一個控制器方法可通過返回 Callable 來完成非同步處理:
@RequestMapping(method=RequestMethod.POST)
public Callable<String> processUpload(final MultipartFile file) {

return new Callable<String>() {
public Object call() throws Exception {
// ...
return "someView";
}
};
}
或者控制器方法返回 DeferredResult (new in Spring 3.2 M1) 來完成處理
@RequestMapping("/quotes")
@ResponseBody
public DeferredResult quotes() {
DeferredResult deferredResult = new DeferredResult();
// Add deferredResult to a Queue or a Map...
return deferredResult;
}

// In some other thread..
// Set the return value on the deferredResult

deferredResult.set(data);

F. 在線等!! java spring 框架 如何計算http請求上行下行流量多少

http請求的上下行流量,包含消息頭 、消息體等,上行流量計算上行報文大小、下行流量計算下行報文大小。
然後結合並發量,就可以計算出上下行流量。
這個東西和框架關系不大,主要是了解http協議。

G. 常用的java開發框架有哪些

Java開發開發框架有很多,給大家推薦下面幾種:
1、struts2框架,這是最經典的框架(可以說沒有「之一」)。可以幫你快速搭建出一個MVC模型出來。

2、Spring:Spring是輕量級的J2EE應用程序框架。
3、Hibernate:Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了輕量級的對象封裝,使得Java程序員可以使用對象編程思維來操縱資料庫。Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化。它還可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序實用,也可以在Servlet/JSP的Web應用中使用
4.jQuery是繼prototype之後又一個優秀的Javacript框架,封裝了很多JavaScript方法,是開發jsp用的框架,目前很流行.

5.JFinal 是基於Java 語言的極速 web 開發框架,其核心設計目標是開發迅速、代碼量少、學習簡單、功能強大、輕量級、易擴展、Restful。在擁有Java語言所有優勢的同時再擁有ruby、Python等動態語言的開發效率。

H. java 怎麼接收http請求

用servlet接收。
具體步驟是寫一個類繼承HttpServlet,如果是接收get請求就重寫doGet(HttpServletRequest,HttpServletResponse),接收post就重寫doPost(HttpServletRequest,HttpServletResponse),共同處理post和get就重寫service(HttpServletRequest,HttpServletResponse)
其次在web.xml定義servlet標簽,以及你這個servlet要處理的請求mapping
最後把項目部署在tomcat之類的web容器中即可。
如果使用框架的話就另當別論了,比如spring 的DispatcherServlet。當然你也可以自己寫servlet。

I. 現在java web主要用什麼框架

三大框架:Struts+Hibernate+Spring
Java三大框架主要用來做WEN應用。
Struts主要負責表示層的顯示
Spring利用它的IOC和AOP來處理控制業務(負責對資料庫的操作)
Hibernate主要是數據持久化到資料庫
再用jsp的servlet做網頁開發的時候有個 web.xml的映射文件,裡面有一個mapping的標簽就是用來做文件映射的。當你在瀏覽器上輸入URL得知的時候,文件就會根據你寫的名稱對應到一 個JAVA文件,根據java文件里編寫的內容顯示在瀏覽器上,就是一個網頁。
一 .Struts框架:struts是開源軟體。使用Struts的目的是為了幫助我們減少在運用MVC設計模型來開發Web應用的時間。如果我們想混合使用Servlets和JSP的優點來建立可擴展的應用,struts是一個不錯的選擇。
1.流程:伺服器啟動後,根據web.xml載入ActionServlet讀取struts-config.xml文件內容到內存。
2.架構:Struts對Model,View和Controller都提供了對應的組件。ActionServlet,這個類是Struts的核心控制器,負責攔截來自用戶的請求。
Model部分:由JavaBean組 成,ActionForm用於封裝用戶的請求參數,封裝成ActionForm對象,該對象被ActionServlet轉發給 Action,Action根據ActionFrom裡面的請求參數處理用戶的請求。JavaBean則封裝了底層的業務邏輯,包括資料庫訪問等。
View部分:該部分採用JSP實現。Struts提供了豐富的標簽庫,通過標簽庫可以減少腳本的使用,自定義的標簽庫可以實現與Model的有效交互,並增加了現實功能。對應上圖的JSP部分。
Controller組件:Controller組件有兩個部分組成——系統核心 控制器,業務邏輯控制器。 系統核心控制器,對應上圖的ActionServlet。該控制器由Struts框架提供,繼承HttpServlet 類,因此可以配置成標注的Servlet。該控制器負責攔截所有的HTTP請求,然後根據用戶請求決定是否要轉給業務邏輯控制器。業務邏輯控制器,負責處 理用戶請求,本身不具備處理能力,而是調用Model來完成處理。對應Action部分。
二.Spring框架
Spring是一個解決了許多在J2EE開發中常見的的問題的強大框架。 Springle提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類變成的好習慣。Spring的架構基礎是基於使用JavaBean屬性 的Inversion of Control 容器。然而Spring在使用IoC容器作為構建玩關注所有架構層層的完整解決方案方面是獨一無二的。Spring提供了唯一的數據管理 抽象包括簡單和有效率的JDBC框架,極大的改進了效率並且減少了可能的錯誤。Spring的數據訪問架構還集成了Hibernate和其他O/R mapping 解決方案。
三.Hibernate框架
Hibernate 是一個開源代碼的對象關系映射框架,對JDBC驚醒了費城輕量級的 的對象封裝,使得Java程序員可以隨心所欲的使用對象變成思維來操作資料庫。Hebernate可以應用在任何使用JDBC的場合,既可以在java的 客戶端程序使用,也可以在Servlet/JSP的Web應用中使用最具革命意義的事,Hibernate可以在應用EJB的J2EE架構中取代CMP, 完成數據持久化的重任
Hibernate的核心介面一共有5個,分別為:Session、 SessionFactory、Transaction、Query和Configuration。這5個核心介面在任何開發中都會用到。通過這些介面, 不僅可以對持久化對象進行存取,還能夠進行事務控制。下面對這五個核心介面分別加以介紹。
1.Session介面:負責執行被持久化對象的CRUD操作(CRUD的任務是完成與 資料庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同於 JSP應用中的HttpSession。這里當使用session這個術語時,其實指的是Hibernate中的session,而以後會將 HttpSession對象稱為用戶session。
2.SessionFactory介面:負責初始化Hibernate。它充當數據存儲 源的代理,並負責創建Session對象。這里用到了工廠模式。需要注意的是SessionFactory並不是輕量級的,因為一般情況下,一個項目通常 只需要一個SessionFactory就夠,當需要操作多個資料庫時,可以為每個資料庫指定一個SessionFactory。
3.Configuration介面:負責配置並啟動Hibernate,創建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然後創建SessionFactory對象。
4.Transaction介面:負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。
5.Query和Criteria介面:負責執行各種資料庫查詢。它可以使用HQL語言或SQL語句兩種表達方式。