Tomcat部署

来源:互联网 发布:汉诺塔问题python 编辑:程序博客网 时间:2024/05/19 18:44

1、知识点

2、Tomcat部署

2.1、什么是Tomcat

2.2、Tomcat安装

       我们此次使用的Tomcat为:apache-tomcat-7.0.30。Tomcat的部署可以分为安装版的安装,或手工安装(部署)。安装版在安装过程中会提示你指定JDK目录(即JAVA_HOME)之类的,而手工部署则要自己到系统环境变量中设置。如果我们重装系统后,又想保留之前Tomcat服务文件的配置,则可以手工部署以重用重装系统前的Tomcat。

u  安装版的安装(过程略)

u  手工安装

1)       配置JAVA_HOME,即java安装路径,如:D:\ProgramFiles\java\jdk1.7.0_03

2)       配置JRE_HOME,即java JRE的路径,如:D:\Program Files\java\jdk1.7.0_03\jre

3)       配置CATALINA_HOME,如:F:\Program Files\apache-tomcat-7.0.30

                                     i.             此环境变量值为tomcat的解压目录

                                   ii.             注意后面不用多加“\”或者“;”

2.3、启动Tomcat

tomcat主目录中的文件夹有以下几个:

bin:所有的可执行文件;

common里面存放需要的*.jar包;

conf:配置文件,服务器的修改都要从此目录中进行;

logs:日志文件、如果服务器出现错误,会自动记录;

server服务器管理程序;

webapps:所有的可执行的WEB项目都会放在此目录之中;

work:此文件夹中保存了所有的临时文件,当开发中发现一个程序无论怎样调整都无法正确执行的时候,就可以考虑将此文件夹中的全部内容清空。

可以发现,本次测试环境中并没有server和common文件夹,可能是由于版本或者安装方式(本次安装方式为手工安装)不同而造成的。

启动Tomcat,打开bin目录下的startup.bat程序即可,如果不想每次都进入此路径打开startup.bat,则可以配置系统的path环境变量,添加此bin路径即可,如下:

成功启动Tomcat后信息如下:

其中高亮的是端口号,可以用于在浏览器中访问Tomcat服务器。

启动浏览器,输入地址 http://localhost:8080

如果现在访问的是其他机器的服务器,则只要输入:http://IP地址:地址端口号。

2.4、配置Tomcat服务器

       用记事本(或其他编辑器)打开%CATALINA_HOME%\conf\server.xml,如下:

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

如果端口号修改为默认端口号80,则在浏览器地址栏不需要输入端口号。

2.5、配置虚拟目录

Tomcat中配置虚拟目录是必须的,因为所有的开发是在其他目录中完成的,当然,如果想要配置需要目录,则首先也有严格的要求,配置的虚拟目录必须有以下的目录结构:

WEB ROOT → 一般情况下虚拟目录要配置到此文件夹之中

WEB-INF

web.xml:配置文件,有格式要求

但是,此时不知道文件的格式是什么,那么可以直接从%CATALINA_HOME%\webapps\ROOT\WEB-INF目录下找到文件web.xml。

我们现在F盘创建以下的一个目录结构,然后把web.xml文件复制进去:

此时,还需要配置server.xml文件,在</Host>上面添加代码:

<Context path="/demo" docBase="F:\WEBdemo" />

</Host>

其中Context表示上下文,表示配置一个新的上下文;

path:表示浏览器中的输入路径,必须有“/”;

docBase:表示此路径对应着硬盘上的绝对路径。

此后,就可以直接通过:“http://localhost:8080/demo”找到硬盘上的F:\WEBdomo文件夹中的内容了。

因为Tomcat中默认将目录的列表功能关闭,所以配置完之后,还需要配置%CATALINA_HOME%\conf目录下的web.xml文件。但需要注意的是,在项目发布的时候,最好将列表功能取消掉,目的是为了安全。

配置web.xml文件,将listings下的false改为true:

    <servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

            <param-name>listings</param-name>

            <param-value>true</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

重启服务器,再次输入路径:

2.6、第一个程序

所有的JSP程序就是在HTML之中加入了java代码,我们在刚才创建的工作目录“F:\WEBdemo”下创建文件hello.jsp,编写如下代码:

