day07_Tomcat服务器与http学习笔记

简介: ============================================================ 一、Tomcat服务器(很熟悉)   1、Web开发概述          WEB,在英语中web即表示网页的意思,它用于表示Internet主机上(服务器)供外界访问的资源。

============================================================

一、Tomcat服务器(很熟悉)

  1、Web开发概述

    

    WEB,在英语中web即表示网页的意思,它用于表示Internet主机上(服务器)供外界访问的资源。

    Internet上供外界访问的Web资源分为:

      静态web资源(如html、css、js页面):指web页面中供人们浏览的数据始终是不变。

      动态web资源(如JSP、PHP、ASP):指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

    常用静态web资源开发技术

      html、css、js技术

    常用动态web资源开发技术:

      JSP/Servlet(JAVA)、ASP(微软.net)、PHP等

    在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面

javaweb:使用java技术开发web页面,供浏览器访问的项目。

    Web是一种分布式应用架构,旨在共享分布在网络上的各个Web服务器中的所有相互链接信息。
    Web采用客户/服务器通信模式,客户与服务器之间用HTTP协议通信。
    Web使用超级文本技术(HTML)来链接网络上的信息。信息存放在服务器端,客户机通过浏览器(如IE、Chrome)就可以查找网络中的各个Web服务器上的信息。

与Web相关的一个概念是WWW(World Wide Web)。WWW是指全球范围内的Web,它以Internet为网络平台,Internet是来自世界各地的众多相互连接的计算机和其他设备的集合,而WWW则是Internet上的一种分布式应用结构。

