javaweb-HTTP协议(服务器数据的接收、处理、响应流程)详解

2023-11-07

HTTP协议

● 什么是HTTP协议? 超文本传输协议(Hypertext Transfer Protocol)服务器传输超文本到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程

● HTTP是基于TCP/IP通信协议来传送数据

● HTTP是属于引用层的协议,由于棋简捷、快速的方式、适用于分布式超媒体信息系统

HTTP请求

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送一个http请求。

就是从浏览器中以超链接,表单等向服务器发送的请求都称为http请求。

请求包括:请求行,请求头,(这两部分会自动发送) 请求体。

请求行:http请求方式,请求资源名称,http版本(例如post、post、text.jsp、HTTP/1.1)

请求头:服务器端和客户端的一些信息格式为键值对。

请求体:是指表单post方式请求时,向服务器端发送的数据

请求头包含主机地址,以及客户端的一些环境信息,以键值对的形 式传递.

Host: 127.0.0.1:8088 请求的主机地址
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8 浏览器能够处理的内容类型
Accept-Encoding: gzip, deflate, br 浏览器能够处理的压缩编码
Accept-Language: zh-CN,zh;q=0.9 浏览器当前设置的语言
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 使用的浏览器和操作平台信息
Connection: keep-alive 浏览器与服务器之间连接的类型

请求体代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以 键值形式传递, 多个用&链接,服务器接收到后再解析. username=admin&userpwd=123

两种HTTP请求方式

get(获得):从服务器端获取数据,在地址栏会显示发送的数据,但是一般有以下状况
1、不安全
2、传输的数据大小受限制 一般浏览器的大小为2-5kb
● 以超链接访问,默认是GET方式
● form提交,不指定method,默认为GET方式

post(发送):向服务器端发送数据,向服务器端发送数据,发送的数据是在请求体当中,安全(相对安全),大小不受限制
● form提交,指定method=“post”

get/post的区别

● get方式主要是从服务器获取信息;post主要是向服务器提交信息
● get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据是放置在请求体中提交。
● get方式提交的数据大小受限制一般都很小(不同浏览器也会有不同);而 post则没有此限制。

在父类的service中写了一个判断 get---->doGet、post----->doPost
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的第一个web程序</title>
</head>
<body>
<a href="demourl">列表</a>
<form action="demourl" method="post">
    账号:<input type="text">
    密码:<input type="password">
    <input type="submit" value="保存">
</form>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>demo</servlet-name>
        <servlet-class>com.student.firstweb.servlet.Demo1Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo</servlet-name>
        <url-pattern>/demourl</url-pattern>
        <!--前端点击的连接就是与这个做连接相对应-->
    </servlet-mapping>
</web-app>
package com.student.firstweb.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Demo1Servlet extends HttpServlet {
    //service 每次请求都要调用,由于http请求分为get,post请求,在service中两者处理上有略微不同
    //所以父类中定义了doGet()  doPost()分别处理get,post请求

    //就是在父类service的方法中写了一个判断 get就调用doGet(),post就调用doPost()

    //doGet()和doPost()都是属于service中的方法。
    //doGet()处理get请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet方法");
    }

    //doPost()处理post请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost方法");
    }
}

分别点击列表和保存就调用了各自的请求方式
列表—>doGet、保存—>doPost
在这里插入图片描述

在服务器接收信息(HttpServletRequest)

● 请求和响应是Web交互最基本的模式,在Servlet中,用HttpServletRequest 来表示请求。

(HttpServletRequest req, HttpServletResponse resp)中的HttpServletReuuest req

● HttpServletRequest是ServletRequest的子接口。HttpServletRequest比ServletRequest多了一些针对于Http协议的方法。

数据请求先到达服务器,服务器接收请求数据,然后服务器将接收到的数据封装到RequestFacade(这里说明的这个类属于Tomcat),而他实现的是java对外提供的HttpServletRequest接口 (是RequestFacade implements HttpServletRequest) ,所以程序员只要面对HttpServletRequest req,服务器就会把接收到的数据传输过来(例如:Tomcat就将它自己RequestFacade这个类给传输过来)

所以我们在写代码的时候只需要写一个HttpServletRequest,但实际上传输过来的是RequestFacade

