文档章节

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

强子1985
 强子1985
发布于 2016/04/09 01:02
字数 188
阅读 130
收藏 0

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

  }

最终结果:

© 著作权归作者所有

共有 人打赏支持
强子1985

强子1985

粉丝 896
博文 1292
码字总数 958656
作品 8
南京
架构师
私信 提问
Azkaban的Web Server源码探究系列10 : /对应的servlet解析

如果请求的URI是"/",对应的servlet如何响应? =================================================================== ServletHolder indexRedirect = new ServletHolder(new IndexRedirectS......

强子哥哥
2016/04/08
221
0
Azkaban的Web Server源码探究系列9: Servlet引擎初始化

下面就是具体的路径映射与具体的servlet对应了。 ============================================================= Context root = new Context(server, "/", Context.SESSIONS); root.setM......

强子哥哥
2016/04/08
139
0
Azkaban的Web Server源码探究系列17:Creating Flows

到目前为止,一切还比较顺利!工程Project已经创建完毕,下面来尝试创建一个flow. === 什么是 flow? A job is a process you want to run in Azkaban. Jobs can be set up to be dependent ...

强子哥哥
2016/04/09
214
0
Azkaban的Web Server源码探究系列1: debug环境搭建

官方文档: http://azkaban.github.io/azkaban/docs/latest/ --- 最详细的指导文档! 网友写的 http://www.myexception.cn/industry/1664522.html 1)启动脚本 bin/azkaban-web-start.sh 下面......

强子哥哥
2016/04/05
800
0
Azkaban的Web Server源码探究系列2: 配置文件读取过程分析

上一节,我们认真的把debug环境搭建好了,下面开始慢慢的仔细的把代码研究下。 系统一开始就是进行配置文件读取,代码如下: public static Props loadProps(String[] args, OptionParser pa...

强子哥哥
2016/04/06
535
0

没有更多内容

加载失败,请刷新页面

加载更多

使用Maven打包Docker镜像-Jenkins版

前提:Jenkins服务器上安装好Docker,创建Jenkins任务,配置好代码来源,和Build配置: pom.xml中添加docker-maven-plugin: <plugin> <groupId>com.spotify</groupId> <artifactI......

莫在全
20分钟前
0
0
rabbitmq

灰暗
今天
1
0
Flink

flink HA部署 flink搭建,采用分布式部署方式,分别为A,B,C三个节点。其中A为master;A,B,C为worker。 本文使用的用户是hadoop用户(自己新建) 先决条件 Java 1.8.x or higher scala 自己使用...

-九天-
今天
2
0
数据中台和传统数仓的区别

中台系统把业务层同性的算法能力,服务能力,业务能力高度集成,有效组织 ,动态规划。更好的帮助上层业务。 今天就让我们看看关于数据中台的问答吧。 1 Q : 什么是数据中台? A : 数据中台是...

hblt-j
今天
5
0
Java在什么时候会出现内存泄漏

在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部