亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當(dāng)前位置:計算機等級 > 二級考試 > Java語言程序設(shè)計 > 考試輔導(dǎo) > 文章內(nèi)容
        

      全國計算機等級考試二級Java重點內(nèi)容(49)

      中華IT學(xué)院   【 】  [ 2016年11月16日 ]

      1.課程回顧(理解)

        1)ValueStack結(jié)構(gòu)和數(shù)據(jù)存儲狀態(tài)

         ValueStack包含3個組成

         a. OGNL引擎:負責(zé)解析OGNL表達式

         b. root對象:CompountRoot(棧結(jié)構(gòu))

             存放了當(dāng)前請求的Action對象(處于棧頂位置)

         c. context對象:Map結(jié)構(gòu)

             存放了其他象.

             request:Object

             session:Object

             application:Object

         2) ValueStack原理

          a.當(dāng)客戶發(fā)送一個請求后,控制器會創(chuàng)建一個ValueStack對象

          b.控制器創(chuàng)建請求對應(yīng)的Action對象,并壓入到ValueStack的root棧中

          c.將request,session等對象的引用,存入到ValueStack的context中

          d.將ValueStack再存入到request對象中,struts.valueStack

          e.客戶再發(fā)新請求,重復(fù)以上操作.

      *2.重構(gòu)列表顯示示例

      3.EL表達式在Struts2中的使用(理解)

        EL為什么可以獲取Action對象的屬性?

        可以訪問pageContext,request,action,session,application范圍數(shù)據(jù)

        在原有的JavaWeb程序中,JSP如果使用${username},會調(diào)用如下方法查找.

         HttpServletRequest接口

          request.getAttribute("username")

          session.getAttribute("username")

          application.getAttribute("username")

        在Struts2中,將request對象進行了封裝,類型為StrutsRequestWapper.

         public class StrutsRequestWapper

                         extends HttpServletRequestWrapper{

            //重寫了getAttribute

            public Object getAttribute(String expression){

               //首先去原始的request中查找

               Object val = super.getAttribute(expression));

               //如果找不到,去valuestack查找

                 if(val == null){

                     val = ValueStack.findValue(expression);

                 }

                 return val;

            }

         }

         JSP使用 ${"username"} -->先去原有request中查找

          找不到調(diào)用ValueStack.findValue("username");

          觸發(fā)Ognl.getValue("username")//獲取root中棧頂action的username屬性

      4. Struts2中Action組件的核心應(yīng)用

         1)Action組件原理

           a.當(dāng)客戶發(fā)生一個請求,控制器會創(chuàng)建一個Action對象

              不必擔(dān)心線程并發(fā),不安全問題.

           b.Action對象創(chuàng)建后會放入ValueStack中,當(dāng)root對象的棧頂

           c.Action對象提供一個業(yè)務(wù)方法,默認是execute

           d.Action對象在請求處理完畢后銷毀

         2)Action如何使用request,session,application

           a.利用工具類ActionContext,ServletActionContext

           如何將HttpServletRequest,HttpSession等對象轉(zhuǎn)換成Map結(jié)構(gòu)

          public class SessionMap extends AbstractMap{

                 private HttpSession session;

                 public SessionMap(HttpSession session){

                         this.session = session;

                 }

               public void put(Object key,Object value){

                         session.setAttribute(key.toString(),value);

               }

               public Object get(Object key){

      首頁 1 2 尾頁
      分享到:
      本文糾錯】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照