所以我们就只需要学习java中的统一标准接口。
这就是javaSE多态的体现

● HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息。

请求行

获得请求类型数据: req.getMethod()
获得协议:req.getProtocol()
获得请求服务器的地址:req.getServerName()
获得请求服务器的端口:req.getServerPort()

请求头

获得客户端的ip:req.getRemoteAddr()
获得客户端的端口:req.getServerPort()
获得请求头中的某一数据:req.getHeader(“User-Agent”)
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的第一个web程序</title>
</head>
<body>
<!--前段传输的数据一定都是键=值&键=值-->
<a href="demourl?name=张三&age=20">列表</a>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>demo</servlet-name>
        <servlet-class>com.student.firstweb.servlet.Demo1Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo</servlet-name>
        <url-pattern>/demourl</url-pattern>
        <!--前端点击的连接就是与这个做连接相对应-->
    </servlet-mapping>
</web-app>
package com.student.firstweb.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class Demo1Servlet extends HttpServlet {
    //service 每次请求都要调用,由于http请求分为get,post请求,在service中两者处理上有略微不同
    //所以父类中定义了doGet()  doPost()分别处理get,post请求

    //就是在父类service的方法中写了一个判断 get就调用doGet(),post就调用doPost()

    //doGet()和doPost()都是属于service中的方法。
    //doGet()处理get请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet方法");
        //请求行数据
        System.out.println(req.getMethod());//获得请求类型数据
        System.out.println(req.getProtocol());//获得协议
        System.out.println(req.getServerName());//获得请求服务器的地址
        System.out.println(req.getServerPort());//获得请求服务器的端口

        //请求头数据
        System.out.println(req.getRemoteAddr());//获得客户端的ip
        System.out.println(req.getServerPort());//获得客户端的端口
        System.out.println(req.getHeader("User-Agent"));//获得请求头中的某一数据
     }
}

在这里插入图片描述

请求体

接收用户的请求数据,因为前段传输过来的数据都是键值对,所以后端就可以通过键来接收前端传输过来的数据。

通过parameter来获取前段发送过来的数据

getParameter(name) — String 通过name获得值
getParameterValues — String[ ] 通过name获得多值
req.getParameter(“name”)

Tomcat8.0之后get请求数据的解码方式支持中文 ,但是post请求解码是不支持中文的,所以我们要设置post请求数据的解码格式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的第一个web程序</title>
</head>
<body>
<!--前段传输的数据一定都是键=值&键=值-->
<a href="demourl?name=张三&age=20">列表</a>
<form action="demourl" method="post">
    账号:<input type="text" name="account">
    密码:<input type="password" name="password">
    课程:<input type="checkbox" value="java" name="course">java
    <input type="checkbox" value="c" name="course">c
    <input type="checkbox" value="python" name="course">python
    <input type="submit" value="保存">
</form>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>demo</servlet-name>
        <servlet-class>com.student.firstweb.servlet.Demo1Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo</servlet-name>
        <url-pattern>/demourl</url-pattern>
        <!--前端点击的连接就是与这个做连接相对应-->
    </servlet-mapping>
</web-app>
package com.student.firstweb.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

public class Demo1Servlet extends HttpServlet {
    //service 每次请求都要调用,由于http请求分为get,post请求,在service中两者处理上有略微不同
    //所以父类中定义了doGet()  doPost()分别处理get,post请求

    //就是在父类service的方法中写了一个判断 get就调用doGet(),post就调用doPost()

    //doGet()和doPost()都是属于service中的方法。
    //doGet()处理get请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet方法");

        //接收用户请求的数据,通过键名来获得前段的数据
        // Tomcat8.0之后get请求数据的解码方式支持中文
        String name = req.getParameter("name");
        System.out.println(name);
        System.out.println(req.getParameter("age"));
    }

    //doPost()处理post请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doPost方法");

        //因为不支持中文,所以就要设置中文编码
        req.setCharacterEncoding("utf-8");//设置post请求数据的解码格式
        System.out.println(req.getParameter("account"));
        System.out.println(req.getParameter("password"));
        System.out.println(req.getParameter("course"));
        String[] courses = req.getParameterValues("course");
        System.out.println(Arrays.toString(courses));
    }
}

