JavaWeb前置知识与环境配置

JavaWeb前置知识与环境配置

1. HTTP 协议

1.1 简介

超文本传输协议(HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协
调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。
在这里插入图片描述

HTTP协议是基于TCP/IP协议之上的应用层协议。

HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。

1.2 请求/响应的步骤

  1. 客户端连接到Web服务器

    一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。

  2. 发送HTTP请求

    通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

  3. 服务器接受请求并返回HTTP响应

    Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

  4. 释放TCP连接

    在HTTP/1.0中默认使用短连接。也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连接,任务结束就中断连接。当客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源(如JavaScript文件、图像文件、CSS文件等),每遇到这样一个Web资源,浏览器就会重新建立一个HTTP会话。

    而从HTTP/1.1起,默认使用长连接,用以保持连接特性。使用长连接的HTTP协议,会在响应头加入这行代码:Connection:keep-alive

    在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,客户端再次访问这个服务器时,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。实现长连接需要客户端和服务端都支持长连接。

    HTTP协议的长连接和短连接,实质上是TCP协议的长连接和短连接。

  5. 客户端浏览器解析HTML内容

    客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:

  1. 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  2. 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
  3. 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
  4. 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
  5. 浏览器将该 html 文本并显示内容;

1.3 HTTP请求方法

HTTP/1.1协议中共定义了八种方法(动作)来以不同方式操作指定的资源:

  • GET
    向指定的资源发出「显式」请求。使用GET方法应该只用在读取数据,而不应当被用于产生「副作用」的操作中,例如在Web Application中。其中一个原因是GET可能会被网络爬虫等随意访问。
  • HEAD
    与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中「关于该资源的信息」(元信息或称元数据)。
  • POST
    向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
  • PUT
    向指定资源位置上传其最新内容。
  • DELETE
    请求服务器删除Request-URI所标识的资源。
  • TRACE
    回显服务器收到的请求,主要用于测试或诊断。
  • OPTIONS
    这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用*来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

2. C/S与B/S

C/S:又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,客户端需要安装专用的客户端软件。如QQ,微信等软件

B/S:是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser)。Browser/Server是建立在广域网的基础上的。

C/S和B/S结构各自的优、缺点:

优点缺点
C/S1. 交互性强,客户端有着一套完整的应用程序,相对B/S有着更加强大的功能,还可以实现子程序之间的切换;
2. 安全性强,只适用于局域网,相对来说其安全比较好;
3. 处理信息能力强,C/S的通信量相对B/S是少了很多的;
4. 速度较快,更加利于处理大量数据。
1. 只适用于局域网;
2. 客户端要安装专用的客户端软件;
3. 每当系统升级时,每一台客户机需要重新安装;
4. 操作系统可能会有限制。
B/S1. 客户端零维护;
2. 系统扩展容易;
3. 在电脑可上网的前提下,可以在任何操作系统上使用并且不需要安装专门的软件 。
1. 相对C/S来说交互能力差,不能够在子程序间自由切换;
2. 安全性较差,B/S其安全性只能靠数据库服务器上管理密码的数据库来保证;
3. 逻辑结构比C/S多一层,处理速度较慢

3. Web服务器的分类

Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。开发Java Web应用所采用的服务器主要是与JSP/Servlet兼容的Web服务器,比较常用的有
Tomcat、Resin、JBoss、WebSphere 和 WebLogic 等。

  • Tomcat 服务器

    目前最为流行的Tomcat服务器是Apache-Jarkarta开源项目中的一个子项目,是一个小型、轻量级的支持JSP和Servlet 技术的Web服务器,也是初学者学习开发JSP应用的首选。

  • Resin 服务器

    Resin是Caucho公司的产品,是一个非常流行的支持Servlet和JSP的服务器,速度非常快。Resin本身包含了一个支持HTML的Web服务器,这使它不仅可以显示动态内容,而且显示静态内容的能力也毫不逊色,因此许多网站都是使用Resin服务器构建

  • JBoss服务器
    JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JML API实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合

  • WebSphere 服务器

    WebSphere是IBM公司的产品,可进一步细分为 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java 的应用环境,可以运行于 Sun Solaris、Windows NT 等多种操作系统平台,用于建立、部署和管理Internet和Intranet Web应用程序。

  • WebLogic 服务器
    WebLogic 是BEA公司的产品(现在已经被Oracle收购),可进一步细分为 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强大。WebLogic 支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。对于那些正在寻求能够提供Java平台所拥有的一切应用服务器的用户来说,WebLogic是一个十分理想的选择

4. Tomcat

tomcat的使用是基于java的,所以要保证我们的电脑已经有了java环境。

4.1 安装与配置

  1. 去官网下载对应版本的Tomcat

    官网地址:https://tomcat.apache.org/

