Tomcat服务器基本使用
web服务软件,也叫web服务器软件,web服务器。
基本使用
1)下载
到apache官网下载。 http://www.apache.org
安装版本:window exe程序 msi。 linux:rpm
压缩版本: window zip rar linux zip tar.gz (学习使用)
2)直接压缩可用!启动软件。关闭软件
启动软件的步骤
a)找到%tomcat%/bin/startup.bat命令,双击次命令
b)弹出窗口,停止不动
c)打开浏览器输入:
http://localhost:8080/
d)看到一只猫页面
关闭软件:
1)关闭窗口即可
2)双击%tomcat%/bin/shutdown.bat
启动tomcat服务器时遇到的问题
1)双击闪退
原因:tomcat软件是用java语言。运行需要jvm。jdk内包含jvm,tomcat运行时通过JAVA_HOME的系统环境变量查找jdk的。
解决办法: 自行配置一个JAVA_HOME的环境变量
JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30\ (注意:不要配置到bin目录下)
2)端口占用
原因:操作系统上有其他软件已经占用了tomcat软件启动时需要的端口(8080)。
解决办法:
a)关闭其他软件的进程
b)修改tomcat启动时需要的端口
找到%tomcat%/conf/server.xml文件
修改以下内容:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> |
3)CATALINA_HOME环境变量问题
原因:tomcat软件首先通过JAVA_HOME找到jdk,然后通过CATALINA_HOME环境变量加载tomcat的资源文件,最后启动成功。
解决问题: 建议不要去配置CATALINA_HOME
体验tomcat服务器作用
把本地资源共享给外部访问。
规则:把本地资源放到%tomcat%/webapps目录下,就可以共享给外部。且资源文件需要放到一个目录中,不能单独以一个文件形式共享。
URL
http://localhost:8080/myweb/test.html 统一资源定位符
http:// 协议。http协议。
localhost 域名。本地域名。
外部域名: www.baidu.com
http协议执行过程:
1)查找本地hosts文件(c:/windows/system32/drivers/etc/hosts)
ip地址 域名
找是否存在一个域名对应的ip地址
2)如果找到,进入对应的ip地址的PC机器。
3)如果找不到,继续连接网络,到网络运营商的DNS服务器查找是否存在一个域名对 应的IP地址
4)如果找到,则进入对应的ip地址的PC机器
5)如果找不到。域名错误
8080 端口。
8080:tomcat软件监听的端口
3306:mysql数据库软件的端口
80 : 默认端口。访问此端口可以省略端口号不写。
myweb web应用的目录名称(俗称网站名称)
test.html 资源名称(文件名称)
tomcat服务器的目录结构
|-bin: 存在tomcat软件的命令。有两个操作系统的命令
startup.bat/sh catalina.bat start
shutdown.bat/sh catalina.bat stop
|-conf: 存放tomcat软件的配置文件。其中server.xml是核心的配置文件。
|-lib: 存在支撑tomcat软件运行的jar包。
|-logs: 存放日志文件
|-temp: 存放临时文件
|-webapps: 存放所有的web应用(网站)。注意:一个web应用不能以单独一个文件存在!!!
|-work : 存放tomcat的运行文件,例如jsp文件运行过程中产生的临时文件。
web应用(网站)的目录结构
|-WebRoot 网站的根目录(一定有)
|-静态文件(html+css+js) 文件
|-WEB-INF 目录。(名称固定的)注意,在WEB-INF目录下的文件是不能直接被访问的!!
|-classes 目录,名称固定的。存在class字节码文件
|-lib 目录,名称固定的。存在jar包,但不能存在子目录
|-web.xml 文件。名称固定的。用于描述WEB-INF下的资源。网站描述文件。
如果要访问WEB-INF目录下的资源文件,需要在web.xml文件中进行配置,配置以后才可以被访问!
如何部署web应用
1.webapps目录(学习时使用)
把web应用直接拷贝到%tomcat%/webapps目录下即可!!
ROOT是默认网站,访问默认网站是不需要网站名称的。
设置欢迎首页:访问欢迎首页不需要文件名称。
配置web.xml文件
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!--设置欢迎首页 --> <welcome-file-list> <welcome-file>news.html</welcome-file> </welcome-file-list> </web-app> |
2 虚拟web应用(虚拟网站)
好处:可以让tomcat软件和web应用分离
配置server.xml文件:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <!-- 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 --> <!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --> <!-- 配置虚拟web应用 docBase: 表示web应用的绝对路径 path: 表示访问该web应用的名称 --> <Context docBase="C:\mybbs" path="" /> </Host> |
注意: 如果Context中也配置成默认应用,则Context的应用优先于ROOT的网站作为默认网站。
3 添加独立的xml文件配置虚拟web应用(上线使用)
好处:比直接修改server.xml风险低
找到%tomat%/conf/Catalina/localhost目录下,建立一个xml文件。如gzitcast.xml
内容如下:
<?xml version="1.0" encoding="utf-8"?> <!-- docBase: web应用的绝对路径, 访问web应用的名称就是xml的文件名 --> <Context docBase="C:\mybbs"/> |
如何开发动态资源
静态网站: 只有静态资源(html+css+js+images)的网站。
动态网站: 既有静态资源,也有动态资源的网站。
静态资源:当用户多次访问该资源时,资源的源代码永远不会发送改变的资源。
动态资源:当用户多次访问该资源时,资源的源代码可能会发生改变的资源。
Servlet技术:使用java语言开发动态资源的技术!!
特点:
1)Servlet就是一个普通的java类,继承HttpServlet类
2)servlet交给tomcat服务器运行!!!!
==============开发第一个servlet程序:=======================
1)编写一个servlet类,继承HttpServlet
/** * 第一个Servlet * @author APPle * */ public class HelloServlet extends HttpServlet{ /** * 向浏览器输入内容 */ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().write("current time:"+new Date()); } } |
2)把servlet程序交给tomcat服务器运行!!!
2.1 把servlet的class字节码文件拷贝到一个web应用的WEB-INF/classes目录下
2.2 在这个web应用的web.xml文件中配置servlet
<?xml version="1.0" encoding="utf-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!--配置servlet --> <servlet> <!-- servlet的内部名称--> <servlet-name>HelloServlet</servlet-name> <!--servlet类的位置: 包名+简单类名 --> <servlet-class>gz.itcast.c_servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <!-- servlet的内部名称-,和上面的名称保持一致 --> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> |
3)访问servlet
http://localhost:8080/gzitcast/hello