1. 程式人生 > >通過URL訪問WEB

通過URL訪問WEB

  • 當我們寫完一個web程式之後(例如一個Servlet程式類,或者一個JSP頁面),如果要訪問這個web程式可以通過瀏覽器進行訪問,還可以通過java客戶端進行訪問.
  • 所謂的java客戶端指的是.java.net.URL處理類,通過這個URL類可以訪問指定的網頁上的程式類
  • URL類的使用示例
  1. 建立一個HelloProject動態網頁專案,在這個專案之中建立一個HelloServlet程式類
package shu.mao.servlet;

import java.io.IOException;

import javax.servlet.
ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/HelloServlet") public class HelloServlet extends HttpServlet { @Override protected void doGet
(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("*************"+req.getParameter("name")); //服務端處理使用者請求,並打印出請求引數 resp.getWriter().println("name = "+req.getParameter("name")); } }
  • 本次通過java註解的方式設定對映路徑位:"/HelloServlet",那麼如果要在瀏覽器上訪問這個程式類的話,訪問路徑為:
http://localhost:8080/HelloProject/HelloServlet?name=Hello
  • 瀏覽器訪問結果

在這裡插入圖片描述

  • 如果想要通過java程式直接訪問這個程式類的話就要使用到java.net.URL這個類
  1. 建立一個純粹的java專案,定義一個Test類,在這個類中定義main方法來使用URL類
import java.io.InputStream;
import java.net.URL;
import java.util.Scanner;

public class Test {

	public static void main(String[] args) throws Exception{
		//設定訪問路徑
		String url = "http://localhost:8080/HelloProject/HelloServlet?name=Hello";
		//通過URL類直接訪問該路徑
		URL myUrl = new URL(url);
		//通過openStream()方法開啟這個路徑的連線,並返回一個InputStream
		InputStream input = myUrl.openStream();
		//進行連線
		Scanner sca = new Scanner(input);
		//設定換行符
		sca.useDelimiter("\n");
		while(sca.hasNext()){
			System.out.println(sca.next());
		}
	}
}

  • 控制檯輸出結果(Test類)

在這裡插入圖片描述

  • 控制檯輸出(Tomcat)
    在這裡插入圖片描述

  • 通過此程式可以說明,web程式不一定只能夠通過瀏覽器訪問,使用java程式同樣也可以訪問,但是以上的程式只是處理了GET請求,而在web中有兩種請求,get和post,要處理post請求需要配置一些頭資訊.

  • 所以java對web程式的呼叫只提供了一些基礎的功能,而對於一些複雜的操作並沒有支援, 如果要想使用這些支援,需要使用一些第三方元件包,例如Apache的HttpComponents元件

  • 要下載此開發包可以到Apache的官網上下載http://hc.apache.org/downloads.cgi

  • 官網上有對這個元件的使用說明文件,文件中詳細寫了這個元件的使用方法

在這裡插入圖片描述