Tomcat从安装到部署遇到的一些问题
(可能还有其他问题没有遇到,可惜)
首先要明白Tomcat是什么
很简单,Tomcat是免费的web服务器,他是服务器哦
关于Tomcat运行为什么需要jdk环境
**运行tomcat也需要jdk,因为tomcat只有找到了jdk的路径,才能对servlet/jsp进行编译成.class文件,才可以运行
这里讲一下jdk和tomcat环境变量的设置
现在环境变量的配置比较简单,所以我就直接口述了 jdk的 JAVA-HOME ------
tomcat的CATALINA-HOME 把各自的路径填好,在path中
%JAVA-HOME%\bin-----%CATALINA-HOME%\bin** 即可
再讲一下path路径的概念
path(环境变量)是dos以前的内部命令,windows使用至今。用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找,说白了就是设置一个路径,让系统找到他,就可以执行命令了。
**
好了,不扯了,越扯越多
男性博主叫女神,我吐了
https://blog.csdn.net/qq_40881680/article/details/83582484
具体的可以看看这篇博客写的比较详细,适合新手学习
我就根据这里的三种部署方式讲
但是我还是讲一下我安装时遇到的问题(继续看,别走)
当第一次部署的时候,最好先用HTML做测试,比较容易理解,然后再用一个简单的web项目做测试
最好每个测试都用三种方式部署,一步步来,需要简单的web应用程序
[这个web程序中没有html之类的文件,他是加入页面名字的]
(https://pan.baidu.com/s/1HYnyQpjifpOsTFHc0PjWmg)
提取码:3t70
html就自己随便创一个就好
自己一步步来,慢慢玩
1. 如果你的项目中没有index.jsp和index.html类型的文件,当你访问项目的时候就必须有 / +访问的页面名 字的路径,之前一直以为必须要有html类型的文件,傻了吧唧的**
2.在tomcat/webapps目录下,有一个目录叫Root,存放的是tomcat的基本应用,其中的原理和你放在webapps下的web工程是一样的
3.localhost实质上被解析为127.0.0.1,具体怎么解析百度看看,现在不需要了解太深
4这里讲一下第二种方式的部署,在tomcat的conf目录中找到server.xml文件,打开之后找到Host
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context docBase="E:\\project\\j2ee\\web" path="/" debug="0" reloadable="false"/>
</Host>
这里只增加了 <Context docBase="E:\\project\\j2ee\\web" path="/" debug="0" reloadable="false"/>
输入http://127.0.0.1:8080/hello就可以找到页面
5.在Windows系统中,正斜杠/表示除法,用来进行整除运算,在输入网址一般也是正斜杠;反斜杠\用来表示目录,但是我在这里增加路径时用的是反斜杠,所以规定是两个\才能生效,在网址输入的时候亦是如此
7.当你的眼睛眯着笑,当我把路径做了一次改动,改成
输入http://127.0.0.1:8080//haha//hello或者http://127.0.0.1:8080/haha/hello
都可以找得到页面
这次改动可以反应两个问题,一个是上面正斜杠与反斜杠的问题,另一个是path虚拟路径,我是这样理解,就是把你的实际路径doBase封装成path,你输入你的path值就可以找到页面(想怎么理解怎么理解)
8.这三种部署方式,第二种的部署方式对tomcat的侵入性最大,所以这三种部署自己看着办,想用哪个用哪个
但是用第三种部署方式的时候,我发现path属性竟然无用,输入path反而找不到页面,这个自己可以试试
不搞了就这样,越搞越多
最后说一下
<Context docBase=“E:/project/j2ee/web” path=“haha” debug="0"reloadable=“false”/>
里面各种单词属性的意义
1.Context -》 上下文的意思,别看只有三个字,解释起来不容易的
在语文中是这样解释的 指文章或说话中与某一词语或文句相连的上文和下文:这个词的含义联系
但是在java中是这样的 就是一种共享的意义,程序中便于后续程序代码能够共享公用,而这个东西要预先存在或早期把它创造出来。像不像一个实体类,先创建好,可以把上下文理解成 web应用,所谓web应用就是你用哪个应用项目 “/应用项目名”就是上下文 ,自己理解吧,我也是模棱两可
2.docBase -》表示这个项目文件的路径,就是文件所在的真实存在的地方,就这样理解就可以
3.path-》就是虚拟路径,一般在部署tomcat的时候不要用,因为只有第二种部署方式有用,我试了其他方式都不行,可能以后还会用,先记着他是虚拟路径,就是让真实路径用虚拟路径来辨识
4.reloadable-》这个表示tomcat服务器会自动加载,例如 jsp, serlvet 文件修改了内容之后不需要重新启动服务器,当然如果是修改了web.xml配置文件是需要重新启动的。
5.debug’最后一个说,因为我现在也不是很理解,以后理解再来分析,
debug好像有等级区分
是过滤报错信息的,多少等级才报,具体对应不清楚
没把握填0好了*
**
好了,写的也不少了,那就这样吧,
不要哭了嘛
该哭的人是我吧
你都坦白爱上了他
,
食屎拉你
**