Tomcat使用,部署 Tomcat服务器基本使用 体验tomcat服务器作用 tomcat服务器的目录结构 web应用(网站)的目录结构 如何部署web应用 如何开发动态资源

web服务软件,也叫web服务器软件,web服务器。

基本使用

1)下载

apache官网下载。 http://www.apache.org

 安装版本:window  exe程序 msi。  linuxrpm

 压缩版本:  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语言。运行需要jvmjdk内包含jvmtomcat运行时通过JAVA_HOME的系统环境变量查找jdk的。

解决办法: 自行配置一个JAVA_HOME的环境变量

JAVA_HOME= C:Program FilesJavajdk1.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" />

3CATALINA_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    端口。

8080tomcat软件监听的端口

3306mysql数据库软件的端口

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语言开发动态资源的技术!!

特点:

1Servlet就是一个普通的java类,继承HttpServlet

2servlet交给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 servletclass字节码文件拷贝到一个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