JavaWeb开发 —— Web入门

目录

一、Spring

二、SpringBootWeb快速入门

三、HTTP协议

1.  概述

2.  请求协议

3.  响应协议

四、Web服务器 - Tomcat

1.  介绍

2.  基本使用

3.  入门程序解析


一、Spring

① 官网:http://spring.io

 Spring 发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能。

③ Spring全家桶:

JavaWeb开发 —— Web入门_第1张图片

而我们直接基于 Spring Framework 框架的开发会存在配置繁琐、入门难度大两大缺点。

因此,又推出 Spring Boot 来简化配置、快速开发,但是其底层仍是Spring 。


Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率。

如何快速构建一个Spring应用:https://spring.io/quickstart

二、SpringBootWeb快速入门

① 需求:使用 SpringBoot 开发一个web应用,浏览器发起请求 /hello 后,给浏览器返回字符串 "Hello World ~"。

基于 Spring Boot 开发一个Web应用并启动,再打开浏览器并在地址栏访问Web应用(http:协议、localhost:当前本机服务、8080:端口号、/hello:访问的资源),发送请求会被Web程序处理,最终返回字符串给浏览器并展示。

JavaWeb开发 —— Web入门_第2张图片

 ② 开发步骤:

  1. 创建 springboot 工程,并勾选web开发相关依赖。
  2. 定义 Hellocontroller 类,添加方法 hello,并添加注解。
  3. 运行测试。
JavaWeb开发 —— Web入门_第3张图片 JavaWeb开发 —— Web入门_第4张图片
//请求处理类
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        System.out.println("hello world");
        return "hello world";
    }
}

//启动类:启动Springboot工程
@SpringBootApplication
public class SpringbootWebPro01Application {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootWebPro01Application.class, args);
    }

}

三、HTTP协议

1.  概述

① 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

JavaWeb开发 —— Web入门_第5张图片

  • 客户端浏览器请求服务器获取数据,因此浏览器就需要向服务器端发送请求,服务器端进而向浏览器响应对应数据。
  • 而浏览器向服务器发送请求就需要携带请求数据,服务器接收这些数据后就解析这些数据,而服务器要想成功解析这些数据,就需要知道浏览器发送过来的数据的具体信息。
  • 因此,浏览器和服务器之间要建议一定的协议,浏览器发送数据按照该格式发送,服务器端也按照该格式进行解析。

例如上述 /hello 案例:

JavaWeb开发 —— Web入门_第6张图片 JavaWeb开发 —— Web入门_第7张图片

 ② 特点:

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。缺点:多次请求间不能共享数据。优点:速度快

2.  请求协议

JavaWeb开发 —— Web入门_第8张图片

 常见请求头:

Host 请求的主机名
User - Agent 浏览器版本,例如Chrome浏览器的标识类似MOzilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0 (WindowsNT ....) like Gecko
Accept 表示浏览器能接收的资源类型,如 text/* ,image/* 或者 */* 表示所有。
Accept - Language 表示浏览器偏好的语言,服务器可以据此返回不同语言的网页。
Accept - Encoding 表示浏览器可以支持的压缩类型,例如gzip,deflate等。
Content - Type 请求主体的数据类型。
Content - Length 请求主体的大小(单位:字节)。

请求方式 - GET:请求参数在请求行中,没有请求体,如:/brand/findAll?name=OPPO&status=1。GET请求大小是有限制的。

请求方式 - POST:请求参数在请求体中,POST请求大小是没有限制的。




    
    Title


姓名: 密码:



姓名: 密码:

3.  响应协议

JavaWeb开发 —— Web入门_第9张图片

① 响应状态码:

1xx 响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它。
2xx 成功-表示请求已经被成功接收,处理已完成。
3xx 重定向-重定向到其他地方,让客户端再发起一次请求以完成整个处理。
4xx 客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等。
5xx 服务器错误-处理发生错误,责任在服务端。如:程序抛出异常等。

② 常见的响应状态码:

