java ejb使用http协议_Javaweb学习笔记2—Tomcat和http协议

本文深入讲解了静态资源与动态资源的区别,详细介绍了Tomcat的下载、安装及配置,包括server.xml、虚拟目录和主机配置。此外,还涵盖了javaweb工程的创建、部署以及关键的HTTP基础知识,帮助读者理解HTTP请求与响应结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天来讲javaweb的第二个阶段学习。

老规矩,首先先用一张思维导图来展现今天的博客内容。

ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载

另外:如果图看不清的话请右击---在新窗口中打开会清楚很多。

389c86faa05adfd67a2718198b0822eb.pngTomcat

1. web概述

静态资源

在不同时间或者使用不同角色访问的资源,看到的内容是一样的(一成不变的),这种资源就称为静态资源。例如:html,css,js,image等等。

动态资源:

可交互的

在不同时间或使用不同角色访问的资源,看到的内容是不一样的。例如:jsp,asp,php等等。

2. Tomcat简介

2.1 javaee规范

13个规范,JCP制定的,jsp/servlet,jdbc,jaxp,jta,jpa,jndi,jmf,EJB

2.2常见服务器介绍

WebLogic

WebSphereAS

JBOSS

Tomcat

2.3 Tomcat下载和安装

2.4 Tomcat各版本所需支持

2.5 Tomcat目录详解

bin    二进制目录

conf    tomcat配置文件目录

lib    tomcat运行时所需jar包

logs    tomcat运行时日志

temp    tomcat临时文件目录

webapps    tomcat默认应用目录

work    tomcat工作目录

2.6 Tomcat启动服务

startup.bat/shutdown.bat

startup.sh/shutdown.sh

Window系统下用.bat

2.7 Tomcat启动遇到的问题和解决办法

2.7.1 启动一闪而过

原因:没有配置JAVA_HOME环境

2.7.2 Address already in use: JVM_Bind

原因:端口被占用

解决办法有两种

1,结束别人

使用netstat -a -o找到进程id(pid),在任务管理器中结束掉该进程。

2,修改自己

修改的是Tomcat\conf\server.xml

afed9db70be3530cfa84872b46e4ef4a.png

2.7.3 启动时报很多异常,但是可以正常启动

原因:是应用中抛出的异常,不影响服务器启动,可以重新解压一个新的tomcat来解决。

2.7.4 其他问题

具体分析

3. javaweb工程

*3.1 javaweb工程目录详解

webDemo(我的web工程名称)

*****资源(html,css,js)

*****WEB-INF

---------classes        java编译的class文件

---------lib        jar包

--------web.xml    web应用的配置文件

3.2 创建javaweb工程

手动创建

使用MyEclipse创建

3.3 部署javaweb工程

手动部署:将工程(应用)直接拷贝到tomcat\webapps目录中

使用MyEclipse部署

打成war包:首先将应用打成war。然后将war包拷贝到tomcat\webapps

jar -cvf appname.war .

4. Tomcat配置

4.1 Tomcat的主配置文件

tomcat\conf\server.xml

4.2 配置虚拟目录

配置的是Context,两种方式

1,在里添加一个元素

path:访问地址URI。

docBase:访问资源磁盘物理地址。

2:在conf\catalina\localhost目录中写一个独立的xml文件。

xml的文件名可以起任意名称但不能是中文的。建议与应用同名。

4.3 配置虚拟主机

配置的是Host

在元素中添加

name:虚拟主机名称

appBase:主机的目录。相当于webapps。

unpackWARs:是否自动解压war包。

autoDeploy:是否自动发布。

4.4 配置默认端口,默认应用,默认主页

1配置默认端口:

(目录:tomcat/conf/server.xml)

2,配置默认应用:

第一种:将应用名称该ROOT。部署到tomcat下。

第二种:写一个独立的xml文件,文件名称是ROOT.xml。

(目录:tomcat\conf\Catalina\localhost\ROOT.xml)

3,配置默认主页:

默认主页是针对应用而说的。所以修改的是web.xml

在web.xml中添加

1.htm

//可以写多个

二、HTTP

1. HTTP概述

1.1 HTTP是什么?

Hyper Text Transfer Protocol 超文本传输协议,传输超文本。

WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议。

