您的位置:首页 > 其它

Azkaban的Web Server源码探究系列13:首页/index的内容获取

2016-04-09 00:00 375 查看
上节,讲到了跳转到/index

ServletHolder index = new ServletHolder(new ProjectServlet());

root.addServlet(index, "/index");

所以需要调研ProjectServlet的方法

=====================================================================

1)init



2)doGet

@Override

protected void handleGet(HttpServletRequest req, HttpServletResponse resp,

Session session) throws ServletException, IOException {

//这里,不执行

if (hasParam(req, "doaction")) {

if (getParam(req, "doaction").equals("search")) {

String searchTerm = getParam(req, "searchterm");

if (!searchTerm.equals("") && !searchTerm.equals(".*")) {

handleFilter(req, resp, session, searchTerm);

return;

}

}

}

//获取user

User user = session.getUser();

//这里

ProjectManager manager =

((AzkabanWebServer) getApplication()).getProjectManager();

//构造page

Page page =

newPage(req, resp, session, "azkaban/webapp/servlet/velocity/index.vm");

if (lockdownCreateProjects && !hasPermissionToCreateProject(user)) {

page.add("hideCreateProject", true);

}

if (hasParam(req, "all")) {

List<Project> projects = manager.getProjects();

page.add("viewProjects", "all");

page.add("projects", projects);

} else if (hasParam(req, "group")) {

List<Project> projects = manager.getGroupProjects(user);

page.add("viewProjects", "group");

page.add("projects", projects);

} else {

//默认的配置就会走这条路

List<Project> projects = manager.getUserProjects(user);

page.add("viewProjects", "personal");

page.add("projects", projects);

}

//渲染

page.render();

}

最终结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  azkaban