状态码 英文描述 解释
200 OK 客户端请求成功,即处理成功,这是我们最想看到的状态码
302 Found 指示所诸求的资源已移动到出Location响应头给定的URL,浏览器会自动重新访问到这个页面。
304 Not Modified 告诉客户端。你请求的资源至上次取得后,服务端并未更改。你直接用你本地级存吧,隐式重定向。
400 Bad Request 客户端请求有语法错误,不能被服务器所理解。
403 Forbidden 服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源。
404 Not Found 请求资源不存在,一般是URL输入有误,或者网站资源被删除了。
405 Method Not Allowed 请求方式有误,比如应该用GET请求方式的资率,用了POST
428 Precondition Required 服务器要求有条件的请求,告诉客户端委想访问该资源,必须携带特定的请求头。
429 Too Many Requests 指示用户在给定时间内发送了太多请求("限速"),配合Retry-After(多长时间后可以请求]响应头一起使用。
431 Request Header Fields Too Large 请求头太大,服务器不题愈处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
500 Internal Server Error 服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧。
503 Service Unavailable 服务器尚未准备好处理请求。服务器刚刚启动,还未初始化好。

 状态码大全:http://cloud.tencent.com/developer/chapter/13553

③ 常见响应头:

Content-Type 表示该响应内容的类型,例如:text/html,application/json。
Content-Length 表示该响应内容的长度(字节数)。
content-Encoding 表示该响应压缩算法,例如gzip。
Cache-Control 指示客户端应如何缓存,例如:max-age=300表示可以最多缓存300秒。
Set-Cookie 告诉浏览器为当前页面所在的域设置cookie。

四、Web服务器 - Tomcat

Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让web开发更加便捷。主要功能是"提供网上信息浏览服务”。

JavaWeb开发 —— Web入门_第10张图片

我们只要在服务器端安装一个Web服务器,比如Apache Tomcat,我们就可以将我们开发好的应用部署在Tomcat服务器上,启动服务器后就可以打开浏览器直接访问到部署在Tomcat服务器上的应用程序。

1.  介绍

① 概念:Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范 
② JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJBRMI、JSP、Servlet、XML、JMS、Java lDL、JTS、JTA、JavaMail、JAF。
③ Tomcat 也被称为Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行。
④ 官网:https://tomcat.apache.org/

2.  基本使用

① 下载:官网下载,地址 https://tomcat.apache.org/download-90.cgi

② 安装:绿色版,直接解压即可

JavaWeb开发 —— Web入门_第11张图片

③ 卸载:直接删除目录即可

④ 启动:双击:bin\startup.bat

  • 控制台中文乱码:修改 conf / logging.properties
  • java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHtandler.formatter = org.apache.juli.OneLineFormatter
    java.util.logging.ConsoleHandler.encoding = GBK

⑤ 关闭:

  • 直接x掉运行窗口:强制关闭
  • bin\shutdown.bat:正常关闭
  • Ctrl+C:正常关闭

常见问题:

① 启动窗口一闪而过:检查JAVA_HOME环境变量是否正确配置。

② 端口号冲突:找到对应程序,将其关闭掉。

  • 可以通过任务管理器-详细信息,结束掉java.exe进程
  • 也可以重新配置Tomcat端口号(conf/server.xml)

注意事项:HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。

⑥ Tomcat 部署项目:将项目放置到webapps目录下,即部署完成

3.  入门程序解析

JavaWeb开发 —— Web入门_第12张图片

① 起步依赖:

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖。
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖。
  • 官方提供的starter:https://docs.spring.io/spring-boot/docs/2.7.4/reference/htmlsingle/#using.build-systems.starters

② 内嵌Tomcat:

  •  在SpringBoot Web开发当中,已经将Tomcat集成进来。
  •  所以在我们运行启动类在启动SpringBoot项目时,会自动将内部的Tomcat服务器启动起来,并且占用Tomcat默认端口号8080。
  •  而这个端口号并不是之前安装的Web的Tomcat,而是SpringBoot外部环境内置的Tomcat,也叫内嵌Tomcat。

你可能感兴趣的:(JavaWeb开发,前端,spring,java)