Tomcat的安装配置与web项目发布

Posted codexi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat的安装配置与web项目发布相关的知识,希望对你有一定的参考价值。

Tomcat的安装配置与web项目发布

今日内容

         1、Web开发基本概念(了解)

         2、tomcat的安装和配置(必会)

         3、web项目的发布(必会)

         4、Http协议简介(理解)

Web开发基本概念

1、软件的架构

         常用的软件:QQ、京东、淘宝、kgc

         1)C/S架构

         解释:客户端/服务器。

         特点:需要下载并安装,每次更新需要下载,客户端和服务器有可能都需要更新

         控件炫酷,因为它调用的是系统底层的图形的API

         2)B/S架构

         解释:浏览器/服务器架构。它是基于Http协议的,用的是请求/响应模式。

         特点:通过浏览器直接访问,更新不需要用户干涉,在服务器端维护

2、web资源分类

         什么是web资源?

         放在服务器上,供用户访问的文件、图片、CSS、JS、视频、音频等

         1)静态资源:css、js、图片 html 视频  音频

         2)动态资源:如果文件是由容器进行编译、执行后生成的文件,就是动态资源。Servlet、jsp。

         当用户访问资源的时候,动态资源和静态资源走的引擎不一样。

3、服务器的概念以及常见的web服务器

l  什么是服务器?

         服务器是软件和硬件的结合体。首先要由服务器的硬件,然后安装服务器软件,对软件进行配置,启动起来。这样用户才可以访问。

l  常见的web服务器

概念:就是可以运行web程序的服务器,当用户把web程序部署到该服务器后,启动就可以访问web资源。

1)WebSphere:IBM公司的商用服务器,收费。

2)WebLogic:BEA 公司的商业服务器,收费 jsp/servlet

3)IIS ,asp  asp.net

4)tomcat:开源的服务器,高效,小巧。通常现在经常把tomcat在分布式环境下搭建集群。

 

4、web动态资源的结构

 

         Webapp(webroot)

                  WEB-INF

web.xml(部署描述符文件)

lib(文件,放jar文件)

                  jsp(html  css js)

 

就是一般在站点的下面会专门创建文件夹放css,js和imgs类似。Lib放第三方的jar,拷贝进去后,不需要再去构建路径

tomcat的安装和配置

         1、下载地址:https://tomcat.apache.org/download-80.cgi

         2、下载什么?

    

         说明:gz是linux版本,zip是windows版本,要根据操作系统的64还是32,选择合适的。

         3、安装就是解压缩。

                  1)解压到根目录

                  2)不能解压到中文文件夹、中间不要有空格、也不要用很特殊的字符

 

 

         4、配置

                  1)该软件依赖jdk,没有jdk无法运行启动。那么就必须配置jdk的环境变量

                  JAVA_HOME: C:\Program Files\Java\jdk1.8.0_111

 

CLASSPATH: .;%JAVA_HOME%\lib; %JAVA_HOME%\lib

 

 

                  配置path环境变量,在前面加上   %JAVA_HOME%\bin;

 

 

 

 

Path环境变量所做过的修改

 

D:\Program Files\mysql\MySQL Server 5.5\bin;

这是配置的数据库的环境变量

 

 

%Java_Home%\bin;

这是配置的jdk的环境变量

 

 

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

 

 

%CATALINA_HOME%\bin;

这是配置的tomcat的环境变量

 

 

---------------------------------------------------------------------------------------------------------------------------------

                 

 

 

 

 

                  2)配置tomcat环境

                  CATALINA_HOME: D:\apache-tomcat-8.0.26

 

                  在后面加上  %CATALINA_HOME%\bin;

 

                  3)如何判断安装成功

           

 

5、在命令行输入startup.bat,出现下面的界面,屏幕没有一闪而过,就说明没有问题。这说明启动成功

 

 

6、测试:在浏览器输入http://localhost:8080/

 

         7、tomcat的目录结构

 

bin:启动和关闭tomcat的文件夹。

 

startup.bat是用来启动服务器,

shutdown.bat是停止服务器的

这里的bat文件我们称为批处理文件

以.sh结尾的文件是在linux环境下启动和关闭服务器的文件。

 

conf:配置文件夹

lib:该软件依赖的jar包

logs:日志文件

temp:临时文件夹

