<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
     

    用戶在地址欄鍵入http://localhost:8080/后,整個Liferay系統發生了些什么呢?

    1. 第一步,生成 http://localhost:8080/c
    Request:   GET/HTTP/1.1
    Response: 
    狀態:HTTP/1.1 200 OK
    內容:... <body onload="javascript:location.replace('/c')"> ...

    解釋:
    在web.xml中有關于首頁的定義如下,也就是說當用戶敲入http://localhost:8080/所調用的頁面。

    web.xml
    --------
    <welcome-file-list>
      <welcome-file>index.html</welcome-file>
      <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    在index.jsp中有如下內容,所以可以知道Response的內容如何得來。

    index.jsp
    ----------
    <%@ page import="com.liferay.portal.util.PortalUtil" %>
    <html>
    <head>
      <title></title>
      <meta content="0; url=<%= PortalUtil.getPathMain() %>" http-equiv="refresh">
    </head>
    <body onload="javascript:location.replace('<%= PortalUtil.getPathMain() %>')">
    </body>
    </html>


    2. 第二步,生成 http://localhost:8080/c/portal/layout

    Request:   GET/c HTTP/1.1
    Response:
    狀態:HTTP/1.1 302 Moved Temporarily
    頭部:Location: http://10.108.10.205:8080/c/portal/layout

    解釋:
    當服務器收到"GET/c"請求后,根據web.xml中的定義,請求會送入MainServlet進行處理。如何生成"/c/portal/layout"有待分析,以后補充,還好不影響大局。

    web.xml
    --------
    <servlet-mapping>
      <servlet-name>MainServlet</servlet-name>
      <url-pattern>/c/*</url-pattern>
    </servlet-mapping>


    3. 第三步,生成 http://10.108.10.205:8080/web/guest/home
    Request:   GET/c/portal/layout HTTP/1.1
    Response:
    狀態:HTTP/1.1 302 Moved Temporarily
    頭部:Location: http://10.108.10.205:8080/web/guest/home

    解釋:
    當服務器收到請求后,同樣會送到MainServlet處理,然后會傳遞到LayoutAction, layout.jsp, portlet.jsp, TemplateProcessor, PortletColumnLogic, load_render_portlet.jsp, portlet_js.jspf,等等,很漫長的,也很有確的一個過程,后面會有單獨的分析,中間仍有一些不明朗的地方,仍有待挖掘。不過不妨礙理清 Liferay的大致經絡。


    4. 第四步,生成網頁
    Request:   GET /web/guest/home HTTP/1.1
    Response: 
    狀態:HTTP/1.1 200 OK
    內容:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
        <html dir="ltr">\n
        <head>\n
        <title>liferay.com - Welcome</title>\n
        <meta content="text/html; charset=UTF-8" http-equiv="content-type" />\r
        <link rel="Shortcut Icon" href="/html/themes/classic/images/liferay.ico" _fcksavedurl=""/html/themes/classic/images/liferay.ico"" />\r
        <link href="/c/portal/css_cached?themeId=classic&colorSchemeId=01&t=1203549390654" type="text/css"

    rel="stylesheet" />\r
        <style type="text/css">\r
        </style>\r
        <script type="text/javascript">\r
        var themeDisplay = {\r
        getCompanyId: function() {\r
        return "10094";\r
        },\r
    ......

    解釋:
    在web.xml中有定義,所以"GET /web/guest/home"請求會由FriendlyURLServlet處理。

    web.xml
    --------
    <servlet>
      <servlet-name>FriendlyURLPublicServlet</servlet-name>
      <servlet-class>com.liferay.portal.servlet.FriendlyURLServlet</servlet-class>
      <init-param>
        <param-name>private</param-name>
        <param-value>false</param-value>
      </init-param>
      <load-on-startup>4</load-on-startup>
    </servlet>
    <servlet-mapping>
      <servlet-name>FriendlyURLPublicServlet</servlet-name>
      <url-pattern>/web/*</url-pattern>
    </servlet-mapping>

    在FriendlyURLServlet.service()方法中,再次將請求傳遞到/c/portal/layout,由LayoutAction進行后續處理。

    FriendlyURLServlet.service()
    -----------------------------
    ServletContext ctx = getServletContext();
    String mainPath = PortalUtil.PATH_MAIN;
    String redirect = mainPath; //redirect = "/c/portal/layout..."
    ......
    RequestDispatcher rd = ctx.getRequestDispatcher(redirect);
    rd.forward(req, res);

     

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2177392

    主站蜘蛛池模板: 亚洲日产2021三区在线| 国产区在线免费观看| 免费h黄肉动漫在线观看| 成年免费a级毛片免费看无码| 老汉色老汉首页a亚洲| 免费网站看v片在线香蕉| 在线观看黄片免费入口不卡| 亚洲国产91在线| 91麻豆国产自产在线观看亚洲| 中文字幕亚洲免费无线观看日本| 国产精品亚洲专一区二区三区 | 亚洲日本精品一区二区| 女人18毛片特级一级免费视频| 怡红院免费全部视频在线视频| 亚洲精品无码一区二区| 亚洲AV日韩AV永久无码下载| 日韩一级视频免费观看| 免费A级毛片av无码| 人妖系列免费网站观看| 亚洲国产系列一区二区三区| 亚洲国产精品成人久久| 国产成人免费片在线观看| 蜜桃AV无码免费看永久| 成年免费a级毛片免费看无码| 亚洲国产精品网站在线播放| 久久久久亚洲AV成人片| 亚洲日韩欧洲乱码AV夜夜摸| 免费看的一级毛片| 亚洲黄色免费网站| 日本免费一区二区久久人人澡| 国产成人亚洲精品蜜芽影院| 亚洲AV色吊丝无码| 久久丫精品国产亚洲av不卡 | 亚洲妓女综合网99| 国产亚洲精品自在久久 | 亚洲狠狠婷婷综合久久| 亚洲在成人网在线看| 亚洲AV色香蕉一区二区| 亚洲综合区小说区激情区| 免费a级毛片网站| 国产成人免费a在线视频色戒|