归纳起来,Web具有以下3个特征:
    1.用超级文本技术HTML来表达信息,以及建立信息与信息的链接。
    2.用统一资源定位技术URL来实现网络上信息的精确定位。
    3.用网络应用层协议HTTP来规范浏览器与Web服务器之间的通信过程。

    javaSE: 

    javaEE:13种

    javaME:

      JavaEE规范: 指的是javaEE13种技术的总称。如:Servlet/Jsp  JDBC  JNDI  JTA ......

    Tomcat:Servlet/Jsp容器,轻量级服务器。

    常见的服务器:

      1.WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持JavaEE规范(接口),而且不断的完善以适应新的开发要求。(重量级)

      2.WebSphereAS是IBM公司的产品,支持JavaEE规范。(重量级)

      3.大名鼎鼎的红帽的产品,原来属于开源组织JBossAS,后被红帽收购。支持JavaEE规范,免费。(重量级)

      4.在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat(短小精悍)该服务器支持JSP以及Servlet规范。(轻量级)

  2、Tomcat下载

      Tomcat是在SUN公司推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器(优秀的Java类的容器),Tomcat本身完全用Java语言编写。

      目前是Apache开源软件组织的一个软件项目,得到了广大开源代码志愿者的大力支持,且可以和目前大部分的主流Web服务器(IIS()、Apache服务器)一起工作,它运行稳定、可靠且高效。

      已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。

      我们后面的JavaWeb学习都是基于Tomcat服务器的。

      Tomcat官方站点http://tomcat.apache.org

        tar.gz文件是Linux操作系统下的安装版本。

        exe文件是Windows系统下的安装版本x86/x64。

        zip文件是Windows系统下的压缩版本(绿色版)(推荐)。

  3、Tomcat的安装与配置

    3.1、安装

        直接解压到指定目录即可。(注:目录不要太深,目录不要有中文或空格)

    3.2、启动服务器

        启动服务器的前提:

          配置JAVA_HOME

          配置CATALINA_HOME

          startup.bat 启动命令

          shutdown.bat 停止命令

        我的操作如下:

           

      如果tomcat端口被占用,解决办法:

        > 法一:修改F:\apache-tomcat-7.0.52\conf\server.xml

          第70行:  <Connector port="8081"/>

            

        > 法二:关闭端口号对应的进程

          cmd --> netstat -ano --> 找到PID --> 任务管理器 --> 显示PID --> 关闭进程

    3.3、测试服务器是否启动成功

            http://localhost:8080

            如果出现如下界面,表示Tomcat启动成功。

            

    3.4、Tomcat的主要目录结构(重要)

          

  4、标准的JavaWeb应用的目录结构(很重要,要记住)

      应用:

      MyApp

        1.html

        Css

          myStyle.css

        Js

          My.js

        WEB-INF    注意:固定写法。此目录下的文件不能被外部直接访问,是由服务器负责调用。

          |classes:我们编写的程序代码.class文件(换成Navigator视窗(导航视图)可以看见)

          |lib:应用需要用的jar文件(java类运行所需要的jar包)

          |web.xml:当前应用的配置信息

            (如果没有该文件,右键项目,点击java EE Tools 点击其中 Genertate Deployment Descriptor Stub,这样WEB-INF就会添加上web.xml了)

            

  5、集成和部署应用到Tomcat服务器

      >0、在MyEclipse中集成Tomcat步骤:

        在MyEclipse10中:Window --> Preferences --> MyEclipse --> Servers --> Runtime Environments --> Add选项

        在MyEclipse2017中:Window --> Preferences --> Servers --> Runtime Environments --> Add选项

      >1、开放目录部署方式(方式1:手动方式)

        把应用WebRoot目录下的所有文件直接复制粘贴到 F:\apache-tomcat-7.0.52\webapps 下。(该文件夹下需要新建一个文件夹来装复制粘贴过来的文件,文件夹名字一般与项目名称相同)

      >2、把应用打成war包方式(方式2)

        cmd进入项目目录 day07_03_myApp1\WebRoo 中

        打war包命令:jar -cvf day07_03_myApp1.war.

        把war包直接复制到F:\apache-tomcat-7.0.52\webapps下,应用会自动解压;若删除该war包,则解压的文件会自动删除。

        注:webapps目录下有几个目录就代表有几个应用。

      Tomcat服务器与MyEclipse集成(一定要掌握)

        1、Tomcat集成 

        2、创建web应用

        3、部署

          URL: 统一资源定位符(俗称:网址)

          URI: 统一资源标识符

          http://localhost:8080/day07_03_myApp1/1.html

         URL=协议  主机IP(端口号)   URI(当前应用的资源路径)

  6、深入熟悉Tomcat服务器(了解)

      配置虚拟目录:

        作用:把应用放到其他目录,Tomcat也能管理。

        方式一:(不建议使用,因为需要重启服务器)

        例如:

          应用真实目录:d:\day07_03_myApp1

          应用虚拟目录:http://localhost:8080/myApp

 

          虚拟目录映射:

            进入F:\apache-tomcat-7.0.52\conf 中,打开server.xml

            <Context path="/myApp" docBase="d:\day07_03_myApp1"/>

            docBase:代表的是应用的真实路径。

            path:网络访问的虚拟目录名。

          注:需要重启服务器。

          

        方式二:

          新建myApp.xml文件,文件名就代表应用的虚拟目录名。

          将文件放在F:\apache-tomcat-7.0.52\conf\Catalina\localhost目录下,myApp.xml文件内容如下:

          <?xml version="1.0" encoding="utf-8"?>

            <Context docBase="d:\day07_03_myApp1"/>

          访问:http://localhost:8080/myApp

        注:脚本catalina用于启动和关闭tomcat服务器,是最关键的脚本。在tomcat里有此文件,写这个脚本的人为什么命名为catalina?

            一开始我还以为是其初恋女友,后来才知道原来是一个小岛的名字。catalina(卡塔利娜)

      常见的404错误截图:

          

  7、配置默认端口、默认应用、默认主页

      A、 配置默认端口

        把server.xml中

          <Connector port="80" protocol="HTTP/1.1" 

                   connectionTimeout="20000" 

                   redirectPort="8443" />

        因为浏览器http默认端口:80 

        这样访问的时候,就不用再写端口号了。例如:http://localhost/myApp/1.html

      B、配置默认应用

        默认应用:把配置的虚拟目录的配置文件名改为ROOT.xml即可。例如 http://localhost/1.html 

      C、配置默认主页

        修改当前应用web.xml,添加以下内容:例如 http://localhost/  不用写1.html了。

         

============================================================