这个规则又称为问答机制/握手机制。

1.2 HTTP的版本

1.0版本和1.1版本的区别:1.0一次连接一次收发,1.1一次连接多次收发请求。

1.3 特殊说明:

当浏览器看到

2. HTTP组成部分

2.1 请求部分

请求行:永远位于请求的第一行

请求消息头:是从第二行开始到第一个空行结束。

请求的正文:从第一个空行后开始,到正文的结束。

2.2 响应部分

响应行:永远位于响应的第一行。

响应消息头:是从第二行开始到第一个空行结束。

响应的正文:从第一个空行后开始,到正文的结束。和我们在浏览器上右键查看源文件看到的内容是一样的。

3.请求部分详解

3.1 请求行:

GET /myapp/2.html HTTP/1.1

GET:

请求的方式。常用的有GET,POST。

GET方式:不安全,内容在地址栏中显示,长度有限制。

POST方式:相对安全,在地址栏中不显示,长度相对没有限制。

/myapp/2.html

请求资源的URI。

HTTP/1.1

使用的协议和协议的版本。

3.2 请求消息头:

当看见Accept时,就表示客户浏览器告诉服务器的暗语。

Accept:

告知服务器,客户浏览器支持的MIME类型。

Accept-Encoding:

告知服务器,客户浏览器所支持的压缩编码格式。最常用的就是GZIP压缩。

Accept-Language:

告知服务器,客户浏览器所支持的语言。例如:zh_CN,en_US等。

Referer:

告诉服务器,当前请求的来源。(该请求是从哪里来的)

如果当前请求没有来源的话(例如从地址栏输入)则不会有这个头。

作用1:投放广告。

作用2:防盗链。

Content-Type:

请求正文的MIME类型。

Content-Length:

请求正文的长度。

User-Agent:

客户浏览器信息。

Connection: Keep-Alive

连接状态:保持连接。

If-Modified-Since:

客户浏览器缓存资源的最后更新时间。

Cookie:

会话管理有关。非常重要(*****)

3.3 请求的正文:

GET方式没有请求的正文。POST方式有请求的正文。

只有有name属性的表单输入域的内容才会被提交。

当enctype取默认值的时候:

enctype的默认值:application/x-www-form-urlencoded

请求的正文的体现形式是key=value&key=value。

username=test&password=123

当enctype取值为multipart/form-data时:(文件上传时候用)

请求的正文就变成了:

-----------------------------7df1cd3611078e

Content-Disposition: form-data; name="username"

test

-----------------------------7df1cd3611078e

Content-Disposition: form-data; name="password"

123

-----------------------------7df1cd3611078e--

4.响应部分详解

4.1 响应行

HTTP/1.1 200 OK

HTTP/1.1:

使用的协议和版本。

200:

响应状态码。

OK:

响应状态码描述。

常用状态码说明:(需要记住)

200        全部都OK

302/307        请求重定向。(请求重定向:是客户浏览器行为,发出了两次请求。地址栏会发生变化。)

304        使用本地缓存。(当本地缓存资源没有发生变化时)

404        找不到资源

500        服务器内部错误

4.2 响应消息头:

Location:

请求重定向的地址,常与302/307配合使用。

Server:

服务器相关信息。

Content-Type:

告知客户浏览器,响应正文的MIME类型。

Content-Length:

告知客户浏览器,响应正文的长度。

Content-Encoding:

告知客户浏览器,响应正文的压缩编码格式。常用的就是GZIP压缩。

Content-Language:

告知客户浏览器,响应正文的语言字符集。例如:zh_CN,en_US等。

Content-Disposition:

告知客户浏览器,以下载的方式打开。

Refresh:

定时刷新。

Last-Modified:

服务器上的资源最后更新时间。

Set-Cookie:

会话管理相关,非常重要。(*****)

-------------以下三个头配合使用,控制是否使用缓存---------------------------------------------

当写成如下形式时,就表示不要缓存。永远不会看到304状态码。

Expires:-1

Catch-Control: no-catch(1.1)//针对http协议1.1版本

Pragma:no-catch(1.0)//针对http协议1.0版本

4.3 响应的正文:

就和我们在浏览器上右键查看源文件所看到的内容是一样的。

1.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值