liferay运行步骤(一)
来源:互联网 发布:域名可以自建吗 编辑:程序博客网 时间:2024/04/29 01:03
原文:http://blog.csdn.net/yukunzgp/article/details/2177392
用户在地址栏键入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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">/n
<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);
- liferay运行步骤(一)
- Liferay Portal 学习(一)
- Liferay研究-瘦身(一)
- Liferay Portal学习笔记(一):安装
- Liferay Portal学习笔记(一):安装
- Liferay Portal开发(一)开篇介绍
- Liferay in action 学习笔记(一)
- Liferay Portal 学习笔记(一),介绍
- (一)Liferay-可配置portlet
- Liferay难点总结(一)
- Liferay难点总结(一)
- Liferay学习笔记(一)——Liferay Portal5.2.3环境的初步搭建
- liferay通过ldap同步用户([用户组])设置(一)
- Liferay研究(一):初步在新Tomcat下部署
- Liferay研究之卅一:Database Sharding(数据库分片)
- liferay开发(一)开发环境的完整配置
- liferay开发(二)开发详细举例--例一
- Liferay 6.1开发学习(一):环境搭建
- XML(1)
- JavaScript 浏览器检测方法。。。
- iOS越狱开发之MobileSubstrate介绍
- Java中十六进制转换 Integer.toHexString()
- ecshop discuz 与帝国cms系统单点登录的整合
- liferay运行步骤(一)
- 逆波兰式
- 某业务系统由于连接数限制导致间歇性访问慢故障分析案例
- 基于qt的多线程视频采集与传输
- MyEclipse调试小技巧
- Cocos2d Particle Builder粒子编辑器。
- 关于AXIS客户端响应速度慢的问题总结
- makefile 中调用shell脚本注意事项
- android之文件上传