2012-05-08 2 views
0

양식을 사용하여 JSP로 페이지를 작성하고 검색 쿼리를 삽입 할 텍스트 상자가있는 곳을 지정합니다. 검색 버튼을 클릭하면 텍스트 상자에서 검색어를 수집하여 Google에 제출 한 다음 결과를 수집하여 내 페이지에 표시합니다 (예 : 페이지의 양식 바로 아래).
프로그래밍 매개 변수로 서블릿에서 검색 매개 변수를 전달할 수 있다면 누구든지 저에게 제안 할 수 있습니까?JSP로 서블릿을 통해 웹 검색

모든 통찰력, 제안 또는 가짜 코드 샘플은 높이 평가 될 것입니다.

감사합니다.

Overview

Using REST

Java Library and Guide

내가이 무엇을 더 또는 덜 생각 : 구글 맞춤 검색 API의 개요와 아래의 지침을 확인하지만

답변

2

예는 가능하다 찾고 계신 분 :

package com.hahahaha.servlet; 

import com.google.api.client.http.javanet.NetHttpTransport; 
import com.google.api.client.json.jackson.JacksonFactory; 
import com.google.api.services.customsearch.Customsearch; 
import com.google.api.services.customsearch.model.Result; 
import com.google.api.services.customsearch.model.Search; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.List; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* 
* @author hahahahaha 
*/ 
@WebServlet(name = "GoogleSearchServlet", urlPatterns = {"/GoogleSearchServlet"}) 
public class GoogleSearchServlet extends HttpServlet { 

    /** 
    * Processes requests for both HTTP 
    * <code>GET</code> and 
    * <code>POST</code> methods. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 

     try { 
      out.println("<html>"); 
      out.println("<head>"); 
      out.println("<title>Servlet GoogleSearchServlet</title>"); 
      out.println("</head>"); 
      out.println("<body>"); 

      // Get your query string posted by the user 
      String query = request.getParameter("query");    
      //Instantiate a Customsearch object using NetHttpTransport and the JacksonFactory (JSON library) 
      Customsearch customsearch = new Customsearch(new NetHttpTransport(), new JacksonFactory()); 
      // Instantiate a Customsearch.Cse.List object using your query string 
      com.google.api.services.customsearch.Customsearch.Cse.List list = customsearch.cse().list(query); 
      // Set your API KEY 
      list.setKey("YOUR_API_KEY"); 
      // Set your custom search engine ID 
      list.setCx("YOUR_CSEID"); 
      // Execute the search 
      Search results = list.execute(); 
      // Get the result items 
      List<Result> items = results.getItems(); 
      // Loop through your result items and stream them to the client    
      for(Result result : items){ 
       out.println("<b>" + result.getHtmlTitle() + "</b>"); 
      }     
      out.println("</body>"); 
      out.println("</html>"); 
     } finally { 
      out.close(); 
     } 
    } 

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> 
    /** 
    * Handles the HTTP 
    * <code>GET</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Handles the HTTP 
    * <code>POST</code> method. 
    * 
    * @param request servlet request 
    * @param response servlet response 
    * @throws ServletException if a servlet-specific error occurs 
    * @throws IOException if an I/O error occurs 
    */ 
    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     processRequest(request, response); 
    } 

    /** 
    * Returns a short description of the servlet. 
    * 
    * @return a String containing servlet description 
    */ 
    @Override 
    public String getServletInfo() { 
     return "Short description"; 
    }// </editor-fold> 
} 
+0

답변 해 주셔서 감사합니다. 그러나 나는 그것이 무료 판에서 하루에 한정된 수의 질의만을 허용한다는 것을 안다. 지금 나는 너의 연결을보고 공부하고있다. 데모 프로젝트 만 구현하므로 유용 할 수 있습니다. – user1382329

+1

나는 하루에 제한된 수의 쿼리 만 허용하지만 그것이 무엇인지 알고있다. 나는이 한도를 부과하지 않았다 ... 구글이했다. 나는 내 친구에게 그 질문에 답했다. 그렇게 받아 들여라. – DaTroop

관련 문제