在这里插入图片描述

处理

例如:使用jdbc处理

响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。
响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。

HTTP/1.1 (协议版本) 200(状态吗) OK(状态码描述)

状态码就是:服务器和浏览器用于确定状态的固定数字号码(实现固定好的)

◆ 200:请求成功
◆ 302:请求重定向
◆ 400:语义有误,当前请求无法被服务器理解或请求参数有误
◆ 404:请求资源不存在,通常是路径写错了或者服务器资源删除了
◆ 500:服务内部错误(代码异常)

响应头就是用于描述服务器的基本信息,以及数据描述
Ser ver Apache-Coyote/1.1
Content-Type text /html;charset=UTF-8
Content-Length 0
Date Wed, 13 Sep 2017 02:26:07 GMT

响应体则代表服务器向客户端浏览器回送的正文

(HttpServletRequest req, HttpServletResponse resp)中的HttpServletResponse resp

就是根据处理的结构向客户端做出响应

也是一个接口,是和接收同理。Tomcat实现出java中的一个接口==(ResponseFacade implements HttpServletResponse)==,我们利用多态的性质通过java的接口来调用我们需要的方法 。

 //响应
        PrintWriter writer = null;
        try{
            resp.setContentType("text/html;charset=utf-8");//设置响应内容的编码格式
            writer = resp.getWriter();//获得打印字符流
            writer.println("<h1>操作成功<h1>");
        }catch (Exception e){
            e.printStackTrace();
            writer.println("<h1>服务器忙<h1>");
        }

是写在servlet中,响应回去我们所需要的动态页面内容

早期的时候是用jsp来书写需要返回的动态页面,但是到现在它已经被淘汰了,因为18年出了ajax,几乎已经完全替换了jsp的书写

使用ajax从前端向后端进行发起请求交互

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javaweb-HTTP协议(服务器数据的接收、处理、响应流程)详解 的相关文章

  • Android PhoneGap 插件,UI 选项卡栏,调整 WebView 大小

    我正在创建一个美味的 PhoneGap 插件 希望一旦它能被打开 准备好了 插件基本完成了 我只需要一个漂亮的用户界面 相互作用 简而言之 我想创建一个 本机 android 工具栏组件 如果您实现 PhoneGap UIControls
  • 手动编辑 Jar 以更改包名称

    我有一个来自外部源的 jar 文件 jar 中的所有类都位于 com xyz 包中 我想将所有类移动到 com xyzold 包中 这是否像解压缩 jar 将 xzy 文件夹重命名为 xyzold 并重新压缩它一样简单 或者我还需要修改每个
  • jvm 次要版本与编译器次要版本

    当运行使用具有相同主要版本但次要版本高于 JVM 的 JDK 编译的类时 JVM 会抛出异常吗 JDK 版本并不重要 类文件格式版本 http blogs oracle com darcy entry source target class
  • URL.setURLStreamHandlerFactory

    我正在使用带有嵌入式 Jetty 的可执行 jar 开发一个 Web 应用程序 我的jar包含一个依赖jar jar in jar 我参考了JarRsrcLoader and RsrcURLStreamHandlerFactory由 Ecl
  • 将过滤器添加到 Eclipse 中的 Project Explorer

    我想向 Project Explorer 添加一个新的过滤器 以向用户隐藏一些在 Eclipse RCP 应用程序中自动创建的项目 到目前为止我已经找到了两个扩展点 org eclipse ui ide resourceFilters 允许
  • 请参阅 Java EE eclipse 调试中的 POST 参数

    我在调试 Java EE 方面没有经验 我更像是一个 javascript 人 我需要查看哪些 HTTP POST 参数到达服务器端 我在表单将其操作指向的 jsp 文件中放置了一个断点 现在我在调试变量窗口中找不到 POST 内容 他们在
  • 如何拦截 REST 端点以接收所有标头?

    我当前的代码是 Path login RequestScoped public class LoginResource GET SecurityChecked public Response getUser HeaderParam AUTH
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 当您在数组列表上调用remove(object o)时,它如何比较对象?

    当您在 java 中的数组列表上调用remove object o 时 它如何比较对象以找到要删除的正确对象 它使用指针吗 或者它使用 Comparable 接口来比较对象吗 ArrayList remove 依赖于对象的实现Equal方法
  • 带有 OpenId 提供程序的 Java Spring 安全性

    我有一个 spring MVC 应用程序 另一个客户端应用程序想要使用 open id connect 访问我的 spring 应用程序 如何在服务器端实现开放ID提供商 请帮忙 MITREid 连接 OpenID Connect Java
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • Java中的回调接口是什么?

    SetObserver 接口的代码片段取自有效的Java 避免过度同步第67条 public interface SetObserver
  • Java:由 HTTP 连接创建的等待连接线程存活时间很长

    我有一个服务器端代码 用于检查 SOAP 服务是否已启动 代码如下 String response while response length 0 try final URL url new URL DummySoapServiceURL
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 公共方法与公共 API

    在干净的代码书中 有一个观点是 公共 API 中的 Javadocs 同样 Effective java 一书也有这样的内容 项目 56 为所有公开的 API 元素编写文档注释 所以这就是我的问题 所有公共方法都被视为公共 API 吗 它们
  • 为什么这个私人浮动字段变为零?

    我有一些奇怪的行为 我很难向自己解释 称为 textureScale 的浮点字段变为零 如果某些代码正在更改该值 则可以解释这一点 然而 我希望能够通过将其设置为 私有最终浮点 来导致构建失败 或者至少是运行时异常 那么无论更改该值都将失败
  • 如何用表达式语言获取布尔属性?

    如果我有一堂这样的课 class Person private int age public int getAge return age public boolean isAdult return age gt 19 我可以得到age像这样
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • 为什么应该首选 Java 类的接口?

    PMD https pmd github io 将举报以下违规行为 ArrayList list new ArrayList 违规行为是 避免使用 ArrayList 等实现类型 而是使用接口 以下行将纠正违规行为 List list ne
  • Java、Spring、Hibernate找不到org.springframework.orm.hibernate3.LocalSessionFactoryBean

    我正在尝试制作 spring hibernate ant 项目 目前我收到此错误 HTTP Status 500 type Exception report message description The server encountere