在这里插入图片描述

  1. 解压或安装到一个没有特殊符号的目录中(最好不要包含中文路径)我这里下载的是zip包,解压即可

  2. 配置环境变量

    右键点击此电脑,打开属性,找到高级系统设置->环境变量->系统变量

    (1) 新建一个变量CATALINA_HOME,值为tomcat安装的路径,结尾不要分号

    (2) 配置Path变量,找到系统变量中的Path变量,点击编辑,新建一个,值为%CATALINA_HOME%\bin

    image-20201119154624242

    (3) 配置ClassPath变量,找到系统变量中的ClassPath变量(没有就新建一个),值为%CATALINA_HOME%\servlet-api.jar

  3. 将tomcat9安装到windows服务中(可做可不做)

    打开cmd命令行输入service install Tomcat9

    如果报以下错误:

    The file Tomcat9.exe was not found... 
    Either the CATALINA_HOME environment variable is not defined correctly or ....省略
    

    找到环境变量Path,编辑文本,去除%CATALINA_HOME%\bin后面的分号,安装成功后再加上分号。

注意: 第四步将tomcat9安装到windows服务中,可做可不做,做这步的目的就是使解压后bin文件夹下的tomcat9.exe和tomcat9w.exe也可以运行,使得绿色解压版和exe安装版安装tomcat的功能一样完整。

至此,配置工作完成!打开bin文件夹,双击startup.bat(或tomcat9.exe)启动tomcat服务,因为配置了环境变量也可以直接在cmd中输入startup.bat(或tomcat9.exe),它会自动打开一个控制台界面。不要关闭控制台界面,打开浏览器,输入http://localhost:8080,出现Tomcat的网页,证明安装并配置成功!最后关闭控制台,关闭控制台即关闭Tomcat服务。
在这里插入图片描述

4.2 tomcat内目录的含义

  1. bin:该目录下存放的是二进制可执行文件,有两个exe文件:tomcat9.exe、tomcat9w.exe,前者是在控制台下启动Tomcat,后者是弹出GUI窗口启动Tomcat;有有两个bat文件:startup.bat和shutdown.bat,startup.bat用来启动Tomcat,shutdown.bat用来停止Tomcat;

  2. conf:这是一个非常非常重要的目录,这个目录下有四个最为重要的文件:

    • server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等;

    • tomcat-users.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;

    • web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了,但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。

      MIME就是用来说明文档的内容是什么类型的!

    • context.xml:对所有应用的统一配置,通常我们不会去修改它。

  3. lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之,但这样你的应用放到其他Tomcat下时就不能再共享这个目录下的Jar包了,所以建议只把Tomcat需要的Jar包放到这个目录下;

  4. logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,那么异常也会记录在日志文件中。

  5. temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!

  6. webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。

    如:http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字

  7. work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

  8. LICENSE:许可证。

  9. NOTICE:说明文件。

通过url访问服务器:

url:http://服务器的ip地址:端口号/项目名/被访问的页面

示例:http://localhost:8080/test

注: (1)启动tomcat后,tomcat会加载部署在服务器端的所有项目

(2) 浏览器访问的页面是服务器端的页面,基本上服务器的项目和工作空间的项目要保持一致

4.3 IntelliJ IDEA配置Tomcat

  1. 点击Run—Edit Configurations…
    在这里插入图片描述

  2. 点击左侧+号,找到Tomcat Server—Local

image-20201119141510118

  1. 在Tomcat Server -> local-> Server -> Application server项目下,点击 Configuration ,找到本地 Tomcat 服务器,再点击 OK按钮。

至此,IntelliJ IDEA配置Tomcat完成。

4.4 创建JavaWeb项目

  1. 点击左上角的File–>New–>Project,选择Java Enterprise,在Application Sever中找到自己的Tomcat,同时勾中Web Application 和 Create web.xml,点击next,输入项目名称和路径,点击finish即可。

在这里插入图片描述

  1. 创建好之后文件结构如下:

  2. 在WEB-INF文件夹下创建classes和lib文件夹,名字不可改

    classes 用来存放java文件编译后的字节码文件
    lib 用来存放项目所需的jar依赖包
    
  3. 配置jar包和classes包

    (1) 在File中找到Project Structure,点击Modules,选择Paths,选中Use module compile output path,把路径改成刚刚创建的classes文件夹,点击Apply

在这里插入图片描述

如果classes文件夹没有变颜色,就右键点击classes文件夹,选择Mark Diectory as —>Exclued

在这里插入图片描述

(2) 选择Dependencies,点右边的+号 选择1 JARs or directories,选择刚创建的lib文件夹,点ok,选择Jar Directory,点击ok。

在这里插入图片描述

  1. 部署项目:将本地项目安装到服务器中

    (1) idea主界面顶部菜单栏点击Run ,选择Edit Configurations,可以配置一些信息

在这里插入图片描述

  1. 运行
    在这里插入图片描述

运行成功
在这里插入图片描述

4.5 tomcat常用操作

4.5.1 修改端口号

修改配置文件:/conf/server.xml 的port

<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" />

如果将端口号改成80,则访问项目时的请求路径就可以省略端口号。

4.5.2 管理项目

给tomcat增加管理员信息:配置conf/tomcat-users.xml

在tomcat-users.xml文件中添加下面代码

<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>

在这里插入图片描述

点击Manager App会弹出下面这个框,我们输入tomcat-users.xml文件中添加的管理员账户密码就可以看到当前tomcat服务器中的所有web应用。


在这里插入图片描述

注意:tomcat启动的时候会加载webapps下的所有项目

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnswerCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值