初识Tomcat

1 web应用服务器

概念:把web项目发布在互联网上 时刻等待客户的请求

作用:1 发布项目

​ 2 把动态资源转换为静态资源

资源:所有在互联网上访问的程序

静态资源:客户端浏览器可以直接解析运行的资源:html js css img txt xml

动态资源:含有变量的资源:jsp、servlet、php、asp

​ 动态资源必须被web应用服务器解析为静态资源后 才响应给客户端

客户端:通过互联网主动服务 网络资源的用户

服务器端:通过web应用服务器在互联网上发布项目 时刻被动等待客户端请求的电脑主机

2 web项目分类

  • b/s结构的项目
browser/server  浏览器/服务器
客户端只需要一个浏览器
pc端淘宝、百度、webqq
特点:1 对网络速度要求高:所有资源必须通过互联网实时传输
     2 项目更新方便简单
     3 网络信息传输通过http协议 相对不安全
  • c/s结构的项目
client/server  客户端/服务器
客户端需要安装客户端程序
迅雷、lol、手机淘宝
特点:1 节省流量:公共资源可以在本地存储
     2 项目更新:客户端和服务器端要同时更新
     3 网络信息传输通过自定义协议:如thunder 相对更安全

3 常见的web原因服务器

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

4 安装tomcat

分类

  • 免安装的:直接解压缩即可使用 一台电脑可以拥有多个
  • x需要安装的: 后缀名是.exe 需要运行.exe安装程序安装 一台电脑只能安装一个
选择版本:免安装的 7/9

目录分析

image
image
image

启动tomcat

  • 点击:E:\soft\tomcat\apache-tomcat-9.0.17\bin\startup.bat 一闪而过
    image

  • 需要配置环境:tomcat是java开发 依赖环境变量JAVA_HOME

image

  • 再次点击startup.bat 启动成功

image

image

5 通过tomcat发布项目

准备工作

  • 在E:\soft\tomcat\apache-tomcat-9.0.17\webapps下创建一个文件夹:为项目的根目录

image

  • 在根目录下创建文件夹:必有WEB-INF

image

  • 在WEB-INF下创建web.xml

image

  • 在web.xml中复制配置信息:基本信息 跟标签+声明区
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">
</web-app>

发布静态资源

  • 创建文件:E:\soft\tomcat\apache-tomcat-9.0.17\webapps\haha\htm\1.html
<html> <!--html是根标签:所有标签都是其子标签-->
     <head><!--头标签:对当前html文件进行统一的属性设置-->
	        <title>广告</title>
			<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
	 </head>
	 <body>
             <font color="red" size="7">我是流氓广告!</font>
	 </body>
<html>

发布动态资源

  • 创建动态资源:E:\soft\tomcat\apache-tomcat-9.0.17\webapps\haha\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>
                       <font color="red" size="7">我是流氓广告!</font><br/>
                       我的浏览器信息:${header['User-Agent']}<br/>
                      请求参数name=${param.name}     <br/>      
                      请求参数age=${param.age}     <br/> 
</body>
</html>
  • 重新启动tomcat
  • 浏览器访问2.jsp
    image

6 在eclipse中配置我们的tomcat

配置jre

image
image

image

配置tomcat

image

image
image

测试

  • 创建web项目

    image

image

  • 更改项目的默认编码集

image

image

  • 创建静态资源

image

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>静态资源</h1>
</body>
</html>
  • 创建动态资源

image

<%@ 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>动态资源</h1>
         请求参数name=${param.name}<br/>
         请求参数age=${param.age}<br/>
</body>
</html>
  • 打开servers视图
    image
  • 创建服务
    image
    image
    image
  • 添加项目

image

image

  • 点击run

image

  • 启动成功

image

  • 浏览器访问
    image
    image

7 url

Uniform Resource Locator 统一资源定位器
所有资源在互联网上的唯一地址
如:http://localhost:8080/java37_ee_02_tomcat/jsp/2.jsp?name=hehe&age=11
格式:协议 /主机ip:主机端口/项目名称/资源路径?请求参数
请求参数格式:参数名=参数值&参数名=参数值
tomcat的http协议的默认端口:8080
  • http和https的区别
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
  HTTPS和HTTP的区别主要如下:
  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

8 http

超文本传输协议(Hyper Text Transfer Protocol)
一种基于请求/响应模式的、无状态的、互联网传输协议
请求/响应模式:客户端发送请求的url 服务器端响应对应的资源
无状态:两次请求之间无法实现数据共享
  • 会话跟踪技术解决无状态
协议:规范
互联网传输协议:客户端与服务器端进行数据传输时 必须遵守的数据格式
请求协议:客户端给服务器端发送的信息 需要遵守的数据格式
响应协议:服务器端给客户端响应的信息 需要遵守的数据格式

image

http请求协议格式

客户端发送请求给服务器端 信息遵守的数据格式

  • 创建一个程序模拟tomcat
//接受http协议的8080端口
ServerSocket ss=new ServerSocket(8081);//开启服务
//等待连接
Socket socket=ss.accept();
InputStream in=socket.getInputStream();
//一直读取信息
while(true){
    byte[] arr=new byte[1024*10];
    int n=in.read(arr);
    System.out.println(new String(arr,0,n));
    System.out.println("-------"+new Date().toLocaleString()+"-------");
}

image

HTTP响应协议格式

服务器给客户端响应信息 信息需要遵守的数据格式

  • 通过浏览器的开发工具栏可以看到http响应协议的格式

image

  • 响应协议的内容
HTTP/1.1 200     --响应首行
Accept-Ranges:bytes    --响应头: 响应头名:响应头值     服务器端给客户端对响应内容的介绍
Content-Length:151
Content-Type: text/html
Date: Tue, 28 Sep 2021 06:42:10 GMT
ETag: W/"151-1632798765620"
Last-Modified: Tue, 28 Sep 2021 03:12:45 GMT
                        -- 空行
<!DOCTYPE html>         -- 响应体:要响应的页面
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <h1>静态资源</h1>
</body>
</html>

http状态码

响应状态码:一个整数 标志本次响应的状态
200:成功
304:使用缓存
302:重定向
404:请求资源路径错误
405:doGet/doPost方法没有被重写
500:服务器端错误
posted @ 2021-09-28 19:33  RenVei  阅读(33)  评论(0编辑  收藏  举报