概述
一、相关概念
-
j2ee,j2se为JDK5.0以前的名称,javaee和javase为JDK5.0以后的名称
-
javaee :一个平台 ;一套技术体系
- 一套技术体系:帮我们解决在企业级应用及开发过程中所遇到的各种问题。
-
服务器:
- web服务器:提供http协议访问,处理静态资源
- html css js img都是服务器静态资源
- web容器:提供http协议访问方法,处理静态资源,提供运行环境
- 提供servlet和jsp运行环境(web容器遵循servlet,jsp技术标准规范)
- servlet和jsp都是服务器中的动态资源
- tomcat服务器支持servlet和jsp运行,因为tomcat内置web容器
- javaee应用级服务器:大型服务器,不仅能支持http协议的方法,还支持servlet和jsp运行,同时还支持javaee中其他技术组件的运行
- web服务器:提供http协议访问,处理静态资源
-
tomcat支持http协议访问,还支持servlet和jsp运行
-
浏览器 --请求–> tomcat–响应–>浏览器
- http协议 规定固定格式字符串的请求和响应
- 浏览器支持http请求,自动封装请求(IO流传输固定格式的字符串)
- tomcat接受浏览器请求报文,分析出指定URI,根据URI找到的数据封装到固定格式的响应中IO流返回给浏览器
二、http请求和响应
-
http协议:超文本传输协议(HTTP-Hyper transfer protocol)是一种规定了浏览器和万维网服务器之间通信的规则协议,通过万维网传送万维网文档的数据传送协议,HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。
-
URL:统一资源定位符(Uniform Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它
例如: -
request请求:客户端发送到服务器的请求消息,按照http协议的规则拼接成的字符串
-
request请求分为三部分:请求行(request line),请求头(request head),请求体(request body)
-
请求行:
格式 Method Request-URI HTTP-Version CRLF GET /test.html HTTP/1.1 Method:一般为get和post HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法 1、OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性 2、HEAD 向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。 3、GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url 4、POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form 5、PUT 向指定资源位置上传其最新内容 6、DELETE 请求服务器删除Request-URL所标识的资源 7、TRACE 回显服务器收到的请求,主要用于测试或诊断 8、CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 注意: 1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。 2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。 Request-URI:统一资源表示符 HTTP-Version:http协议版本 CRLF:回车换行 HTTP中get方法和post方法的区别 get方法的主要作用:从服务器端获取资源信息 post方法的主要作用:除了可以从服务器端获取数据,也可以王服务器端的上传数据 1.采用get请求方法:向服务器传送数据,一般要将数据添加到URL后面,并且二者用?连接,各变量之间通过&进行分隔。但URL存在长度限制,传送数据量非常小,通常在1024Byte左右,而POST请求方法的数据是存在在请求报文的请求体中的,传送的数据量更大。 2.GET请求方法将请求参数暴露出来,存在安全隐患。
-
请求头
也称消息报头 GET /test.html HTTP/1.1 Host: 127.0.0.1:9999 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,en;q=0.8,zh;q=0.5,en-US;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive 空行
-
请求体:请求体和请求头之间有一个空行,表示请求头的结束
GET请求方法,没有请求体,不存在空行 POST请求方法,存在请求体,请求体和请求头存在空行
-
-
response响应:服务器你在接收请求和解析请求后,服务器会返回HTTP协议规则的固定格式字符串
-
response响应分为三个部分:响应状态行,消息报头,响应正文
-
响应头
响应状态行格式: HTTP-Version Status-Code Reason-Phrase CRLF HTTP、1.1 200 OK 各个部分分别为: HTTP-Version:表示服务器HTTP协议的版本 Status-Code:表示服务器发回的响应状态代码 Reason-Phrase:表示状态代码的文本描述 CRLF:表示回车和换行
-
响应行
消息报头 MIME Type(媒体类型) 在浏览器中显示的内容有HTML,有XML,有GIF,还有Flash等等,浏览器就是使用MIME Type来区分它们,也就是该资源的媒体类型。 媒体类型通常是通过HTTP协议,有Web服务器告知浏览器的,更准确地说,是通过响应的消息报头里面的属性Content-Type来表示的 Content-Type:text/HTML
-
响应体
响应正文 响应正文就是服务器返回的资源的内容
-
三、tomcat服务器
- 什么是tomcat:一个常用的web容器,支持javaee规范中的servlet和jasp的运行,同时也具备web服务器的功能(支持http协议的访问)。
- tomcat运行需要依赖本地安装的JDK
- 手动启动tomcat服务器
- 必须安装JDK,并且配置JAVA_HOME环境变量
- JAVA_HOME=C:Program FilesJavajdk1.8.0_74
- 把tomcat和eclipse关联起来,然后使用Eclipse来管理tomcat
- 手动启动tomcat服务器
- tomcat服务器运行的时候,需要占用一些端口号
- 默认监听端口号为8080,一般会把这个端口号修改为别的端口号8088,8989
- tomcat服务器中的目录结构
- bin目录:存放运行tomcat需要的命令文件(Unix和Windows都有)
- Windows:双击运行
- 启动服务器 :startup.bat
- 关闭服务器:shutdown.bat
- Unix:需要注意文件的权限
- 启动服务器:startup.sh
- 关闭服务器:shutdown.sh
- Windows:双击运行
- conf目录:存放tomcat相关的配置文件
- 最重要的一个配置文件:server.xml;tomcat端口号就是在这里配置的
- lib目录:存放项目运行时候需要的jar包,这个目录的jar包是公共的jar包,tomcat服务器可以同时部署多个项目,多个项目可以共享这些jar包
- logs目录:存放tomcat运行时的日志文件,记录tomcat在运行期间的重要信息
- temp目录:存放tomcat运行时产生的临时文件
- webapps目录:存放web项目的位置
- 把web项目放到tomcat服务器上,其实就是把项目放到webapps目录下
- work目录:和jsp页面相关的目录
- bin目录:存放运行tomcat需要的命令文件(Unix和Windows都有)
四、web项目的结构
- web项目的目录结构是固定的
- web项目的文件夹名就是web项目名字;web项目名:web-test对应文件夹名也为web-test
- web -test文件夹下面,必须要有一个固定文件夹:WEB-INF
- 对外访问是关闭的:通过http协议访问是访问不到WEB-INF里面的html文档的
- web-test文件夹下面,除了WEB-INF之外,其他文件和文件夹都是可以随意创建的
- html页面,css样式,js脚本,各种项目资源(图片等),都是可以通过浏览器访问web项目
- WEB-INF:文件夹下面,有两个固定的文件和一个固定的文件
- 文件夹:classes lib
- 文件:web.xml
- classes,lib的作用
- classes文件夹:web项目中java的字节码文件(不需要.java文件,只需要.class文件)
- lib:web项目在运行的时候所需要的第三方jar包,这些jar包是项目自己使用的,每个web项目都有自己的lib目录
- web.xml文件:这个是web项目的配置文件,每个web项目都要有自己的配置文件(web.xml),同时这个web.xml文件内容是让tomcat服务器在启动期间自动读取的
- tomcat可以自动读取web.xml原因:
- 1.web项目是在tomcat中部署的,web.xml是web项目的配置文件
- 2.web项目结构是固定的
- tomcat可以自动读取web.xml原因:
- web.xml文件的内容:设置访问web项目时显示的主页;将字节码文件和URL进行绑定,通过sevlet去执行
- 在tomcat中conf文件夹下面有web.xml文件的样例
- 将web项目部署到tomcat服务器中:
- web项目放到webapps里面
- 启动tomcat服务器
- 访问tomcat中指定项目里面的资源
- http://ip:port/项目名/资源路径
- http://127.0.0.1:8989/web_test/test.html
- http://127.0.0.1:8989/web_test/映射路径
五、浏览器访问web中java代码(动态资源)
- 浏览器访问时:http://127.0.0.1:8989/web_test/hello访问到指定和/hello(url)绑定的类
- 实质:通过浏览器向web服务器中某个地址发送http协议的请求(get或post等),让服务器自动调用某个对象中的指定方法,从而让该方法执行完可以给本次http请求返回一个http响应。最后浏览器收到响应后进行解析并显示给用户结果(一般会是一个页面)。
- url地址–调用–>java对象中的方法(servlet技术)
- avaee规范中,想实现 这种通过浏览器的地址访问web项目中的java对象里面的方法 这个功能,就必须按照javaEE中的相关规范来编写代码(servlet技术就是这个规范)
最后
以上就是认真帆布鞋为你收集整理的JavaWeb-tomcat,web项目,请求响应报文一、相关概念二、http请求和响应三、tomcat服务器四、web项目的结构五、浏览器访问web中java代码(动态资源)的全部内容,希望文章能够帮你解决JavaWeb-tomcat,web项目,请求响应报文一、相关概念二、http请求和响应三、tomcat服务器四、web项目的结构五、浏览器访问web中java代码(动态资源)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复