tomcat(跟着宝哥学java:tomcat)tomcat安装 发布项目 配置eclipse http协议详解、get请求、post请求、url详解

1 web概念

java项目:有main方法 运行 启动main线程 线程任务执行完毕 jvm关闭
web项目:通过web应用服务器把web资源 在互联网上发布 时刻等待客户端的访问(对这些web资源的请求)

服务器端:安装web应用服务器发布项目的主机
客户端:通过互联网访问服务器的资源

互联网资源分类:
       静态资源:没有变量的资源:任何时间/任何访问者 获取的内容是一样的::::html、js、css、图片、视频、音乐
       动态资源:含有变量的资源:jsp、servlet、php、asp 
       
       注意:当客户端请求静态资源时如1.html  服务器会把静态资源1.html直接响应给客户端
            当客户端请求动态资源时如2.jsp  服务器会通过web应用服务器把动态资源1.jsp解析为对应的静态资源1_jsp.html 并响应给客户端
            
web项目分类:
      b/s结构:browser/server :浏览器/服务器软件  客户端只需要一个浏览器即可
      如: 百度/web端的哔哩哔哩/webQQ
      优点: 1 客户端不需要安装客户端软件 客户体验性好
            2 升级更新方便 易于维护
      缺点: 1 客户端需要的所有的资源和信息都要通过互联网进行传递 对网络的速度要求高/浪费流量
            2 b/s结构资源的访问统一请求协议都是http/https 安全性差
            
      
      c/s结构:client/server : 客户端端软件/服务器端软件  客户端需要安装一个对应的客户端软件 才能访问c/s项目
      如:迅雷/王者荣耀/qq/微信
      优点:1 客户端可以保留大部分资源 节省流量
           2 请求资源的协议是自定义协议 被客户端解析后才会转换为http/https  安全性更高
      缺点:1 客户端需要安装客户端软件 客户体验性差
           2 维护/更新 麻烦

2 应用服务器

一款软件:用于把服务器端的项目 在互联网上时刻处于发布状态 等待客户端请求
web应用服务器作用:1 发布项目:
                2 解析动态资源为静态资源

常见web应用服务器:
* tomcat :apache  轻量级 占用资源少 性能稳定
* weblogic:oracle  功能强大 适用于分布式项目 扩展性强
* websphere:ibm  性能与weblogic相似
* jboss: jboss公司 开源
* Apache:apache  速度快、性能稳定,并可做代理服务器来使用
* iis:microsoft   Internet Information Server  提供了图形界面的管理工具集
* Nginx: 反向代理服务器

3 tomcat的安装

3.1 安装和配置环境变量

tomcat版本:8.5/9.0
安装目录中不能有中文
安装简单:.exe版本 安装  一台电脑只能安装一个
        .zip版本 解压即可使用:一台电脑可以安装多个
配置环境变量:  CATALINA_HOME=F:\soft\apache-tomcat-9.0.19
             JAVA_HOME=F:\soft\jdk
             path中添加:%CATALINA_HOME%\bin

3.2 开启和关闭tomcat

启动:点击F:\soft\apache-tomcat-8.5.40\bin\startup.bat即可
关闭:点击×即可
注意:如果点击没有弹出窗口 一闪而过:::就是环境变量配置错误!

3.3 tomcat目录分析

在这里插入图片描述

3.4 配置文件

在这里插入图片描述

4 tomcat发布项目

注意我给你复制的8.5的tomcat有问题  更改使用tomcat9.0

4.1 创建项目

  • 在%CATALINA_HOME%\webapps下创建一个文件夹:hehe

  • 在hehe中创建子文件夹:WEB-INF和资源文件夹(html/jsp/css/imgs/js)

  • 在WEB-INF中创建子文件夹classes::存储java源文件生成的字节码文件

  • 在WEB-INF中创建子文件夹lib::存储项目以来的jar

  • 在WEB-INF中创建子web项目的核心配置文件:web.xml

  • web.xml的代码

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

</web-app>

在这里插入图片描述

4.2 添加并访问静态资源

  • 在hehe/html中添加静态资源1.html
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>静态资源</title>
	</head>
<body>
     <h1>静态资源html</h1>
</body>
</html>
  • 驱动tomcat

在这里插入图片描述

  • 浏览器访问tomcat主页

在这里插入图片描述

  • 浏览器访问1.html

在这里插入图片描述

4.3 添加并访问动态资源

  • 在hehe/jsp下创建一个2.jsp文件
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body> 
     <h1>动态资源jsp</h1>
     获取请求参数:name=${param.name}<br/>
     获取请求参数:age=${param.age}<br/>
     获取请求头:User-Agent=${header['User-Agent']}<br/>
</body>
</html>
  • 重启tomcat
  • 浏览器访问2.jsp

在这里插入图片描述

  • 扩展