webapps:就是用来发布你自己的web应用的文件夹,比如自己的站点可以拷贝到这里。

work:放的jsp文件翻译的源代码文件以及编译后的字节码文件

web项目的发布

学习误会:

1)大家认为,我们一个动态站点 开发完毕,要测试或者正式上线,就是每次手工拷贝项目到webapps?

http://localhost:8080/web01/xxxxx资源

解答:可以这么做,但是在开发的时候调试的效率太低,每次修改一定代码,都必须手工拷贝,速度太慢。所以我们是通过软件自动的拷贝到webapps下面的。这个通过软件拷贝的过程叫做部署和发布。什么时候用该方式昵?比如项目完成后,到客户现场一般带到现场的不是源代码(源代码不会随便给实施工程师),而是编译后的文件,一般手工拷贝部署。也可以远程的方式拷贝部署。(有云服务器,有账号和密码)。

2)发布:有手工拷贝,还有工具拷贝,比如通过eclipse自动拷贝和部署。

 

发布一个web工程到tomcat中共有三种方法:

  1. 直接将web工程的WebContent拷贝到tomcat/webapps中.

 

 

  1. 配置tomcat的虚拟路径
  2. 配置tomcat的虚拟路径

 

方式一:直接copy项目到webapps下

直接将web工程复制到webapps即可,注意它copy的是webContext这个文件夹的内容。

 

 

例如http://localhost:8080/WebContent/NewFile.jsp

http://60.1.1.128:8080/aa/NewFile.jsp

当需要别人的电脑访问你的网页,需要将localhost 改为本机的ip地址60.1.1.128

获取ip地址的方式为,在黑窗口输入ipconfig

 

 

方式二:配置tomcat的虚拟路径(不推荐)

在tomcat/conf/server.xml文件中进行配置

在<Host>标签下配置:

<Context path="aaa" docBase="D:/HelloKitty"/>

 

方式三:配置tomcat的虚拟路径(推荐)

在tomcat/conf/Catalina/localhost/xxx.xml

配置<Context docBase="D:/HelloKitty"/>

 

用尾文件的路径取代"D:/HelloKitty"

xxx作为虚拟路径的名称

创建xml文件

Xml的文件名就是访问路径

例如http://localhost:8080/aa/NewFile.jsp

 

如何得到路径?

 

 

任务,分别使用cmd启动服务器,和使用eclipse启动服务器来实现web项目的发布

eclipse环境配置tomcat以及发布和部署web项目

 

 

 

说明:第一次的不要添加web到服务器,因为会自动发布到插件中

 

 

 

 

Http协议简介

Http协议的概述

协议

什么是协议:规定双方需要遵守的规则

http协议

什么是http协议:用来规定浏览器和服务器之间需要遵守的规则.

解读:是软件的协议,规定是浏览器和服务器双方要遵循的规则。为什么需要遵循规则?因为是软件,它是机器来执行的,它自己不会判断,只会机械执行。而且在计算机世界中是二进制的数据。那么这些数据进行交互和通信,机器怎么知道它要去执行什么指令?那么就必须约定规则。这样才可以。

 

http协议的作用:规范浏览器和服务器之间的数据传递.

 

http协议的特点:

  1. 基于请求和响应的模型

必须先有请求,后有响应

请求和响应必须成对出现

  1. 默认的端口号是80
  2. 3.       无状态的协议

 

http协议的版本:

1.0            每次响应后即刻关闭了连接.      

1.1              现在使用.不是每次响应后挂断,等待长时间以后,没有请求就会挂断.

http协议的演示

抓包分析:get方式

请求部分:

GET /ServletDemo/http/demo2.html?name=aaa&age=18 HTTP/1.1

Host: localhost:8080

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Referer: http://localhost:8080/ServletDemo/http/demo1.html

Connection: keep-alive

Upgrade-Insecure-Requests: 1

 

抓包分析:post方式

请求部分:

POST /ServletDemo/http/demo2.html HTTP/1.1

Host: localhost:8080

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Accept-Encoding: gzip, deflate

Content-Type: application/x-www-form-urlencoded

Content-Length: 15

Referer: http://localhost:8080/ServletDemo/http/demo1.html

Connection: keep-alive

Upgrade-Insecure-Requests: 1

 

name=bbb&age=38

 

响应部分:

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Accept-Ranges: bytes

