您的位置:首页 > 新闻 > 会展 > 郑州新闻发布会直播_梁建国设计公司官网_宁德市医院东侨院区_百度热议

郑州新闻发布会直播_梁建国设计公司官网_宁德市医院东侨院区_百度热议

2025/2/23 23:32:15 来源:https://blog.csdn.net/qq_51580006/article/details/135278303  浏览:    关键词:郑州新闻发布会直播_梁建国设计公司官网_宁德市医院东侨院区_百度热议
郑州新闻发布会直播_梁建国设计公司官网_宁德市医院东侨院区_百度热议

Web入门

  • HTTP协议
    • HTTP
    • 请求数据的格式
    • 响应数据的格式
  • Web服务器
    • 前言
    • 创建和部署项目
    • IDEA中使用Tomcat
  • 请求响应
    • 请求
    • 响应

HTTP协议

HTTP

超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
在这里插入图片描述
简单来说,HTTP协议是浏览器和服务器之间建立好的约定,是数据传输的规则和格式,包括请求数据的格式和响应数据的格式。
HTTP协议特点:
1.基于TCP协议:面向连接,安全
2.基于请求-响应模型的:一次请求对应一次响应
3.HTTP请求是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的

  • 缺点:多次请求不能共享数据。Java中会采用会话技术(Cookie、Session)来解决这个问题。
  • 优点:速度快。

请求数据的格式

在这里插入图片描述

请求数据分为3部分:
1.请求行:请求数据的第一行。其中GET表示请求方式,/ 表示请求资源路径,HTTP/1.1表示协议版本。
2.请求头:第二行开始,格式为key : value形式。
常见HTTP请求头:

  • Host:表示请求的主机名
  • User-Agent:浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 … Chrome/79,IE浏览器的标识类似于Mozilla/5.0(Windows NT … )like Gecko;
  • Accept:表示浏览器能接收的资源类型。
  • Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页。
  • Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip、deflate等。

3.请求体:POST请求(特有)的最后一部分,存放请求参数。
在这里插入图片描述
GET请求和POST请求的区别:
1.GET请求的请求参数在请求行中,没有请求体,POST请求的请求参数在请求体中。
2.GET请求的请求参数大小有限制,POST没有。

响应数据的格式

响应数据分为3部分:
1.响应行:响应数据的第一行。其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述。
2.响应头:第二行开始,格式为key: value形式。
常见的HTTP响应头:

  • Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
  • Content-Length:表示该响应内容的长度(字节数);
  • Content-Encoding:表示该响应压缩算法,例如gzip;
  • Cache-Control:指示客户端应如何缓存,例如max-age=300,表示可以最多缓存300秒。

3.响应体:最后一部分,存放响应数据。
在这里插入图片描述
状态码详解

Web服务器

前言

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让web开发更加便捷。Web服务器的作用:

  • 封装HTTP协议操作,简化开发。
  • 可以将web项目部署到服务器中,对外提供网上浏览服务。

Tomcat是一个免费开源的轻量级Web服务器,支持Servlet/JSP少量JaveEE规范,Tomcat也称为Web容器、Servlet容器,Servlet需要依赖于Tomcat才能运行。

创建和部署项目

使用org.apache.maven.archetypes:maven-archetype-webapparchetype创建Maven项目即可创建出相应的webapp目录,但是Maven项目的Java文件和resources文件需要手动添加:
在这里插入图片描述

然后将项目放置到/Tomcat/webapps目录下,即可部署完成。
在这里插入图片描述
一般JavaWeb项目会被打成war包,然后将war包放到webapps目录下,Tomcat会自动解压缩war文件。

IDEA中使用Tomcat

当我们在编写JaveWeb项目时,每写一点代码就要测试一下,所以每次就需要将项目打包然后放在Tomcat的webapps目录下,这个过程非常的麻烦。
(一)集成本地Tomcat
IDEA界面右上角Edit Configurations… --> Add New Configuration --> Tomcat Server --> Local --> Application Server --> Configure -->选择Tomcat的文件路径 --> Apply --> OK
(二)使用Tomcat Maven插件
在pom.xml页面右键generate,选择plugin template,然后添加以下代码:

<plugins><!--tomcat的插件--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port> <!--访问端口号--><path>/</path>    <!--项目访问路径--></configuration></plugin>
</plugins>

请求响应

请求

简单参数
1.参数名与形参变量名相同,定义形参即可接收参数。

@RequestMapping("/simpleParam")
public String simpleParam(String name, Integer age){System.out.println(name+" "+age);return "OK";
}

2.方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射

@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name='name')String username, Integer age){System.out.println(username+" "+age);return "OK";
}

该注解的required属性默认是true,代表请求参数必须传递。
实体参数
1.简单实体对象:请求参数名与形参对象属性名相同,定义POJO接收即可。

@RequestMapping("simplePojo")
public String simplePojo(User user){System.out.println(user);return "OK";
}

2.复杂实体对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数。

@RequestMapping("complexPojo")
public String complexPojo(User user){System.out.println(user);return "OK";
}

数组集合参数
1.数组参数:请求参数名与形参中数组变量名相同,可以直接使用数组封装。

@RequestMapping("/arrayParam")
public String arrayParam(String[] hobby){System.out.println(Arrays.toString(hobby));return "OK";
}

2.集合参数:请求参数名与形参中集合变量名相同,通过@RequestParam绑定参数关系。

@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> hobby){System.out.println(hobby);return "OK";
}

日期参数
使用@DateTimeFormat注解完成日期参数格式转换。

@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updatetime){System.out.println(updatetime);return "OK";
}

json参数
json数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要@RequestBody标识。

@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){System.out.println(user);return "OK";
}

路径参数
通过请求URL直接传递参数,使用{…}来标识该路径参数,需要使用@PathVariable获取路径参数。

@RequestMapping("/pathParam/{id}/{name}")
public String pathParam(@PathVariable Integer id, @PathVariable String name){System.out.println(id);System.out.println(name);return "OK";
}

响应

1.@ResponseBody
位置:Controller类上/方法上
作用:将方法返回值直接响应,若返回值类型是实体对象/集合,转JSON格式响应。
2.统一响应结果
Result(code,msg,data)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com