⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recipesearchservlet.java

📁 google的gdata api包
💻 JAVA
字号:
/* Copyright (c) 2006 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package sample.gbase.recipe;import com.google.api.gbase.client.FeedURLFactory;import com.google.api.gbase.client.GoogleBaseService;import com.google.gdata.util.ServiceException;import java.io.IOException;import javax.servlet.ServletConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Setup a {@link RecipeSearch} object and optionally fill it. */@SuppressWarnings("serial")public class RecipeSearchServlet extends HttpServlet  {  private static final String START_INDEX_PARAMETER = "startIndex";  private static final String MAX_RESULTS_PARAMETER = "maxResults";  private static final String QUERY_PARAMETER = "query";  public static final String DISPLAY_JSP = "/WEB-INF/recipeSearch.jsp";    protected boolean ownItems;  protected FeedURLFactory urlFactory;    @Override  public void init(ServletConfig servletConfig) throws ServletException {    super.init(servletConfig);    ServletContext context = servletConfig.getServletContext();    urlFactory = (FeedURLFactory)         context.getAttribute(RecipeListener.FEED_URL_FACTORY_ATTRIBUTE);    String scope = servletConfig.getInitParameter("scope");    ownItems = "own".equals(scope);    }  @Override  public void destroy() {    super.destroy();  }  /**   * Runs a recipe search.   *   * @param request   * @param response   * @throws ServletException   * @throws IOException   */  @Override  protected void doGet(HttpServletRequest request,                       HttpServletResponse response)      throws ServletException, IOException {    GoogleBaseService service = RecipeUtil.getGoogleBaseService(request,         this.getServletContext());    RecipeSearch recipeSearch;    try {      if (request.getParameter("query") == null) {        recipeSearch = new RecipeSearch(service, urlFactory, ownItems);      } else {        recipeSearch = createRecipeSearch(service, request);      }      recipeSearch.runQuery();    } catch (RecipeValidationException rve) {      // internal exception in the argument handling (possibly incorrect args)      RecipeUtil.forwardToErrorPage(request, response, rve.getMessage());      return;    } catch (ServiceException se) {      // exception comming from Google Base      RecipeUtil.logServiceException(this, se);      RecipeUtil.forwardToErrorPage(request, response, se);      return;    }         RecipeUtil.setRecipeSearch(request, recipeSearch);    // Forward to the JSP    request.getRequestDispatcher(DISPLAY_JSP).forward(request, response);  }  /**   * Creates and fills in a {@link RecipeSearch} object based on the content    * of the {@code request}.   *   * @param service the object used to connect to the Google Base service   * @param request the representation of the Http request   * @throws RecipeValidationException if a parameter from the request has an   *    invalid value (cooking time, start index, max results are not valid   *    numbers).   */  private RecipeSearch createRecipeSearch(GoogleBaseService service,                                          HttpServletRequest request)       throws RecipeValidationException {    RecipeSearch search = new RecipeSearch(service, urlFactory, ownItems);    String query = request.getParameter(QUERY_PARAMETER);    if (isSet(query)) {      search.setQuery(query);    }    String[] mainIngredient = request.getParameterValues(        RecipeUtil.MAIN_INGREDIENT_PARAMETER);    if (isSet(mainIngredient)) {      search.setMainIngredientValues(mainIngredient);    }    String[] cuisine = request.getParameterValues(        RecipeUtil.CUISINE_PARAMETER);    if (isSet(cuisine)) {      search.setCuisineValues(cuisine);    }    String cookingTime = request.getParameter(        RecipeUtil.COOKING_TIME_PARAMETER);    if (isSet(cookingTime)) {      try {        search.setCookingTime(new Integer(cookingTime));      } catch (NumberFormatException e) {        throw new RecipeValidationException(String.format(            "Cooking time is not a number (%s).", cookingTime));      }    }    String startIndex = request.getParameter(START_INDEX_PARAMETER);    if (isSet(startIndex)) {      try {        search.setStartIndex(Integer.parseInt(startIndex));      } catch (NumberFormatException e) {        throw new RecipeValidationException(String.format(            "Start index is not a number (%s).", startIndex));      }    }    String maxResults = request.getParameter(MAX_RESULTS_PARAMETER);    if (isSet(maxResults)) {      try {        search.setMaxResults(Integer.parseInt(maxResults));      } catch (NumberFormatException e) {        throw new RecipeValidationException(String.format(            "Max results is not a number (%s).", maxResults));      }    }    search.setOwnItems(ownItems);    return search;  }  private boolean isSet(String parameter) {    return parameter != null && !"".equals(parameter);  }    private boolean isSet(String[] parameter) {    return parameter != null && parameter.length > 0;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -