通过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

  • 官网上有对这个组件的使用说明文档,文档中详细写了这个组件的使用方法

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43386754/article/details/85049360