博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Azkaban的Web Server源码探究系列13:首页/index的内容获取
阅读量:7222 次
发布时间:2019-06-29

本文共 1486 字,大约阅读时间需要 4 分钟。

hot3.png

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

  }

最终结果:

014031_M1KK_1382024.jpg

转载于:https://my.oschina.net/qiangzigege/blog/655492

你可能感兴趣的文章
使用MapReduce实现温度排序
查看>>
技术网站
查看>>
HDU计算机学院大学生程序设计竞赛(2015’12)1008 Study Words
查看>>
python面试
查看>>
oracle中去掉回车换行空格的方法详解
查看>>
eval(gzinflate(base64_decode N层,自动解密
查看>>
Apache CXF 2.7.0 的 wsdl2java 生成客户端java类中required 未定义的问题
查看>>
中国大学排名定向爬虫
查看>>
657. Insert Delete GetRandom O(1)
查看>>
Java编程资料
查看>>
duilib 设计界面 初体验(附超链接开发)
查看>>
jvm内存区域
查看>>
IOS--常用控件--UIScrollView
查看>>
能够使开发和调试更为方便的java日志框架
查看>>
冷门Javascript API——element.insertAdjacentHTML
查看>>
绘制希尔伯特曲线
查看>>
LOJ 572 「LibreOJ Round #11」Misaka Network 与求和——min_25筛
查看>>
test
查看>>
[精华][推荐]CAS SSO单点登录服务端客户端实例
查看>>
「hadoop」ssh
查看>>