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();
}
最终结果:
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();
}
最终结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201604/ac1b9675f21799378a070ff3ad15720e.jpg)
相关文章推荐
- azkaban简介
- Azkaban-任务调度管理器
- Azkaban的Web Server源码探究系列6: alerters及插件机制分析
- Azkaban的Web Server源码探究系列7: ExecutorManager的初始化
- Azkaban的Web Server源码探究系列8: 水文一篇
- Azkaban的Web Server源码探究系列9: Servlet引擎初始化
- Azkaban的Web Server源码探究系列10 : /对应的servlet解析
- Azkaban的Web Server源码探究系列11: 登陆对应的servlet解析
- Azkaban的Web Server源码探究系列14:创建Project
- Azkaban的Web Server源码探究系列15:使用过程中几个需注意的配置&3.0中丢失的文件
- Azkaban的Web Server源码探究系列16:跳转Project
- Azkaban的Web Server源码探究系列17:Creating Flows
- Azkaban的Web Server源码探究系列19:loadProjectFromDir&Chek
- Azkaban的Web Server源码探究系列20:resolve&buildFlow
- oozie和azkaban
- 关于JavaProcess的一些笔记
- 我的第2个开源项目:MyAzkaban-3.0.0
- Azkaban的线程系列 38:ExecutorManagerUpdaterThread
- Azkaban的线程系列 37:QueueProcessor线程的任务处理&executor存活监控
- Azkaban的线程系列 36:AzkabanWebServer-Cleaner-Thread