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

旧城冷巷雨未停 提交于 2019-12-06 03:42:09

上节,讲到了跳转到/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();

  }

最终结果:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!