Java之GET,POST实现上传下载

2019-08-25  本文已影响0人  凌云struggle

一、HTML语言

  超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。

常见方法介绍

1. HTML标题

<h1>这是一个标题</h1>
<h2>这是一个标题</h2>
<h3>这是一个标题</h3>
// 一共有5级标题

2. HTML 段落

align设置对齐方式,靠右,居中,靠左

<h1 align="center">阿里巴巴</h1>

3. HTML 链接

<!-- 插入链接 -->
    <a href="https://www.runoob.com/html/html-basic.html">这是一个链接</a>

4. HTML图片

 <center><img src="1.jpg" width="500" height="300"> </center>

5. HTML视频

<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
您的浏览器不支持Video标签。
</video>

6. HTML表格

<!-- 插入表格 -->
    <table border="1" bgcolor="FF7F50">
    <!-- tr表示行 ,td表示列 -->
        <tr>
            <td>姓名</td>
            <td>班级</td>
            <td>成绩</td>
        </tr>

        <tr>
            <td>小王</td>
            <td>计科1班</td>
            <td>90</td>
        </tr>
    </table>

ps:想了解更多点我HTML_教程

使用HTML语言做一个表单用于提交用户信息

  打开Apache服务器,输入对应的URL进入界面,输入用户输入姓名和密码,点击提交按钮,返回用户输入的用户名与密码。

<!-- 做一个表单用于提交用户的信息 -->
<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
</head>

<body background="1.png">
    <h1 align="center">登录</h1>
<!-- 表单的内容 -->
<!-- action :内容提交到服务器的那个程序中
            提交的内容有服务器的哪个文件来处理
    method:get  /   post  
 -->
    <form action="login.php" method="get">
        <center>
        用户名:<input type="text" name="user_name">
        <br><br><br>
        密&nbsp;&nbsp;码:<input type="password" name="user_password">
        <br><br>

        <input type="submit" name="提交">
        </center>
    </form>
</body>
</html>

二、PHP语言

  PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。
ps:想了解更多点击这里PHP语言教程

使用PHP接受外部传递过来的数据 ,即客户端提交的数据

数据提交方式:

  • get/GET:
    向服务器端提交数据 并获取服务器端返回的结果
    特点:提交的数据都在URL里面体现
    不安全
    当提交的数据比较多的时候无法使用
    数据不是特别重要并且少量使用get
  • post/POST:
    向服务器端提交数据 并获取服务器端返回的结果
    特点:提交的数据不会在URL里面体现
    安全 可以提交大量数据
<?php
    //获取提交的用户名
    $name = $_POST["user_name"];
    $password = $_POST["user_password"];

    //查询数据库
    
    //返回结果
    //echo "success";
    echo "用户名:" .$name. "  密码:" .$password;

?>

注意:PHP文件以 <?php 开始,避免出现数据读取错误

三、代码实现上传下载

  传统的客户端与服务器端使用socket的方式已经不能满足要求,因为这种方式只操作了客户端,没有操作服务器端,不能达到数据交互的效果,所以我们使用URL来实现.

 // 使用post上传数据 上传简单数据 不是文件
    public static void post() throws IOException {
        // 1. 创建URL
        URL url = new URL("http://127.0.0.1/login.php");

        // 2.获取connection对象
        // URLConnection
        // HttpURLConnection 自己需要设定请求的内容
        //                      请求方式  请求内容
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();

        // 3. 设置请求方式为post
        connection.setRequestMethod("POST");
        // 设置有输入流 需要下载
        connection.setDoInput(true);
        // 设置有输出流 需要上传
        connection.setDoOutput(true);

        // 4.准备上传的数据
        String data = "user_name=jack&user_password=123";

        // 5. 开始上传  输出流对象
        OutputStream os = connection.getOutputStream();
        os.write(data.getBytes());
        os.flush();  // 写完了

        // 6. 接收服务器端返回的数据
        InputStream is = connection.getInputStream();
        byte[] buf = new byte[1024];
        int length;
        while ((length = is.read(buf)) != -1){
            System.out.println(new String(buf,0,length));
        }

    }

// 下载数据  get 不带参数
    public static void getImage() throws IOException {
        // URL
        URL url = new URL("http://127.0.0.1/1.png");

        // 获取与服务器连接的对象
        URLConnection connection = url.openConnection();

        // 读取下载的内容 -- 获取输入流
        InputStream is = connection.getInputStream();

        // 创建文件保存的位置
        FileOutputStream fos = new FileOutputStream("D:\\AndroidStudioProjects\\JavaCourse\\Java\\src\\main\\java\\day14\\1.png");

        byte[] buf = new byte[1024];
        int length;
        while((length = is.read(buf)) != -1){
            fos.write(buf,0,length);
        }

    }

 // 带参数的get请求
    public static void getParams ()throws IOException {
        // 使用代码访问(提交/下载)服务器数据
        // URL 统一资源的定位
        // http://10.129.49.204/login.php?user_name=jack&user_password=123
        // 1.创建URL
        String path = "http://10.129.49.204/login.php?"+"user_name=jack&user_password=123";
        URL url = new URL(path);

        // 2.请求方式默认是get
        // 获取连接的对象   URLConnection封装了Socket
        URLConnection connection = url.openConnection();

        // 设置请求方式
        HttpURLConnection httpURLConnection = (HttpURLConnection)connection;
        httpURLConnection.setRequestMethod("GET");

        // 判断连接的状态
        System.out.println(httpURLConnection.getResponseCode());

        // 接收服务器端的数据
        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        System.out.println(br.readLine());

    }
}

四、心得体会

  通过学习了解到了如何使用GET/ POST方式来实现上传下载,也初步掌握了HTML语言和PHP语言的基本用法,很充实的一天。

上一篇下一篇

猜你喜欢

热点阅读