通過URL訪問WEB
阿新 • • 發佈:2018-12-22
- 當我們寫完一個web程式之後(例如一個Servlet程式類,或者一個JSP頁面),如果要訪問這個web程式可以通過瀏覽器進行訪問,還可以通過java客戶端進行訪問.
- 所謂的java客戶端指的是.java.net.URL處理類,通過這個URL類可以訪問指定的網頁上的程式類
- URL類的使用示例
- 建立一個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這個類
- 建立一個純粹的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
-
官網上有對這個元件的使用說明文件,文件中詳細寫了這個元件的使用方法