前言:
Tomcat:
开源组织Apache的产品。免费的。支持部分的JavaEE规范。(servlet、jsp。jdbc,但ejb, rmi不支持)
如果是压缩版的话 ,直接解压就可以使用。
打开tomcat:
找到%tomcat%/bin/startup.bat
,双击这个文件
b)弹出窗口,显示信息(不要关闭次窗口)
c)打开浏览器,输出以下地址
http://localhost:8080
d)看到一只猫画面,证明软件启动成功!
关闭tomcat:
a)找到%tomcat%/bin/shutdown.bat,双击这个文件即可!
c)打开浏览器,输出以下地址。看到“无法连接”(最好先清空浏览器缓存)
注意:
localhost代表本地
8080 是默认监听端口号
tomcat常见问题:
1)闪退问题
原因:tomcat软件是java语言开发的。 tomcat软件启动时,
会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。
这个变量的作用找到tomcat启动所需的jvm。
解决办法:
到环境变量中设置JAVA_HOME的变量
JAVA_HOME= C:\Program Files\Java\jdk(注意别配置到bin目录下)
2)端口占用的错误
原因: tomcat启动所需的端口被其他软件占用了!
解决办法:
a)关闭其他软件程序,释放所需端口
b)修改tomcat软件所需端口
找到并修改%tomcat%/conf/server.xml文件
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
注意:
port是默认端口号 改为其他的就行 只要不冲突
3)CATALINA环境变量问题
原因: tomcat软件启动后,除了查找JAVA_HOME后,
还会再查找一个叫CATALINA_HOME变量,
这个变量的作用是设置tomcat的根目录。
如果有两个tomcat那么就有问题了
解决办法:建议不要设置CATALINA_HOME变量。
检查如果有的话,清除掉!!!
webapps目录: tomcat共享目录。需要共享的本地资源放到此目录中。
URL
URL全名叫统一资源定位符,用于定位互联网的资源。
问题: http://localhost:8081/myweb/test.html 看到文件?
http:// 协议。http协议。
localhost 域名。为了找到IP地址。
本地域名: localhost
外部域名:www.baidu.com
8081 端口。软件监听的
8080: tomcat默认的端口
3306:mysql数据库的端口
1521: orace数据库的端口。
/myweb: web应用的名称。默认情况下,在webapps目录下找
/test.html : 资源名称。
题外话:C:\Windows\System32\drivers\etc\hosts
可以知道localhost对应的电脑ip地址localhost :
在计算机网络中,localhost(意为“本地主机”,指“这台计算机”)是给回路网络接口(loopback)的一个标准主机名,相对应的IP地址为127.0.0.1(IPv4)
Tomcat的目录结构:
|-bin: 存放tomcat的命令。
catalina.bat 命令:
startup.bat -> catalina.bat start
shutdown.bat - > catalina.bat stop
|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件。
|-lib:支持tomcat软件运行的jar包。其中还有技术支持包,如servlet,jsp
|-logs:运行过程的日志信息
|-temp: 临时目录
|-webapps: 共享资源目录。web应用目录。(注意不能以单独的文件进行共享)
|-work: tomcat的运行目录。jsp运行时产生的临时文件就存放在这里
Web应用的目录结构:
(图片来自网络)
|- WebRoot : web应用的根目录
|- 静态资源(html+css+js+image+vedio)
|- WEB-INF : 固定写法。
|-classes: (可选)固定写法。存放class字节码
文件 最好是带有包名
|-lib: (可选)固定写法。存放jar包文件。
|-web.xml //文件配置信息
- WEB-INF目录里面的资源不能通过浏览器直接访问
但该目录下的内容对于Servlet代码是可见的 - 如果希望访问到WEB-INF里面的资源,就必须把资源配置到一个叫web.xml的文件中。
- web.xml:Java web server / servlet container使用,比如告诉容器哪些servlets需要部署,以及URL映射关系
- 存放jar,通常存放第三方依赖,或将自己的java代码打成jar放在此,而不是classes下
- 说明:① WEB-INF目录下的classes和lib目录都可以存放Java的类文件,在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类
再来一张汇总的:来自网络
访问Web应用时出现404错误的常见原因
- web.xml中的servlet-class配置错误
a. servlet-class的值不是相对于WEB-INF/classes目录、
b. 类名与WEB-INF/classes下的不同
c. <servlet-class>的值不是类名,而是class
举例:<servlet-class>first.one.first.class</servlet-class>
- web.xml中的url-pattern配置错误
url-pattern属性的值没有以”/”开头