hello.jsp

<html>

       <head>

              <title>HELLO WORLD</title>

       </head>

       <body>

              <%

                     out.print("hello world!!!");   // 向浏览器中输出

              %>

       </body>

</html>

运行程序,在浏览器中输入“http:/localhost:8080/demo”后,此时可以看到hello.jsp文件:

点击即可打开,我们也同时打开源码:

2.7、Tomcat的执行流程


第一次执行:

1、客户端通过电脑连接服务器,因为请求是动态的,所以所有的请求交给WEB容器中处理;

2、在容器中找到需要执行的*.jsp文件;

3、之后*.jsp文件通过转换变为*.java文件;

4、经过编译之后,形成*.class文件;

5、最终服务器需要执行形成*.class文件

第二次执行:

1、因为已经存在了“*.class”文件,所以不再需要转换和编译的过程

修改后执行:

1、源文件已经被修改过了,所以需要重新转换,重新编译

在Tomcat中存在一个work的文件夹,此文件夹中就保存了所有的临时文件。

但是,在这里out.println()的换行方法会被HTML忽略掉,所以要使用HTML语句中的<BR>来进行换行:

<html>

       <head>

              <title>HELLO WORLD</title>

       </head>

       <body>

              <%

                     out.println("1 line ");     // out.println()换行被忽略

                     out.print("2 line<BR>");

                     out.print("3 line");

              %>

 

       </body>

</html>

1 line 2 line
3 line

3、MyEclipse

3.1、建立WEB项目

MyEclipse本身会自动帮助开发者建立好WEB项目,之后此项目可以通过MyEclipse自动发布,或者像之前那样进行手工的部署(配置Context)。

建立hello.jsp文件:

3.2、运行WEB项目

运行WEB项目,可以像最早那样,通过虚拟目录的方式指定。

server.xml:

<Context path="/test" docBase="D:\eclipse\MyEclipse 10\ME_first\WebRoot" />

此种发布,称为手工发布。此种方式为推荐方式。

在MyEclipse中创建JSP项目时,会自动创建一个首页index.jsp,如果此文件存在,则在地址栏中输入http://localhost:8080/test/时,会直接跳到首页index.jsp的内容页面。可以将其删除以恢复至目录的页面,也可以直接输入决定路径打开jsp项目。

第二种是可以直接MyEclipse自带的功能,进行自动发布。如果想要进行自动发布,则首先应该在MyEclipse中配置好服务器。

以上表示在MyEclipse中可以使用Tomcat,但是如果要想让Tomcat在MyEclipse中可以直接启动则必须配置必须的JDK。

JDK → ADD:

注意此时选择的JRE_home路径只要选择到JDK的主目录下就行了。

为MyEclipse添加Tomcat服务器:

此时,项目直接部署到Tomcat之中,部署到了Tomcat的安装目录的webapps文件夹之中。所谓自动发布,就是直接将所有的WEB项目拷贝到webapps下,直接访问文件夹的名称即可,之后就可以直接在MyEclipse中启动服务器了。(http://localhost:8080/ME_first/)

其中,ME_first表示的是刚才建立的项目名。我们到%CATALINA_HOME%\webapps目录下发现名为ME_first的整个项目已经被复制过来了。

3.3、第一个交互程序

如果想要实现程序的交互,则肯定要依赖于表单,所以此时演示一个最简单的交互程序,用户输入什么内容,服务器显示什么内容。

input.html:

<FORM METHOD="post" ACTION="input.jsp">

输入信息:<INPUTTYPE="text"NAME="info">

<INPUT TYPE="submit" value="显示">

</FORM>

表单提交给input.jsp,input.jsp接收并显示内容。方法:request.getParameter(“参数名”),此方法返回的内容是String类型。

input.jsp:

<%

    String str = request.getParameter("info");   //接收表单参数

    out.println("<h1>"+str+"</h1>");

%>

点击“显示”,显示如下:

前面的表单输入哪些内容,后面的JSP程序就显示哪些内容。以上的程序就属于一个标准的交互式程序。

但是,必须注意的是,以上的所有程序必须在服务器开着,而且通过浏览器访问的时候才起作用。

当然,此时为了保证前台页面输入的内容不为空,也可以进行一些JavaScript判断,使用onSubmit事件,同时使用正则进行验证。

input.html:

<scriptlanguage="javaScript">

    function validate(f){

        if(!(/\w+/.test(f.info.value))){

            alert("输入的内容不能为空!");

            f.info.focus();

            return false;

        }

        return true;

    }

</script>

<FORM METHOD="POST" ACTION="input.jsp" onSubmit="return validate(this)">

输入信息:<INPUTTYPE="text"NAME="info">

<INPUT TYPE="submit" value="显示">

</FORM>

上面的实验不成功!暂不知道原因??

答:MyEclipse 10中高亮部分不能写成"return=validate(this)"而应该写成"validate(this)",这是10版本中的一个漏洞?

//或:windows→myeclipse→validation→javascript validator forJs files,把Bulid勾去掉

 

JavaScript程序就是在客户端执行,所有的页面都必须通过浏览器打开。

4、JBOSS部署

环境:jboss-4.2.3.GA

4.1、修改默认端口

路径:%JBOSS_HOME%\server\default\deploy\jboss-web.deployer\

注意,在配置JBOSS_HOME环境变量的时候,路径后面不要使用“;”,否则不能在地址栏中直接输入“%JBOSS_HOME%”。其他环境变量也是一样的道理。

修改里面的server.xml文件:

……

    <Connector port="9090" address="${jboss.bind.address}"   

         maxThreads="250" maxHttpHeaderSize="8192"

         emptySessionPath="true" protocol="HTTP/1.1"

         enableLookups="false" redirectPort="8443" acceptCount="100"

         connectionTimeout="20000" disableUploadTimeout="true" />
……

4.2、使用默认路径打开JSP页面

JBOSS和Tomcat一样,默认是没有打开目录功能。在不打开目录功能的情况下,也可以通过指定路径来打开JSP页面。

①    在“%JBOSS_HOME%\server\default\deploy\”目录下创建一个文件夹,文件夹的格式必须是:文件夹名 +.war。如:newDir.war。

②    在此文件夹下面创建*.JSP文件,如Time.jsp:

<%@ page language="java" contentType="text/html;charset=GBK"%>

<%@page import="java.util.*"%>

<%

       Date dnow = new Date();

       int dhours = dnow.getHours();

       int dminutes = dnow.getMinutes();

       int dseconds = dnow.getSeconds();

out.print("服务器时间:" + dhours + ":" + dminutes + ":" + dseconds);

%>

<SCRIPT LANGUAGE="JavaScript">

       var dnow = new Date();

       dhours = dnow.getHours();

       dminutes = dnow.getMinutes();

       dseconds = dnow.getSeconds();

       document.write("<br>浏览器时间:" + dhours + ":" + dminutes + ":" + dseconds);

</SCRIPT>

③    到浏览器中输入:http://localhost:9090/newDir/Time.jsp,结果如下:

注意,9090是我们刚才修改后的端口号,newDir是我们创建的文件夹,但是切记不要添加后缀“.war”!

4.3、配置虚拟目录

①    到路径“%JBOSS_HOME%/server/default/deploy/jboss-web.deployer/conf/”下修改文件web.xml,将listings下的false修改为true:

        <init-param>

            <param-name>listings</param-name>

            <param-value>true</param-value>

        </init-param>

②    创建目录,如:F:\WEBdemo,然后在其目录下再创建目录:WEB-INF,把%JBOSS_HOME%\server\default\deploy\jboss-web.deployer\ROOT.war\WEB-INF\目录下的web.xml文件复制到F:\WEBdemo\WEB-INF\目录下。

③    将要添加的目录写进下面文件中:

%JBOSS_HOME%/server/default/deploy/jboss-web.deployer/server.xml

<Context path="/app" docBase="f:\\WEBdemo\" debug="1" reloadable="true" override="true" crossContext="true"/>

       

 </Host>

注意上面的写法与Tomcat有不少差别,需要特别留意!到此,虚拟目录配置完成!

4.4、执行程序

通过以上的步骤后,我们已经把虚拟目录配置完毕,不要忘记需要重启JBOSS服务器。

在浏览器输入:http://localhost:9090/app/ ,结果如下:

之后点击相应文件名即可运行。

 

 

0 0
原创粉丝点击