Có vẻ như bạn đang cố tạo ứng dụng tìm kiếm trên web. Với mục đích này, tôi khuyên bạn nên sử dụng thư viện HtmlUnit.
Giúp dễ dàng làm việc với biểu mẫu, proxy và dữ liệu được nhúng trong các trang web. Dưới mui xe tôi nghĩ rằng nó sử dụng HttpClient của Apache để xử lý các yêu cầu HTTP, nhưng điều này có lẽ là quá thấp để bạn lo lắng.
Với thư viện này, bạn có thể kiểm soát trang web bằng Java giống như cách bạn kiểm soát trang web trong trình duyệt web: nhấp vào nút, nhập văn bản, chọn giá trị.
Dưới đây là một số ví dụ từ HtmlUnit's getting started page:
Nộp một hình thức:
@Test
public void submittingForm() throws Exception {
final WebClient webClient = new WebClient();
// Get the first page
final HtmlPage page1 = webClient.getPage("http://some_url");
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("myform");
final HtmlSubmitInput button = form.getInputByName("submitbutton");
final HtmlTextInput textField = form.getInputByName("userid");
// Change the value of the text field
textField.setValueAttribute("root");
// Now submit the form by clicking the button and get back the second page.
final HtmlPage page2 = button.click();
webClient.closeAllWindows();
}
Sử dụng một máy chủ proxy:
@Test
public void homePage_proxy() throws Exception {
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_2, "http://myproxyserver", myProxyPort);
//set proxy username and password
final DefaultCredentialsProvider credentialsProvider = (DefaultCredentialsProvider) webClient.getCredentialsProvider();
credentialsProvider.addProxyCredentials("username", "password");
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());
webClient.closeAllWindows();
}
Lớp WebClient
là đơn ren, vì vậy mỗi chủ đề đó giao dịch với một trang web sẽ cần một cá thể WebClient
của riêng nó.
Trừ khi bạn cần để xử lý Javascript hoặc CSS, bạn cũng có thể tắt những khi bạn tạo cho khách hàng:
WebClient client = new WebClient();
client.setJavaScriptEnabled(false);
client.setCssEnabled(false);
Nguồn
2010-09-12 12:14:40
Câu hỏi có vẻ khá rõ ràng phía máy khách. Servlets và JSP không liên quan đến chức năng phía máy khách. – lexicore
Nghe có vẻ như jorik1000 đang cố gắng phát triển một ứng dụng phía máy chủ, nhưng đúng hơn là một ứng dụng web chuyên dụng có thể gửi và gửi thông tin. HttpUnit được thiết kế để làm cho việc kiểm tra đơn vị của các trang web trở nên dễ dàng, nhưng kết quả là nó cũng là một công cụ tốt để làm việc với một trang web ở mức cao đến các công cụ chung như kéo thông tin ra và điền vào biểu mẫu. –
JSP không phải là phía khách hàng? – duffymo