二、HTTP协议

  1、HTTP协议概述

      > HTTP是HyperText Transfer Protocol(超文本传输协议)的简写,传输HTML文件。

      > 用于定义WEB浏览器与WEB服务器之间交换数据的过程及数据本身的格式。

  2、请求部分

      

     

    1、请求消息行

      GET /day07_03_myApp1/2.html?username=tom&pwd=123 HTTP/1.1  第一行是消息行。

        请求方式:Get(默认)  POST  DELETE  HEAD等

        GET:明文传输,不安全,数据量有限,不超过1kb。(数据量根据浏览器的不同而略有区别)

        例如:GET /day07_03_myApp1/2.html?username=tom&pwd=123 HTTP/1.1

        POST: 暗文传输,安全,数据量没有限制。

        例如:POST /day08_02/1.html HTTP/1.1

        URI:统一资源标识符。去协议和IP地址。

       HTTP/1.1协议/版本。 

    2、请求消息头

        从第2行到空行处,都叫消息头。

        Accept:浏览器可接受的MIME类型,告诉服务器客户端能接收什么样类型的文件。

        Accept-Charset:浏览器通过这个头告诉服务器,它支持哪种字符集。

        Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。 

        Accept-Language:浏览器所希望的语言种类,当服务器能够提供一种以上的语言版本时要用到。可以在浏览器中进行设置。

        Host:初始URL中的主机和端口。 

        Referer:包含一个URL,用户从该URL代表的页面出发访问当前请求的页面。

        Content-Type:内容类型,告诉服务器浏览器传输数据的MIME类型,文件传输的类型。例如:application/x-www-form-urlencoded(默认)

        If-Modified-Since:Wed, 02 Feb 2011 12:04:56 GMT  利用这个头与服务器的文件进行比对,如果一致,则从缓存中直接读取文件。

        User-Agent:浏览器类型。

        Content-Length:表示请求消息正文的长度。

        Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep-Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接)。

        Cookie:这是最重要的请求头信息之一 (在讲会话时解析)。

        Date:Date: Mon, 22 Aug 2011 01:55:39  GMT请求时间GMT。 

    3、消息正文

        当请求方式是POST方式时,才能看见消息正文。

        例如:uName=tom&pwd=123

  3、响应部分

      

    1、响应消息行

        第一行:

        HTTP/1.1 200 OK

        协议/版本 响应状态码 对响应码的描述(一切正常)

 

        响应状态码:常用的就40多个。

        200(正常)          一切正常

        302/307(临时重定向)

        304(未修改)        表示客户机缓存的版本是最新的,客户机可以继续使用它,无需到服务器请求

        404(找不到)        服务器上不存在客户机所请求的资源。

        500(服务器内部错误) 

    2、响应消息头

        Location:http://www.it315.org/index.jsp  指示新的资源的位置通常和302/307一起使用,完成请求重定向

        Server:apache tomcat  指示服务器的类型

        Content-Encoding:gzip  服务器发送的数据采用的编码类型

        Content-Length:80  告诉浏览器正文的长度

        Content-Language:zh-cn  服务发送的文本的语言

        Content-Type:text/html; charset=GB2312  服务器发送内容的MIME类型,即告知浏览器,响应正文的MIME类型 

        Last-Modified:Tue, 11 Jul 2000 18:23:51   GMT文件的最后修改时间

        Refresh:1;url=http://www.it315.org  指示客户端刷新频率,单位是秒

        Content-Disposition:attachment; filename=aaa.zip  指示客户端下载文件

        Set-Cookie:SS=Q0=5Lb_nQ; path=/search  服务器端发送的Cookie

        Expires:-1

        Cache-Control:no-cache (1.1)  

        Pragma:no-cache  (1.0)  表示告诉客户端不要使用缓存

        Connection:close/Keep-Alive   

        Date:Tue, 11 Jul 2000 18:23:51 GMT 

    3、响应正文

          和网页右键“查看源码”看到的内容一样。

