美文网首页
Java之GET,POST实现上传下载

Java之GET,POST实现上传下载

作者: 凌云struggle | 来源:发表于2019-08-25 19:01 被阅读0次

    一、HTML语言

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

    • <!DOCTYPE html> 声明为 HTML5 文档
    • <html> 元素是 HTML 页面的根元素
    • <head> 元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8。
    • <title> 元素描述了文档的标题
    • <body> 元素包含了可见的页面内容
    • <h1> 元素定义一个大标题
    • <p> 元素定义一个段落

    常见方法介绍

    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></center> 设置居中
    • src 图片的路径
    • width height 设置图片的尺寸
     <center><img src="1.jpg" width="500" height="300"> </center>
    

    5. HTML视频

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

    6. HTML表格

    • border 边框宽度 bgcolor 边框颜色
    • tr 表示行 td 表示列
    <!-- 插入表格 -->
        <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上传简单数据

     // 使用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 不带参数

    // 下载数据  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请求

     // 带参数的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语言的基本用法,很充实的一天。

    相关文章

      网友评论

          本文标题:Java之GET,POST实现上传下载

          本文链接:https://www.haomeiwen.com/subject/sszfectx.html