ETag: W/"143-1508222586306"

Last-Modified: Tue, 17 Oct 2017 06:43:06 GMT

Content-Type: text/html

Content-Length: 143

Date: Tue, 17 Oct 2017 06:48:05 GMT

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

         hello servlet!!!

</body>

</html>

http协议的详解

请求部分

请求行

提交方式:

提交方式有很多种,常用的就是get,post,还有一些put,delete...

get和post的区别:

get的提交的参数会显示到地址栏上,而post不会

get往往是有大小限制的,而post没有大小的限制

get没有请求体,而post是有请求体

提交路径:      

协议版本:       HTTP/1.1

 

请求头

都是键值对的形式显示存在的,一般一个key对应一个value,也有一些是一个key多个value

User-Agent:     代表的是浏览器的类型---文件下载,下载中文文件,IE使用URLEncoder                                   进行编码,而Firefox会是Base64编码

Referer:            代表的是网页的来源.---防盗链

If-Modified-Since:   通常与响应中的头Last-Modified一起使用来查找本地缓存.

 

请求体

就是post提交方式提交到服务器的参数

响应部分

响应行

协议版本        :HTTP/1.1

状态码             :

200 成功

302 重定向

304 查找本地缓存

404 资源不存在

500 服务器内部错误

状态码描述

 

响应头:键值对,一般一个key对应一个value,也有一个key对应多个value

Last-Modified          :与请求头中的If-Modified-Since一起使用查找本地缓存.

Content-Disposition:文件下载的时候使用的一个头信息

Location                    :重定向跳转的路径

Refresh                      :定时刷新/定时跳转

问题:

         Web中,缓存的原理是什么?

         第1次请求的时候,会把资源和时间带到客户端浏览器缓存文件夹中,第2次请求同一个资源的时候,请求头会带一个If-Modified-Sice(时间戳)到服务器端,服务器端去查找请求的资源的最后修改时间是什么,把这个时间和带过来的时间进行对比,如果不同,就会把资源重新发送到浏览器缓存文件夹,同时会带一个时间戳Last-Modified 过去。如果相同,就发一个状态码304,(此时不会将资源重新发送到浏览器缓存文件夹),那么浏览器会自动到缓存文件夹中查找资源并显示。

响应体:

显示到浏览器的页面的内容

作业:

1、三种发布方式练习

2、在eclipse中创建web项目,以及配置tomcat,发布项目和启动、关闭。

3、预习Servlet

 

学习底线:

1、会创建web项目,会配置tomcat,会发布项目,启动

2、servlet会创建、会配置部署描述符以及会通过url访问servlet(相对路径和绝对路径)

3、会在servlet(控制器)中通过request对象获得客户端浏览器提交的请求参数的值。

从前台到后台,意味着会从后台获取前提提交数据。Request对象,学会核心方法。

4、会从后台到前台。会响应页面或者数据给前台。Reponse对象

5、会处理响应乱码或者请求乱码。Request中获得前台数据的时候,如果是get提交会有乱码,要会处理。响应的数据会通过response处理乱码。

6、懂得转发和重定向的区别,继而会选择合适的域对象,把数据存储到域对象。当然也会从域对象中获得存放的值。

7、mvc的执行流程

8、JSTL和EL表达式的使用(数据绑定的时候,处理循环、判断以及从域对象中获得数据后进行绑定)

9、三层架构的基础上,这个是基础中的基础。

10、过滤器的使用

11、jsp的9个内置对象以及他们的用法

12、会处理AJAX,返回json数据

13、单表的带条件的分页查询

 

提高部分:

1、cookie的原理

2、session的原理

3、跨域访问的问题

4、表单的重复提交处理

5、禁止cookie后怎么处理?

6、文件的上传和下载(我们的企业家开发不会用框架来处理上传和下载)

7、监听器的使用场景

8、用户的自动登录功能

9、jsp页面的组成部分(动作、小脚本、表达式的混排使用)

10、验证码

11、多个表的带条件的分页查询

 

 

        

以上是关于Tomcat的安装配置与web项目发布的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 安装与配置

Tomcat安装与配置

Tomcat安装与配置

1Web容器的理解&Tomcat的安装与配置

EclipseEE的Web开发环境配置(使用Tomcat作为Web服务器)

Tomcat 下载与安装