随机推荐

  • 凸优化学习(六)——一个简单的对偶实例

    注意 本文内容来自于吴恩达老师cs229课堂笔记的中文翻译项目 https github com Kivy CN Stanford CS 229 CN 中的凸优化部分的内容进行翻译学习 2 一个简单的对偶实例 作为对偶的一个简单应用 在本节
  • 最接近的三数之和

    题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target 请你从 nums 中选出三个整数 使它们的和与 target 最接近 返回这三个数的和 假定每组输入只存在恰好一个解 示例 输入 nums 1 2 1 4 t
  • (计算机复试考研)操作系统重点知识梳理

    1 操作系统引论 操作系统 配置在计算机硬件上的第一层软件 是对硬件系统的首次扩充 为用户和应用程序提供一个简单接口 定义 一组能有效组织和管理计算机硬件和软件的资源 合理地对各类作业进行调度 方便用户使用的程序的集合 操作系统的目标 1
  • C++线程池的实现

    池式结构 在计算机体系结构中有许多池式结构 内存池 数据库连接池 请求池 消息队列 对象池等等 池式结构解决的主要问题为缓冲问题 起到的是缓冲区的作 线程池 通过使 线程池 我们可以有效降低多线程操作中任务申请和释放产 的性能消耗 特别是当
  • Android OpenGL ES零基础系列(三):OpenGL ES的渲染管道及VertexShader与FragmentShader

    前言 在前2篇文章中 我们都说到着色器 且在第二篇中正式说到 这着色器只能用在OpenGL ES2 x等可编程管道里面 而在OpenGL ES1 x是不能用的 但我们一直没有说这是为什么 两者有什么区别 那这篇我们就一起来学习下OpenGL
  • react新出来两个钩子函数是什么?和删掉的will系列有什么区别?

    react新旧生命周期的区别 1 新生命周期中去掉了三个will钩子 分别为componentWillMount componentWillReceiveProps componentWillUpdate 2 新生命周期中新增了两个钩子 分
  • DB2数据库-获取表结构异常:[jcc][t4][1065][12306][4.26.14]CharConvertionException ERRORCODE=-4220,SQLSTATE=null

    背景如下 DB2数据库 获取表结构异常 jcc t4 1065 12306 4 26 14 CharConvertionException ERRORCODE 4220 SQLSTATE null 搜索引擎搜索解决办法 官方解决方法 db2
  • Transformer(四)--实现验证:transformer 机器翻译实践

    转载请注明出处 https blog csdn net nocml article details 125711025 本系列传送门 Transformer 一 论文翻译 Attention Is All You Need 中文版 Tran
  • HBase与MapReduce整合:TableMapper与TableReducer部分源码分析

    目录 关于TableMapper和TableReducer TableMapReduceUtil initTableMapperJob initTableReducerJob TableInputFormat TableRecordRead
  • 基于Hybris平台的电商个性化服务实践

    个性化服务是什么 下面例举几个典型的电商网站的个性化服务案例 对于浏览过新品推荐的客户 电商网站主动为此类客户推荐一款新上市的商品 对于单笔订单总金额达到1000 并且该订单中包含化妆品的客户 此用户将被升级为金牌客户 后续电商网站定期为金
  • RAID介绍及RAID5配置实例(超详细)

    一 RAID磁盘阵列介绍 磁盘阵列的全名 Redundant Arrays of Inexpensive Disk RAID 中文简称是独立冗余磁盘阵列 RAID可以通过技术 软件或者硬件 将多个独立的物理硬盘整合成为一个较大的硬盘组 逻辑
  • MATLAB实现基本的遗传算法(写成函数形式,可调用),优化目标函数,并举例展示

    遗传算法 其本质上是一种进化算法 相比其他的算法应用范围比较广泛 特别是对于一些非线性 多模型 多目标的函数优化问题 用其他的优化方法较难求解 而遗传算法可以方便的得到较好的结果 不过正如我在PSO粒子群算法的文章中说道 每种算法的应用场景
  • Ubuntu: 安装最新版本的 Nginx

    Ubuntu 默认 apt 源中的 Nginx 版本比较旧 今天介绍下如何在 Ubuntu 中安装最新版本的 Nginx 要安装较新版本的 Nginx 可以使用 Nginx 的 APT 源 执行如下脚本来添加 Nginx APT 源 bin
  • gitlab项目的备份与迁移

    gitlab项目的备份与迁移 最近工作中需要用到gitlab项目的备份与迁移工作 因此做了一个简单的部署配置 这里小小记录一下 一 gitlab的安装 1 安装准备 1 本人由于在centos7上部署gitlab 因此使用的gitlab的版
  • unity3d 启动项目卡在load script assembly

    最近突然碰到unity启动项目 卡在load script assembly的情况 删除了library重开也还是如此 日志打印里面打印到 刷新script开始然后就戛然而止了 后来发现是 项目里某个文件夹被一个命令行占用了 unity在导
  • 安装nrm报错

    internal validators js 124 throw new ERR INVALID ARG TYPE name string value TypeError ERR INVALID ARG TYPE The path argu
  • 2023华为OD机试真题【最接近中位数的索引】

    前言 本题使用Java解答 如果需要python版本答案 请查看以下链接 Python版本答案 题目内容 给定一个数组X和正整数K 请找出使表达式X i x i 1 X i K 1 结果最接近于数组中位数的下标i 如果有多个i满足条件 请返
  • [Java]两个有理数的加减乘除

    public class Rational private long num 0 分子 private long den 1 分母 Begin long i public Rational long num long den this nu
  • Blender 的 操作与快捷键

    Blender是一款开源的免费的3D建模软件 目前来看还不错哦 Blender的快捷键 鼠标右键选中物体 左键是确认 选中下 按住滑轮拖动鼠标可以环视 选中下 按住shift正反键可以上下 选中下 按住shift按住滑轮拖动鼠标可以左右 小
  • javaweb-HTTP协议(服务器数据的接收、处理、响应流程)详解

    HTTP协议 HTTP请求 两种HTTP请求方式 在服务器接收信息 HttpServletRequest 请求行 请求头 请求体 处理 响应 HTTP协议 什么是HTTP协议 超文本传输协议 Hypertext Transfer Proto