public HandlerResult findHandlerResult( HttpServletRequest request, HttpServletResponse response) { String servletPath = request.getServletPath(); String[] pathParts = servletPath.split("/"); String schoolKey = pathParts.length > 2 ? pathParts[2] : null; String eventKey = pathParts.length > 3 ? pathParts[3] : null; String sportName = pathParts.length > 4 ? pathParts[4] : null; String levelName = pathParts.length > 5 ? pathParts[5] : null; String genderName = pathParts.length > 6 ? pathParts[6] : null; HandlerResult result = new HandlerResult(); School school = null; if (!isBlank(schoolKey)) { school = School.findSchoolByKey(schoolKey.toLowerCase()); } if (isBlank(school)) { result.content = null; result.page = null; result.stopHandlerChain = false; result.stopFilterChain = false; return result; } else if (isBlank(eventKey)) { result.content = school; result.page = AppPageKeys.SchoolScoresSchedules.getPage(); result.stopHandlerChain = true; result.stopFilterChain = false; try { Sport sport = Sport.valueOf(sportName.toUpperCase()); SportLevel level = SportLevel.valueOf(levelName.toUpperCase()); SportGender gender = SportGender.valueOf(genderName.toUpperCase()); Query<Team> teamQuery = Query.from(Team.class) .where( "sport = ? && gender = ? && level = ? && school = ?", sport, gender, level, school); getDisplayQuery(teamQuery); Team team = teamQuery.first(); if (null != team) { result.content = team; result.page = AppPageKeys.TeamScoresSchedules.getPage(); } } catch (Exception e) { logger.debug("failed to get team from request: " + servletPath, e); } return result; } else { try { Event event = Event.findEventByKey(eventKey); if (null != event) { setSchool(request, school); result.content = event; if (event instanceof Meet) { result.page = AppPageKeys.Meet.getPage(); } else { result.page = AppPageKeys.Game.getPage(); } result.stopHandlerChain = true; result.stopFilterChain = false; } return result; } catch (Exception e) { logger.debug("failed to get event from school request: " + servletPath, e); } } return result; }