============================================================

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
15天前
|
缓存 负载均衡 安全
HTTP代理服务器对速度提升有何作用?
在信息化时代,网络成为生活不可或缺的一部分。HTTP代理服务器位于客户端与服务器之间,通过数据压缩、缓存机制和路由优化等方式,有效提高数据传输速度并保护个人信息安全。使用91HTTP等工具,用户可在业务需求中获得更快更安全的网络体验。
33 4
|
2月前
|
安全 网络协议 网络安全
解析HTTP代理服务器不稳定致使掉线的关键原因
随着数字化发展,网络安全和隐私保护成为核心需求。HTTP代理服务器掉线原因主要包括:1. 网络问题,如本地网络不稳定、路由复杂;2. 服务器质量差、IP资源不稳定;3. 用户配置错误、超时或请求频率异常;4. IP失效或协议不兼容。这些问题会影响连接稳定性。
96 8
|
3月前
|
缓存 负载均衡 监控
HTTP代理服务器在网络安全中的重要性
随着科技和互联网的发展,HTTP代理IP中的代理服务器在企业业务中扮演重要角色。其主要作用包括:保护用户信息、访问控制、缓存内容、负载均衡、日志记录和协议转换,从而在网络管理、性能优化和安全性方面发挥关键作用。
118 2
|
4月前
|
存储 Oracle 关系型数据库
oracle服务器存储过程中调用http
通过配置权限、创建和调用存储过程,您可以在Oracle数据库中使用UTL_HTTP包发起HTTP请求。这使得Oracle存储过程可以与外部HTTP服务进行交互,从而实现更复杂的数据处理和集成。在实际应用中,根据具体需求调整请求类型和错误处理逻辑,以确保系统的稳定性和可靠性。
202 0
|
3天前
|
域名解析 人工智能 弹性计算
DeepSeek服务器繁忙解决方法:使用阿里云一键部署DeepSeek个人网站!
通过阿里云一键部署DeepSeek个人网站,解决服务器繁忙问题。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。教程涵盖从选择套餐、设置密码到获取百炼API-KEY的全流程,助您快速搭建专属大模型主页,体验DeepSeek、Qwen-max、Llama等多款模型,无需代码,最快5分钟完成部署。支持绑定个人域名,共享亲友使用,日均成本仅约1元。
41 10
|
13天前
|
弹性计算 运维 监控
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
本文介绍了如何通过阿里云获取ECS云服务器并进行操作系统配置与组件安装,以实现高效的资源管理和系统监控。阿里云凭借强大的基础设施和丰富的服务成为用户首选。文中详细描述了获取ECS、RAM授权、开通操作系统控制台及组件安装的步骤,并展示了如何利用控制台实时监控性能指标、诊断系统问题及优化性能。特别针对idle进程进行了深入分析,提出了优化建议。最后,建议定期进行系统健康检查,并希望阿里云能推出更友好的低成本套餐,满足学生等群体的需求。
78 17
【阿里云】控制台使用指南:从创建ECS到系统诊断测评
|
9天前
|
人工智能 运维 数据可视化
玩转云服务器——阿里云操作系统控制台体验测评
在云服务器日益普及的背景下,运维人员对操作系统管理工具的要求不断提高。我们需要一款既能直观展示系统状态,又能智能诊断问题,提供专业指导的控制台。阿里云操作系统管理平台正是基于API、SDK、CLI等多种管理方式,致力于提升操作效率,为用户带来全新的系统运维体验。阿里云操作系统控制台凭借便捷易用的设计和高效的管理功能,成为云服务器运维的强力助手。本次测评基于真实体验截图,对其整体表现进行了深入探索。
70 33
|
14天前
|
弹性计算 Linux 数据安全/隐私保护
阿里云幻兽帕鲁联机服务器搭建全攻略,速来抄作业!2025新版教程
阿里云提供2025年最新幻兽帕鲁服务器申请购买及一键开服教程。4核16G配置支持8人,70元/月;8核32G配置支持20人,160元/月。选择配置、地域、操作系统后,点击【一键购买及部署】,约3分钟完成创建。本地安装STEAM客户端并登录,进入游戏选择多人模式,输入服务器IP和端口(8211),即可开始游戏。详细教程及更多问题解答请参考阿里云幻兽帕鲁游戏专区。
62 20
|
13天前
|
存储 人工智能 运维
阿里云操作系统控制台——解决服务器磁盘I/O故障
阿里云操作系统控制台——解决服务器磁盘I/O故障
42 12
|
16天前
|
弹性计算 数据可视化 Linux
阿里云操作系统控制台——ECS操作与性能优化
本文详细介绍如何操作阿里云服务器ECS,从开通到组件安装及内存诊断。首先,通过选择操作系统(如Alibaba Cloud Linux 3)并开通服务,创建RAM用户并授予权限。接着,安装所需组件,支持节点或集群安装。最后,利用内存全景诊断功能,输入实例ID或Pod名称发起诊断并解析结果。这一流程帮助用户高效搭建计算环境,提升技术能力,确保业务稳定运行,并提出优化建议以改善用户体验。
81 8