目录

一、Spring

二、SpringBootWeb快速入门

三、HTTP协议

1.  概述

2.  请求协议

3.  响应协议

四、Web服务器 - Tomcat

1.  介绍

2.  基本使用

3.  入门程序解析


一、Spring

① 官网:http://spring.io

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

③ Spring全家桶:

而我们直接基于 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程序处理,最终返回字符串给浏览器并展示。

 ② 开发步骤:

  1. 创建 springboot 工程,并勾选web开发相关依赖。
  2. 定义 Hellocontroller 类,添加方法 hello,并添加注解。
  3. 运行测试。
//请求处理类
@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,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

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

例如上述 /hello 案例:

 ② 特点:

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

2.  请求协议

 常见请求头:

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请求大小是没有限制的。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form action="" method="get">姓名:<input type="text" name = "name">密码:<input type="password" name="password"><input type="submit" value="提交表单Get">
</form><br><br><br><form action="" method="post">姓名:<input type="text" name = "name">密码:<input type="password" name="password"><input type="submit" value="提交表单Get"></form>
</body>
</html>

3.  响应协议

① 响应状态码:

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开发更加便捷。主要功能是"提供网上信息浏览服务”。

我们只要在服务器端安装一个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

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

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

④ 启动:双击: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)
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"/>

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

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

3.  入门程序解析

① 起步依赖:

  • 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开发 —— Web入门相关推荐

  1. Java安全-Springboot Javaweb开发急速入门

    文章目录 创建项目 需要配置数据库 启动服务 添加web控制器 数据库操作 1.建立实体类 2.建立mapper接口 3.建立xml文件,引入mybatis 4.建立service类 5.在contr ...

  2. Python+Vue开发Web入门实例

    其实是个夭折了的练手项目,用Python写的后端,提供json格式数据给前端Vue进行渲染 代码写的比较乱,不过还是不忍扔掉,归档记录一下吧,以后再用到了也可以做个参考 数据库 文件列表 db.py ...

  3. java web 是什么_什么是javaweb开发

    Java:简单来说,Java是一门语言,是一门和计算机交流的语言. Web:web(World Wide Web)即全球广域网,它是一种分布式图形信息系统.简单来说就是 浏览器上的一个个网站. Jav ...

  4. java 开发web页面跳转,javaweb页面跳转

    java动态web页面,JavaWEB入门,javaweb页面跳转,javaweb页面登录 他们之间的联系是什么 8 serverlet 的生命周期及各阶段的作用 9 java web两种跳转方式分别 ...

  5. JavaWeb学习总结(一)——JavaWeb开发入门(转载)

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...

  6. pythonweb开发-Python Web开发从入门到精通

    Python Web开发从入门到精通循序渐进地讲解了Python Web开发的核心知识,并通过具体实例的实现过程演示了Web开发程序的流程.Python Web开发从入门到精通共15章,内容包括Pyt ...

  7. JavaWeb学习总结(一):JavaWeb开发入门

    一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...

  8. java判断读到末尾_Java Web入门之java--第一节 java 简介及开发环境安装

    本篇博客是Java web入门的第一篇博客,这篇博客主要讲述java语言的一些简介. 一)先从Java语言的诞生说起. 1991年,Sun公司在一个叫做James Gosling的人的带领下,成立了一 ...

  9. JavaWeb开发专题(一)-JavaWeb入门

    1.JavaEE的概念 Java Enterprice Edtion(Java企业版).JavaEE并不是一个具体的技术.而是由SUN公司提出的一个Java 企业级开发的平台,是一种标准.其中包含13 ...

最新文章

  1. linux下如何查看某个软件 是否安装??? 安装路径在哪???
  2. 本科生怎样发表论文?
  3. 撒花!中文翻译仓库链接已加入 ML.NET 官方示例网站首页
  4. JavaScript基础函数体中的唯一var模式(002)
  5. xml可以打包成jar吗_国内飞机上可以带化妆品吗 坐飞机怎么打包化妆品
  6. iPhone11 全线降价;哈啰出行否认大量裁员;LineageOS 17.1 发布| 极客头条
  7. android启动服务的生命周期,Android Service的两种启动方式以及生命周期
  8. Matlab图像显示
  9. 百度云 自然语言处理(Nlp)
  10. python中读取列表所有元素_python获取所有子元素
  11. python中的Rotation常见报错问题
  12. 基于SVM的中文垃圾短信分类
  13. 【已解决】The server cannot or will not process the request due to something that is perceived to be ...
  14. 日本口音英语发音规则
  15. unity3D 初学者的个人总结
  16. html 不出现水平滚动条,html – 不带滚动条的水平滚动
  17. 【AD封装】2.54间距排针排母插件贴片(带3D)
  18. discuz 数据字典大全
  19. 常见笔记本BIOS启动键总结( 超级详细 ! ! ! )
  20. 一年节气查询阳历日期与节气名称

热门文章

  1. 蓝牙协议spec文档免费下载官网下载(免费)
  2. 利用幂等性区分HTTP的POST与PUT请求
  3. C语言编程之错误一:error C2059:syntax error : ‘)’
  4. WordPress重要文件wp-seting.php文件详解
  5. 高校宿舍管理系统详细需求分析说明书
  6. Linux下异步IO(libaio)的使用以及性能
  7. render函数的使用
  8. 【现代无线通信技术】1.1OFDM/OFDMA技术
  9. layui解决数据表格右侧有空白现象
  10. 浅谈JS中的escape,URLEncode与encodeURIComponent