posts - 1,comments - 0,trackbacks - 0

          一、xml有哪些解析技術(shù)?區(qū)別是什么?
          答:有DOM,SAX,STAX等
          DOM:處理大型文件時(shí)其性能下降的非常厲害。這個(gè)問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對XML的隨機(jī)訪問SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)束時(shí),它會觸發(fā)一個(gè)事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問
          STAX:Streaming API for XML (StAX)


          二、 struts 的5個(gè)主要類
          ActionServlet是系統(tǒng)維護(hù)的,你不能操作,它主要是根據(jù)傳入的action路徑在ActionMapping中查找相應(yīng)的類,并調(diào)用它。
          Action是控制器,主要是從ActionForm中接收頁面?zhèn)鬟M(jìn)來的數(shù)據(jù),然后進(jìn)行邏輯處理。
          ActionForm是用來接收頁面上表單中的數(shù)據(jù)。
          ActionMapping是用來配置每個(gè)Action所對應(yīng)的路徑
          ActionForward是用來實(shí)現(xiàn)跳轉(zhuǎn),在Action中最后一行語句通常是return mapping.forward()這里傳入的值就在ActionForward中設(shè)置

          三、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別

          就ArrayList與Vector主要從二方面來說.

          一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的

          二.數(shù)據(jù)增長:當(dāng)需要增長時(shí),Vector默認(rèn)增長為原來一培,而ArrayList卻是原來的一半

          就HashMap與HashTable主要從三方面來說。

          一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個(gè)實(shí)現(xiàn)

          二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的

          三.值:只有HashMap可以讓你將空值作為一個(gè)表的條目的key或value

          四、JDK1.5新特性
          1,泛型(Generic) 2, for-Each循環(huán) 3,自動
          裝包拆包 4,枚舉類型(Enums) 5,靜態(tài)導(dǎo)入(Static imports)

          五、JDK1.6新特性
          1,desktop類和systemtray類
          2,使用JAXB2來實(shí)現(xiàn)對象與xml之間映射
          3,理解STAX
          4,使用compiler API
          5,輕量級的HTTPServer API
          6,插入式注解處理
          7,用console開發(fā)控制臺程序
          8,對腳本語言的支持:ruby、groovy、javascript
          9,common Annotations

          Struts、spring、hibernate 工作機(jī)制,為什么用!

          六、hiberante工作機(jī)制

          1.         讀取并解析配置文件

          2.         讀取并解析映射信息,創(chuàng)建SessionFactory

          3.         打開Sesssion

          4.         創(chuàng)建事務(wù)Transation

          5.         持久化操作

          6.         提交事務(wù)

          7.         關(guān)閉Session

          8.         關(guān)閉SesstionFactory

          為什么使用

          1.    對JDBC訪問數(shù)據(jù)庫的代碼做了封裝,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。

          2.    Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡化DAO層的編碼工作

          3.    hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。

          4.    hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。

          5.   可擴(kuò)展,卡發(fā)者可以根據(jù)需求定義查詢

          struts1.2工作原理以及為什么使用

          Struts的工作原理:

            在web應(yīng)用啟動時(shí)就會加載初始化ActionServlet,ActionServlet從

            struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象

            當(dāng)ActionServlet接收到一個(gè)客戶請求時(shí),將執(zhí)行如下流程.

              -(1)檢索和用戶請求匹配的ActionMapping實(shí)例,如果不存在,就返回請求路徑無效信息;

              -(2)如果ActionForm實(shí)例不存在,就創(chuàng)建一個(gè)ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm 對象中;

              -(3)根據(jù)配置信息決定是否需要表單驗(yàn)證.如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法;

              -(4)如果ActionForm的validate()方法返回null或返回一個(gè)不包含ActionMessage的ActuibErrors對象, 就表示表單驗(yàn)證成功;

              -(5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個(gè)Action,如果相應(yīng)的                    Action實(shí)例不存在,就先創(chuàng)建這個(gè)實(shí)例,然后調(diào)用Action的execute()方法;

              -(6)Action的execute()方法返回一個(gè)ActionForward對象,ActionServlet在把客戶請求轉(zhuǎn)發(fā)給                               ActionForward對象指向的JSP組件;

              -(7)ActionForward對象指向JSP組件生成動態(tài)網(wǎng)頁,返回給客戶;

          為什么要用:

          1、整合jsp、servlet、javaBean 是Web開發(fā)更加正規(guī)化。

          2、由一個(gè)ActionServlet 做全局控制器,對action做統(tǒng)一的控制.

          3、ActionForm使取得form的值更加方便.

          spring工作機(jī)制及為什么要用?

          1.spring mvc請所有的請求都提交給DispatcherServlet,它會委托應(yīng)用系統(tǒng)的其他模塊負(fù)責(zé)負(fù)責(zé)對請求進(jìn)行真正的處理工作。

          2.DispatcherServlet查詢一個(gè)或多個(gè)HandlerMapping,找到處理請求的Controller.

          3.DispatcherServlet請請求提交到目標(biāo)Controller

          4.Controller進(jìn)行業(yè)務(wù)邏輯處理后,會返回一個(gè)ModelAndView

          5.Dispathcher查詢一個(gè)或多個(gè)ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象

          6.視圖對象負(fù)責(zé)渲染返回給客戶端。

          為什么用:

             AOP 讓開發(fā)人員可以創(chuàng)建非行為性的關(guān)注點(diǎn),稱為橫切關(guān)注點(diǎn),并將它們插入到應(yīng)用程序代碼中。使用 AOP 后,公共服務(wù)   (比如日志、持久性、事務(wù)等)就可以分解成方面并應(yīng)用到域?qū)ο笊?,同時(shí)不會增加域?qū)ο蟮膶ο竽P偷膹?fù)雜性。

                         IOC 允許創(chuàng)建一個(gè)可以構(gòu)造對象的應(yīng)用環(huán)境,然后向這些對象傳遞它們的協(xié)作對象。正如單詞 倒置 所表明的,IOC 就像反      過來的 JNDI。沒有使用一堆抽象工廠、服務(wù)定位器、單元素(singleton)和直接構(gòu)造(straight construction),每一個(gè)對象都是用     其協(xié)作對象構(gòu)造的。因此是由容器管理協(xié)作對象(collaborator)。

          Spring即使一個(gè)AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean 屬性和配置文件加入依賴性(協(xié)作對象)。然后可以很容易地在需要時(shí)替換具有類似接口的協(xié)作對象.

          七、EJB與JAVA   BEAN的區(qū)別?


          答:Java   Bean   是可復(fù)用的組件,對Java   Bean并沒有嚴(yán)格的規(guī)范,理論上講,任何一個(gè)Java類都可以是一個(gè)Bean。但通常情況下,由于Java   Bean是被容器所創(chuàng)建(如Tomcat)的,所以Java   Bean應(yīng)具有一個(gè)無參的構(gòu)造器,另外,通常Java   Bean還要實(shí)現(xiàn)Serializable接口用于實(shí)現(xiàn)Bean的持久性。Java   Bean實(shí)際上相當(dāng)于微軟COM模型中的本地進(jìn)程內(nèi)COM組件,它是不能被跨進(jìn)程訪問的。Enterprise   Java   Bean   相當(dāng)于DCOM,即分布式組件。它是基于Java的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)的,所以EJB可以被遠(yuǎn)程訪問(跨進(jìn)程、跨計(jì)算機(jī))。但EJB必須被布署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的EJB組件,而是通過其容器訪問。EJB容器是EJB組件的代理,EJB組件由容器所創(chuàng)建和管理??蛻敉ㄟ^容器來訪問真正的EJB組件。


          關(guān)于java public private protected friendly(缺省)作用域

          public:類本身和任何包的任何類都訪問

          private 只有類本身可以訪問,其他類想訪問可以通過該類的成員方法訪問如getter/setter

          protected:保護(hù)的,這個(gè)和缺省的比較容易混淆,記住最主要區(qū)別是:protected可以在不同包的子類被訪問,而friendly不可以。

          protected可以在類本身、同包的子類,不同包的子類,同包的非子類 被訪問

          默認(rèn)不寫的時(shí)候是public


          八、關(guān)于PreparedStatement和Statement具體區(qū)別

          1:
          我們先從這兩個(gè)單詞進(jìn)行初步的講解,Prepared(準(zhǔn)備好的, 精制的),從這里可以知道PreparedStatement是預(yù)先編譯的語句,而Statement則不是預(yù)先編譯的,在DBMS中處理管理中Statement是要進(jìn)行語法、語義的,而PreparedStatement則不要。

          2:
          PrepareStatement中執(zhí)行的SQL語句中是可以帶參數(shù)的,而Statement則不可以。
          比如:
          PreparedStatement pstmt  =  con.prepareStatement("UPDATE EMPLOYEES
                                               SET SALARY = ? WHERE ID = ?");
             pstmt.setBigDecimal(1, 153833.00);
            pstmt.setInt(2, 110592);
          pstmt. executeUpdate();

          3:
          當(dāng)處理批量SQL語句時(shí),這個(gè)時(shí)候就可以體現(xiàn)PrepareStatement的優(yōu)勢,由于采用Cache機(jī)制,則預(yù)先編譯的語句,就會放在Cache中,下次執(zhí)行相同SQL語句時(shí),則可以直接從Cache中取出來。


          九、JSP的內(nèi)置對象與作用

          JSP共有以下9種基本內(nèi)置組件(可與ASP的6種內(nèi)部組件相對應(yīng)):
          request 用戶端請求,此請求會包含來自GET/POST請求的參數(shù)
          response 網(wǎng)頁傳回用戶端的回應(yīng)
          pageContext 網(wǎng)頁的屬性是在這里管理
          session 與請求有關(guān)的會話期
          application servlet 正在執(zhí)行的內(nèi)容
          out 用來傳送回應(yīng)的輸出
          config servlet的構(gòu)架部件
          page JSP網(wǎng)頁本身
          exception 針對錯(cuò)誤網(wǎng)頁,未捕捉的例外

          十、jsp有哪些動作作用分別是什么

          JSP共有以下6種基本動作     jsp:include:在頁面被請求的時(shí)候引入一個(gè)文件。    
          jsp:useBean:尋找或者實(shí)例化一個(gè)JavaBean。  
            jsp:setProperty:設(shè)置JavaBean的屬性。  
            jsp:getProperty:輸出某個(gè)JavaBean的屬性。  
            jsp:forward:把請求轉(zhuǎn)到一個(gè)新的頁面。  
            jsp:plugin:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標(biāo)記


          十一、JSP中動態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?
          答:動態(tài)INCLUDE用jsp:include動作實(shí)現(xiàn)     它總是會檢查所含文件中的變化,適合用于包含動態(tài)頁面,并且可以帶參數(shù)  
          靜態(tài)INCLUDE用include偽碼實(shí)現(xiàn),定不會檢查所含文件的變化,適用于包含靜態(tài)頁面

          十二、jsp的兩種跳轉(zhuǎn)方式分別是什么,有什么區(qū)別?

          1、帶request參數(shù)的跳轉(zhuǎn)
             request.setAttribute("param", "value");
             request.getRequestDispatcher("test.jsp").forward(request, response);
             在目的頁面可以獲取參數(shù)
             String Value = request.getAttribute("param")==null?:(String)request.getAttribute("param");
          2、不帶request參數(shù)的跳轉(zhuǎn)
             response.sendredirect("test.jsp");





          十三、forward和redirect的區(qū)別


          forward是服務(wù)器內(nèi)部重定向,程序收到請求后重新定向到另一個(gè)程序,客戶機(jī)并不知道;redirect則是服務(wù)器收到請求后發(fā)送一個(gè)狀態(tài)頭給客戶,客戶將再請求一次,這里多了兩次網(wǎng)絡(luò)通信的來往。當(dāng)然forward也有缺點(diǎn),就是forward的頁面的路徑如果是相對路徑就會有些問題了。    forward 會將 request state , bean 等等信息帶往下一個(gè) jsp
          redirect 是送到 client 端后再一次 request , 所以資料不被保留.


          使用 forward 你就可以用 getAttribute() 來取的前一個(gè) jsp 所放入的 bean 等等資料



          1.從地址欄顯示來說
          forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容
          再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址.
          redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請求那個(gè)地址.所以地址欄顯示的是新的URL.所
          以redirect等于客戶端向服務(wù)器端發(fā)出兩次request,同時(shí)也接受兩次response。



          2.從數(shù)據(jù)共享來說
          forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù).
          redirect:不能共享數(shù)據(jù).
          redirect不僅可以重定向到當(dāng)前應(yīng)用程序的其他資源,還可以重定向到同一個(gè)站點(diǎn)上的其他應(yīng)用程序中的資源,
          甚至是使用絕對URL重定向到其他站點(diǎn)的資源.
          forward,方法只能在同一個(gè)Web應(yīng)用程序內(nèi)的資源之間轉(zhuǎn)發(fā)請求.

          forward 是服務(wù)器內(nèi)部的一種操作.
          redirect 是服務(wù)器通知客戶端,讓客戶端重新發(fā)起請求.

          所以,你可以說 redirect 是一種間接的請求, 但是你不能說"一個(gè)請求是屬于forward還是redirect "



          3.從運(yùn)用地方來說

          forward:一般用于用戶登陸的時(shí)候,根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊.
          redirect:一般用于用戶注銷登陸時(shí)返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等.

          4.從效率來說
          forward:高.
          redirect:低.


          十五、描述JSP和Servlet的區(qū)別、共同點(diǎn)、各自應(yīng)用的范圍

          JSP在本質(zhì)上就是SERVLET,但是兩者的創(chuàng)建方式不一樣.Servlet完全是JAVA程序代碼構(gòu)成擅長于流程控制和事務(wù)處理而通過Servlet
          來生成動態(tài)網(wǎng)頁;JSP由HTML代碼和JSP標(biāo)簽構(gòu)成,可以方便地編寫動態(tài)網(wǎng)頁
          因此在實(shí)際應(yīng)用中采用Servlet來控制業(yè)務(wù)流程,而采用JSP來生成動態(tài)網(wǎng)頁.在struts框架中,JSP位于MVC設(shè)計(jì)模式的視圖層,而Servlet位于控制層.
          答案2:
          JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上就是Servlet的簡易方式。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。


          十六、列出Jsp中包含外部文件的2種方式,兩者有何區(qū)別。

          1:<jsp:include page="b.jsp" />)
          2: <%@ include file="b.jsp">
          區(qū)別:
          1:<jsp:include page="b.jsp" />(先執(zhí)行,后包含)
          此標(biāo)簽表示法:能動態(tài)區(qū)別加進(jìn)來的是動態(tài)頁面還是靜態(tài)頁面對于靜態(tài)頁面則直接將資源包含(僅取其文本)。
          <%@ include file="b.jsp">此指令表示:靜態(tài)地包含頁面,不管其內(nèi)容如何,
          不過是靜態(tài)頁面還是動態(tài)頁面都首先將頁面的內(nèi)容先加進(jìn)來。
          區(qū)別2:<jsp:include page="b.jsp" />可以分開寫成:<jsp:include page="b.jsp" >
          <jsp:param name="參數(shù)名" value="參數(shù)值"/></jsp:include>這樣就可以傳遞參數(shù)。

          十七、struts1和struts2區(qū)別:


          特性
          Struts 1
          Struts 2

          Action類
          Struts 1要求Action類要擴(kuò)展自一個(gè)抽象基類。Struts 1的一個(gè)共有的問題是面向抽象類編程而不是面向接口編程。
          Struts 2的Action類實(shí)現(xiàn)了一個(gè)Action接口,連同其他接口一起實(shí)現(xiàn)可選擇和自定義的服務(wù)。Struts 2提供一個(gè)名叫ActionSupport的基類實(shí)現(xiàn)一般使用的接口。雖然,Action接口不是必須的。任何使用execute方法的POJO對象可以被當(dāng)作Struts 2的Action對象使用。

          程模型
          Struts 1 Action類是單例類,因只有一個(gè)示例控制所有的請求。單例類策略造成了一定的限制且給開發(fā)帶來了額外的煩惱。Action資源必須是程安全或者同步的。
          Struts 2 Action對象每一個(gè)請求都實(shí)例化對象,所以沒有程安全的問題。(實(shí)踐中,servlet容器生許多丟的對象對于每一個(gè)請求,多于一個(gè)的對象并不影響垃圾收集)

          Servlet 依賴
          Struts 1的Action類依賴于servlet API以HttpServletRequest和HttpServletResponse作參數(shù)傳給execute方法當(dāng)Action被調(diào)用時(shí)。
          Struts 2的Action不和容器有關(guān)。Servlet上下文被表現(xiàn)簡單的Maps,允許Action被獨(dú)立的測試。Struts 2的Action可以訪問最初的請求和相應(yīng),如果需要的話。然而,其他的架構(gòu)元素少或者排除直接訪問HttpServletRequest或者HttpServletResponse的需要。

          易測性
          測試Struts 1的主要障礙是execute方法暴露了Servlet API。第三方的擴(kuò)展,Struts測試用例,提供Struts 1的集合對象。
          Struts 2的Action可以通過實(shí)例化Action測試,設(shè)置屬性,然后調(diào)用方法。依賴注入的支持也是測試變得更簡單。

          接受輸入
          Struts 1使用ActionForm對象捕獲輸入。象Action一樣,所有的ActionForm必須擴(kuò)展基類。因其他的JavaBean不能作ActionForm使用,開發(fā)者經(jīng)常創(chuàng)建多余的類捕獲輸入。DynaBeans可以被用來作替代ActionForm的類創(chuàng)建。但是開發(fā)者可以重新描述已經(jīng)存在的JavaBean。
          Struts 2 Action屬性作輸入屬性,排除第二個(gè)輸入對象的需要。輸入屬性可能有豐富的對象類型這些類型有他們自己的屬性。Action的屬性可以通過標(biāo)簽庫訪問。Struts 2也支持ActionForm形式。豐富的對象類型,包含業(yè)務(wù)或者域?qū)ο?,可以被?dāng)作輸入或者輸出對象使用。饃型驅(qū)動特性簡化標(biāo)簽對POJO輸入對象的引用。

          表達(dá)式語言
          Struts 1整和JSTL,所以它使用JSTL的表達(dá)式語言。表達(dá)式語言有基本的圖形對象移動,但是相對很弱的集合和被索引的屬性支持。
          Struts 2使用JSTL,但是框架也支持更大和更靈活的表達(dá)式,叫做“對象圖形符號語言”(OGNL)。

          將值綁定要視圖上
          Struts 1使用標(biāo)準(zhǔn)JSP機(jī)制來綁定對象到頁面上下文。
          Struts 2使用“ValueStack”技術(shù)了標(biāo)簽庫可以不用鏈接你的視圖到對象的表現(xiàn)類型訪問值。ValueStack策略允許重用視圖。

          類型轉(zhuǎn)換
          Struts 1的ActionForm屬性經(jīng)常都是String的。Struts 1使用Commons-Beanutils類型轉(zhuǎn)換。轉(zhuǎn)換每一個(gè)類,不是每一個(gè)實(shí)例配置。
          Struts 2使用OGNL類型轉(zhuǎn)換??蚣馨D(zhuǎn)換器基本的和共同的對象類型和原始類型。

          驗(yàn)證
          Struts 1支持手動驗(yàn)證憑借ActionForm的validate方法,或者通過擴(kuò)展的公用驗(yàn)證器。類可以有不同的驗(yàn)證上下文未相同的類,但是不能不能包括驗(yàn)證子對象。
          Struts 2支持手動驗(yàn)證憑借validate方法和XWork驗(yàn)證框架。Xwork驗(yàn)證框架支持一連串的驗(yàn)證子屬性使用的驗(yàn)證了屬性類的類型和嚴(yán)正上下文而定義。

          Action執(zhí)行的控制
          Struts 1支持獨(dú)立的請求處理器對于每一個(gè)模型,但是所有在模型中的Action必須共享同一個(gè)生命周期。
          Struts 2支持在每一個(gè)Action基礎(chǔ)上憑借攔截棧創(chuàng)建不同的生命周期。自定義??梢员粍?chuàng)建且使用不同的所需 的Action。


          Jsp和Servlet中的請求轉(zhuǎn)發(fā)分別如何實(shí)現(xiàn)。

          servlet的轉(zhuǎn)發(fā)方式有兩種:response.sendRedirect(response.encodeURL(相對路徑或絕對路徑));
          request.getRequestDispatcher(相對路徑).forward();
          jsp是servlet的擴(kuò)展,除可用上面兩種之外,還可以用標(biāo)簽:<jsp:forward page="相對路徑" />



          、如何現(xiàn)實(shí)servlet的單線程模式?
          <%@ page isThreadSafe="false"%>


            應(yīng)用服務(wù)器與WEB SERVER的區(qū)別?

          1。應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器則主要是讓客戶可以通過瀏覽器進(jìn)行訪問。
          2。應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器是用于處理HTML文件的。web服務(wù)器通常比應(yīng)用服務(wù)器簡單,如apache就是web服務(wù)器,Jboss就是EJB應(yīng)用服務(wù)器。
          應(yīng)用服務(wù)器:Weblogic、Tomcat、Jboss
          WEB SERVER:IIS、 Apache
          應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器則主要是讓客戶可以通過瀏覽器進(jìn)行訪問。
          應(yīng)用服務(wù)器處理業(yè)務(wù)邏輯,web服務(wù)器是用于處理HTML文件的。web服務(wù)器通常比應(yīng)用服務(wù)器簡單,如apache就是web服務(wù)器,Jboss就是EJB應(yīng)用服務(wù)器
          在B/S體系結(jié)構(gòu)中,Web   server是Application   Server的前提和基礎(chǔ)。Web   Server接受來自Browse(http)的request。為了擴(kuò)展Web的應(yīng)用(如與后臺DataBase打交道)早期如一些DLL可以來完成,后來各家公司有了Application   server豐富了這方面的性能。使用戶跟后臺的數(shù)據(jù)庫有了更好的接口。如:WebSphere   Weblogic等等
          web服務(wù)器只提供web服務(wù)功能,比喻說解釋jsp,servlet等,而應(yīng)用服務(wù)器提供整個(gè)企業(yè)級解決方案,比如說:應(yīng)用服務(wù)器提供EJB包容器,可以提供用戶控制,事務(wù)等居多功能,web服務(wù)器是應(yīng)用服務(wù)器的一個(gè)子集
          Web服務(wù)器與(Java)應(yīng)用服務(wù)器是平行的概念,二者不存在相互包容關(guān)系。好像J2EE體系結(jié)構(gòu)就是這么畫的:客戶端《——》Web服務(wù)器《——》應(yīng)用服務(wù)器《——》數(shù)據(jù)庫服務(wù)器  
          如果你訪問的網(wǎng)頁只有象HTML這種頁面的,用WEB服務(wù)器就夠了,但是如果是JSP,也就是含JAVA代碼的HTML,則就需要JAVA應(yīng)用服務(wù)器了,因?yàn)橹挥蠮AVA應(yīng)用服務(wù)器才能解析JSP里的JAVA代碼,并將解析結(jié)果以HTML的格式返回給你。 

          posted on 2010-03-31 22:24 zZ的家伙 閱讀(126) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宝鸡市| 乌鲁木齐县| 广水市| 海兴县| 恭城| 乐陵市| 义马市| 靖宇县| 安化县| 察隅县| 太仆寺旗| 登封市| 谷城县| 全椒县| 咸丰县| 奉新县| 南安市| 勃利县| 东辽县| 张家港市| 利津县| 左权县| 偏关县| 深泽县| 蒲江县| 连州市| 连云港市| 邯郸县| 石河子市| 屏山县| 凤阳县| 巴南区| 广水市| 高清| 彭州市| 额尔古纳市| 菏泽市| 衡山县| 宝丰县| 鱼台县| 潮安县|