一、新建Java Web 项目HelloWorld

1.新建项目

新建Java Web项目,File->New Project

选择Java Enterprise->Web Application

修改项目名称HelloWorld

java网页源码怎么用 javaweb源码怎么用_java网页源码怎么用


java网页源码怎么用 javaweb源码怎么用_客户端_02


java网页源码怎么用 javaweb源码怎么用_java网页源码怎么用_03

2.项目目录结构

	.idea:包含IDEA环境配置文件,不需要修改
	src:存放java源码文件
		在src下新建java类文件

java网页源码怎么用 javaweb源码怎么用_java网页源码怎么用_04

web:存放jsp页面
		修改index.jsp文件

java网页源码怎么用 javaweb源码怎么用_java网页源码怎么用_05

3.启动服务器
	点击运行

java网页源码怎么用 javaweb源码怎么用_客户端_06

自动打开浏览器访问8080端口

java网页源码怎么用 javaweb源码怎么用_客户端_07

4.Tomcat的配置
	IDEA修改静态资源不用重启
		File--settings--Build,Excluton...--compiler--勾选Make project automatically
	服务器Update默认更新模式
		Tomcat—>Edit Configurations...,配置Run/Debug环境

java网页源码怎么用 javaweb源码怎么用_java_08

1)update resources ---- 更新静态的资源,比如html,js,css等 运行模式和调试模式都是立即生效。 
			2)update classes and resources ---- 更新java,jsp和静态资源(
			java 修改后,会被编译成.class 然后覆盖到target/XX文件夹下,IDE调试模式的情况下,立即生效。IDE运行模式下,不立即生效,需要redeployed才可生效。 
			jsp修改后,再次被访问的时候,会自动更新,重新编译成.java---->.class 保存在tomcat的work目录下。由于是访问时才检测是否修改,是否需要重新编译,所以 IDE 运行模式 和 IDE调试模式下,都是立即生效,刷新下页面就可。
			3) redeployed ----- 重新部署,发布到tomcat里,不重启tomcat,而是把原来的删掉,然后重新发布,修改会立即生效;
			4)restart server ----- 重启tomcat

二、 HTTP简介
1.什么是HTTP协议?
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。
尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。
通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息。
2.HTTP的作用和特点
作用
由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。HTTP使用TCP而不是UDP的原因在于(打开)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。
特点
1.基于请求/响应模型的协议。请求和响应必须成对,先有请求后有响应
2.http协议默认端口:80
3.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
4.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
5.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
6.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
3.HTT协议的组成
Http协议由Http请求和Http响应组成,当在浏览器中输入网址访问某个网站时, 你的浏览器会将你的请求封装成一个Http请求发送给服务器站点,服务器接收到请 求后会组织响应数据封装成一个Http响应返回给浏览器。即没有请求就没有响应。(请求和响应是成对存在的)
4.HTTP请求
请求行
什么是请求行?
请求行里包括了HTTP的请求方式,请求资源名称、HTTP版本。

例:POST /post.html HTTP/1.1

请求行格式:请求方式 资源路径 协议/版本
HTTP请求方式:请求行中的POST称之为请求方式,常见的请求方式有:POST、GET、DELETE、PUT
1)GET请求:
向服务器的特定资源发出查询请求,一般用于查询数据和资源的请求中。

get请求查询的参数可以在浏览器的地址栏中显示
请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接
没有请求体
例:GET /get.html?name=xiaohong&password=123456 HTTP/1.1
2)POST请求:
向服务器提交数据,一般用在客户端将本地数据或者资源提交给服务器,例如注册用户,将用户信息提交给服务器。

POST请求会把请求的数据放置在HTTP请求体中。
例:POST /post.html HTTP/1.1

name=xiaohong&password=123456放在请求体中


			使用场景:
				GET请求通常用于查询操作
				POST通常用于提交数据操作
			区别
				在HTTP规范中,没有对URL的长度和传播的数据大小进行限制。但是在实际开发过程中,对于GET请求,特定的浏览器和服务器对URL的长度有限制。因此,在使用GET请求时,传输数据会受到URL长度的限制
				对于POST,由于不是URL传值,理论上传输数据长度不受限制
	什么是请求头?
		请求头用于描述客户端请求哪台主机,以及客户端的一些环境信息等

请求头以键值对(key-value)方式传递数据

例如:

Host: localhost:8080

Connection: keep-alive

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0…

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,en;q=0.8

Cache-Control: max-age=0

Cookie: JSESSIONID=E36ED4604B92B345C7080A06A1F16734

什么是请求体?
		代表着浏览器在POST请求方式中,传递给服务器的参数及数据,请求体中的每一个数据都是使用键值对(key-value)形式,多个值用&连接,注:服务器在接受到请求体后需要单独解析

例如:

name=test&password=123456
5.HTTP响应
什么是响应行?
响应行里包含了HTTP协议的版本,以及用于描述服务器对请求的处理结果

例如:HTTP/1.1 200 OK

格式:协议/版本 状态码 状态码描述

状态码:服务器和浏览器用于确定状态的固定数字号码

200:请求成功

302:请求重定向

404:请求资源不存在,通常是访问路径写错了,或者服务器删除了该资源

500:服务器内部发生错误
什么是响应头?
响应头用用于描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理响应体中的数据

例如:

Server:Microsoft-IIS/5.0

Content-Length: 100

Content-Type: text/html;charset=UTF-8

Date: Wed, 13 Feb 2019 07:37:20 GMT

Cache-control:private
什么是响应体?
代表服务器向浏览器回送的正文

XMind思维导图:

java网页源码怎么用 javaweb源码怎么用_HTTP_09