发现请求玩2.jsp后 work文件夹下自动生成一些文件

在这里插入图片描述

4.4 eclipse中配置tomcat

  • 配置eclipse的jre

在这里插入图片描述

  • 配置tomcat

在这里插入图片描述

  • 打开server试图

在这里插入图片描述

  • 添加new server

在这里插入图片描述

  • 把已有的web项目添加到此tomcat下

在这里插入图片描述

在这里插入图片描述

  • 通过eclipse启动tomcat

在这里插入图片描述

  • 浏览器访问

在这里插入图片描述

4.5 eclipse中有动态资源jsp

  • 把tomcat的jar添加到当前项目中 否则jsp会报错
  • 在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 重启tomcat 浏览器访问2.jsp

在这里插入图片描述

5 url

在这里插入图片描述

URL(Uniform Resource Locator,中文名:统一资源定位符),统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
                                                :互联网资源的访问路径
url:访问2.jsp:http://localhost:8080/java43_01_web/2.jsp?name=hehe&age=12
url格式:协议://主机:端口/项目名/文件夹/资源名?请求参数=值&请求参数=值&请求参数=值...
域名:会被域名服务器解析为主机:端口
如:请求http://www.baidu.com 请求会先提交给域名服务器 解析www.baidu.com为百度主机:百度端口
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器
  • uri
统一资源标识符(Uniform Resource Identifier,URI)是一个用于标识某一互联网资源名称的字符串

在这里插入图片描述

6 http协议

6.1概念

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议:
概念:资源在互联网进行请求和响应时 需要准守的协议(数据格式),基于请求/响应模式的,无状态 互联网传输协议
请求/响应模式:只有客户端主动发送请求  服务器才会被动的给与响应:一个请求对应一个响应
无状态:两次请求之间不能实现数据共享
回话跟踪技术:解决http的无状态::多次请求之间实现数据共享
           cookie+session
请求协议:客户端请求服务器时 传递的信息需要准守的数据格式
响应协议:服务器响应客户端时 传递的信息需要准守的数据格式

在这里插入图片描述

6.2 使用tcp模拟tomcat

package com.zhiyou100_02.tomcat;

import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Demo01 {

	public static void main(String[] args)throws Exception {
		
		//模拟tomcat:获取的信息就是符合http请求协议格式
		//注意:关闭eclipse中的tomcat
		//开启服务 开启端口8080
		ServerSocket server=new ServerSocket(18080);
		while(true){
			//等待请求
			Socket socket=server.accept();
			//获取请求的资源
			InputStream in=socket.getInputStream();
			//解析信息:
			byte[] arr=new byte[10*1024];
			int n=in.read(arr);
			System.out.println(new String(arr,0,n));
			System.out.println("-----------");
		}
	}
}
  • 创建一个页面1.html:去请求18080端口 并提交请求参数
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>静态资源</title>
	</head>
<body>
     <h1>静态资源html</h1>
     <form action="http://localhost:18080" method="get">
         name:<input type="text" name="name"/><br/>
         age:<input type="text" name="age"/><br/>
         <input type="submit" value="get请求"/><br/>
     </form>
     <form action="http://localhost:18080" method="post">
         name:<input type="text" name="name"/><br/>
         age:<input type="text" name="age"/><br/>
         <input type="submit" value="post请求"/><br/>
     </form>
</body>
</html>
  • 浏览器访问页面:测试get请求和post请求

在这里插入图片描述

  • 服务器打印的信息:信息的格式就http请求协议的格式
  • get请求

在这里插入图片描述

  • post请求

在这里插入图片描述

6.3 请求协议的格式

  • 请求首行:
get请求:请求首行:  get  请求参数 协议
post请求:请求首行: post 协议
  • 请求头
格式:请求头名:请求头值
作用:客户端对服务器进行的自我介绍:
   如 Host:客户端请求的服务器位置
      User-Agen:客户端操作系统和浏览器的信息
      Accept:客户端可以接受的资源的格式
      Accept-Language:客户端支持的语言
      Content-Type:客户端请求资源的类型
  • 空行
  • 请求体
get请求体:是空的
post请求体:是请求参数

6.4 响应协议的格式

在这里插入图片描述

  • 响应首行
协议 响应状态码:HTTP/1.1 200    
  • 响应头
作用:服务器对本次响应的介绍
格式:响应头名:响应头值
如:Content-Type: 响应资源的格式
   Content-Length: 响应的字节数
   Date:响应的时间
  • 空行
  • 响应体
响应资源的信息

在这里插入图片描述

6.5 响应状态码

通过状态码 表示本次响应的情况
200:成功
404:请求资源不存在
500:服务器端错误
304:使用缓存
405:请求方式错误
302:重定向
400:客户端请求有语法错误
403:权限不足

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值