上节,讲到了跳转到/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();
}
最终结果: