2022.4.16 Javaweb与Tomcat服务器
1. 前言
什么是JavaWeb
-
JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。
-
JavaWeb 是基于请求和响应来开发的。
什么是请求
-
请求是指客户端给服务器发送数据,叫请求 Request。
什么是响应
-
响应是指服务器给客户端回传数据,叫响应 Response。
请求和响应的关系
-
请求和响应是成对出现的,有请求就有响应。
web开发:
web,网页的意思, www.baidu.com
-
静态web
-
html,css
-
提供给所有人看的数据始终不会发生变化!
-
-
动态web
-
淘宝,几乎是所有的网站;
-
提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同!
-
技术栈: Servlet/ISP,ASP,PHP
-
在Java中,动态web资源开发的技术统称为Javaweb;
2. web应用程序
web应用程序:可以提供浏览器访问的程序;
-
a.html,b.html...多个web资源,这些web资源可以被外界访问,对外界提供服务
-
你们能访问到的任何一个页面或者资源,都存在于这个世界的某一个角落的计算机上
-
URL
-
这个统一的web资源会被放在同一个文件夹下,web应用程序-->Tomcat:服务器。一个web应用由多部分组成(静态web,动态web)
-
html,css,js
-
jsp,servlet
-
Java程序
-
jar包
-
配置文件(Properties)
-
web应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理;
静态web
-
*.htm, *.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以通过网络直接进行读取。
-
静态web存在的缺点
-
Web页面无法动态更新,所有用户看到都是同一个页面
-
轮播图,点击特效:伪动态
-
JavaScript [实际开发中,它用的最多]
-
VBScript
-
-
它无法和数据库交互(数据无法持久化,用户无法交互)
-
动态web
页面会动态展示:Web的页面展示的效果因人而异
缺点:
-
加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布(停机维护)
优点:
-
Web页面可以动态更新,所有用户看到都不是同一个页面
-
它可以与数据库交互(数据持久化)
3. web服务器
3.1、技术讲解
ASP:
-
微软:国内最早流行的就是ASP;
-
在HTML中嵌入了VB的脚本,ASP + COM;
-
在ASP开发中,基本一个页面都有几千行的业务代码,页面极其换乱·维护成本高!
-
C#
php:
-
PHP开发速度很快,功能很强大,跨平台,代码很简单
-
无法承载大访问量的情况(局限性)
JSP/Servlet:
B/S:浏览和服务器
C/S:客户端和服务器
-
sun公司主推的B/S架构
-
基于Java语言的(所有的大公司,或者一些开源的组件,都是用ava写的)
-
可以承载三高问题带来的影响;
-
语法像ASP
3.2、web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
-
-
Jboss是一个遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,它支持所有的JavaEE规范(免费)。
-
GlassFish: 由Oracle公司开发的一款JavaWeb服务器,是一款强健的商业服务器,达到产品级质量(应用很少)。
-
Resin:是CAUCHO公司的产品,是一个非常流行的服务器,对servlet和JSP提供了良好的支持,性能也比较优良,resin自身采用JAVA语言开发(收费,应用比较多)。
-
Tomcat:
最新的Servlet和JSP规范总是能在Tomcat中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱,成为目前比较流行的Web应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个ava初学web的人来说,它是最佳的选择 Tomcat 实际上运行JSP页面和Servlet。
到了Servlet 3. 0 之后。就是注解版本的Servlet使用。
下载安装
解压后:
-
-
conf 专门用来存放Tocmat服务器的配置文件
-
lib 专门用来存放Tomcat服务器的jar包
-
logs 专门用来存放Tomcat服务器运行时输出的日志信息
-
temp 专门用来存放Tomcdat运行时产生的临时数据
-
webapps 专门用来存放部署的Web工程。里面一个目录是一个工程
-
webapps目录
启动:
找到Tomcat目录下的bin目录下的startup.bat文件,双击,就可以启动Tomcat服务器。
启动失败的情况,双击startup.bat文件,就会出现一个小黑窗口一闪而来。
这个时候,失败的原因基本上都是因为没有配置好JAVA_HOME环境变量。
常见的JAVA_HOME配置错误有以下几种情况:
-
JAVA_HOME必须全大写。
-
JAVA_HOME中间必须是下划线,不是减号-
-
JAVA_HOME配置的路径只需要配置到jdk的安装目录即可。不需要带上bin目录。
另一种启动 tomcat 服务器的方式,这种方式可以看到tomcat启动错误的信息
-
打开命令行
-
cd 到 你的Tomcat的bin 目录下
-
敲入启动命令: catalinarun
Tomcat 的停止
-
点击tomcat服务器窗口的x关闭按钮
-
把Tomcat服务器窗口置为当前窗口,然后按快捷键Ctrl+C
-
找到Tomcat的bin目录下的shutdown.bat双击,就可以停止Tomcat服务器
端口号
域名(www.baidu.com)对应一个ip,后面再:端口号
例如百度:http://www.baidu.com: 80
HTTP协议默认的端口号是: 80,端口号为80的,一般不会在网址上显示80
访问测试:
在Tomcat安装后,tomcat的默认目录是webapps/root中的index.jsp
访问文件夹examples:http://localhost:8080/examples
可以配置启动的端口号
-
tomcat的默认端口号为:8080
-
mysql: 3306
-
http: 80
-
https: 443
1 tomcat的默认端口号为:8080 2 <Connector port="8080" protocol="HTTP/1.1" 3 connectionTimeout="20000" 4 redirectPort="8443" />
可以配置主机的名称
-
默认的主机名为: localhost等价127.0.0.1
-
默认网页应用存放的位置为: webapps
1 <Host name="localhost" appBase="webapps" 2 unpackWARs="true" autoDeploy="true">
高难度面试题
请你谈谈网站是如何进行访问的!
-
输入一个域名;回车
-
检查本机的C:Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;
-
有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
-
没有:去DNS服务器找,找到的话就返回,找不到就返回找不到;
-
3.3、如何部暑 web 工程到 Tomcat 中
第一种部署方法:只需要把 web 工程的目录拷贝到 Tomcat 的 webapps 目录下即可。
如何访问 Tomcat 下的 web 工程。
只需要在浏览器中输入访问地址格式如下:http://ip:port/工程名/目录下/文件名
找到Tomcat下的conf目录\Catalina\localhost\下,创建一个xml配置文件(一个xml就相当于一个工程)
工程名.xml配置文件内容如下:
<!--Context表示一个工程上下文
path表示工程的访问路径: /abc
docBase表示你的工程目录在哪里 这个就可以不用将工程放在webapps下
访问localhost:8080/abc/index.html 就会映射为localhost:8080/工程文件夹/index.html
-->
<Context path="/abc" docBase="D:\StudyCode\工程文件夹名" />
访问这个工程的路径如下:http://ip:port/abc/ 就表示访问D:\StudyCode\工程文件夹名目录
3.4、两种页面访问方式的区别
将html 页面直接拖到浏览器和在浏览器中输入 http://ip: 端口号 / 工程名 / 访问的区别
将html 页面直接拖到浏览器的原理:
输入访问地址访问的原理:
3.5、两种默认访问
当我们在浏览器地址栏中输入访问地址如下:
http://ip:port/ ====>>>> 没有工程名的时候,默认访问的是webapps中的ROOT工程。
当我们在浏览器地址栏中输入的访问地址如下:
http://ip:port/工程名/ ====>>>> 没有资源名,默认访问index.html页面
4、IDEA 整合 Tomcat
在IDEA中配置Tomcat 以版本10为例 后面servlet用的版本9
我们访问一个网站必须要指定一个文件夹名称,所以需要配置(也是解决上图下方的警告问题)
可以写,可以不写不写:默认访问路径为localhost:808O 假如写了一个/xing,访问localhost:8080/xing 这个过程叫做:虚拟路径映射
5、IDEA 中动态 web 工程的操作
5.1、IDEA 中如何创建动态 web 工程
一般还会在WEB-INF目录下创建一个lib目录,用于存放jar包
5.2、Web 工程的目录介绍
-
sre目录存在自已编写的java源代码
-
web目录专门用来存放web工程的资源文件。比如: html页面css文件js文件等等
-
WEB-INF目录是一个受服务器保护的目录,浏览器无法直接访问到此目录的内容(只能通过代码间接访问)
-
lib目录用来存放第三方的jar包(IDEA还需要自己配置导入)
-
web. xml它是整个动态web工程的配置部署描述文件可以在这些配置很多web工程的组件,比如:Servlet程序、Filter过滤器、Listener监听器、Session超时等等
5.3、如何给动态web工程添加额外jar包
1、可以打开项目结构菜单操作界面,添加一个自己的类库
2、添加你类库需要的jar包文件
3 、选择你添加的类库,给哪个模块使用:
4 、选择Artifacts选项,将类库添加到打包部署中
5.4、如何在 IDEA 中部署工程到 Tomcat 上运行
1 、建议修改web工程对应的Tomcat运行实例名称
2 、确认你的Tomcat实例中有你要部署运行的web工程模块
3 、你还可以修改你的Tomcat实例启动后默认的访问地址
4、在IDEA中运行,和停止Tomcat实例。启动tomcat默认访问web目录下的index.jsp
5.5、修改工程路径
5.6、修改运行的端口号
5.7、修改运行使用的浏览器
5.8、配置资源热部署
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)