使用Tomcat,无IDE工具手动部署Web程序

来源:互联网 发布:linux统计指定文件行数 编辑:程序博客网 时间:2024/05/19 04:53
 

在无IDE工具的情况下,编写,配置,管理Web 程序,包含以下方面:

1、  无IDE工具手动编写Web程序,组织目录结构,要对掌握Web目录结构。

2、  使用JDK的jar命令生成war包,在Tomcat中部署Web程序使用此包

3、  修改配置文件,包括项目的web.xml,Tomcat的配置文件,如修改端口号。

4、  使用Tomcal后台管理Web程序

5、  配置Web程序安全项。

 

 

一、手动编写Web程序

1、构建Web目录结构:

 

MyWeb目录为Web项目的根目录,一般为项目名字

META-INF存放项目描述信息

WEB-INF目录不对外公开,存放项目使用的资源

classes存放java的class文件

lib存放项目使用的.jar包

web.xml为项目的配置文件。

2、编写index.jsp文件。

       jsp文件中第一行应写入指令语句。

<%@ page import="java.util.Date" contentType="text/html;charset=utf-8"%>

<html>

<body>

       <%=new Date() %><br />

</body>

</html>

      

 

 

 

 

3、web.xml可以拷贝已有项目的文件,并做修改。

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5"

       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">

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

 

 

 

 

 

 

 

 


二、生成war包并在Tomcat中运行

1、使用JDK的jar首先确定系统环境变量正确。

       命令:

       打包:jar cvf MyWeb.war *.*

              要先进入MyWeb目录,完成后在META-INF中自动生成系统文件。

      

       查看包内容:jar tvf MyWeb.war

       解压缩:jar xvf MyWeb.war

       此命令还可以打ear 和 jar 包。

2、将生成的.war包拷贝到Tomcat的webapps目录中

3、然后在Tomcat的bin目录中运行shutdown.bat文件启动Tomcat,Tomcat自动在webapps目录中解压.war包,并加载项目。

Tomcat启动后提示信息:

http-8080表示在8080端口,使用http协议启动。

in 1422 ms表示启动时间,出现以上提示表示启动已成功。

注意:在Tomcat运行时,此命令提示符窗口不可关闭。

4、打开浏览器,输入http://localhost:8080/MyWeb/,看到正确结果则运行成功。

注:Tomcat 的目录结构和使用

Tomcat有很多版本:5,5.5,6等等,如apache-tomcat-5.5.25

解压apache-tomcat-5.5.25.zip后,在其目录中包含多个文件夹

bin:存放Tomcat程序,常用的有:启动Startup.bat,关闭Shutdown.bat,

       在Linux和UNIX下使用Startup.sh和Shutdown.sh。

conf:存放Tomcat配置文件。

webapps存放要运行的Web项目。

work:Tomcat运行时的工作空间,翻译JSP生成的.java文件和编译后的.class文件等等存放在此。

 

、修改端口号

Tomcat默认端口号为:8080,可以修改此端口号,如修改为80则在浏览器中无须输入端口号。

打开conf目录下的server.xml文件,在其中搜索8080(现用端口),

找到:<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->

<Connector port="8080" maxHttpHeaderSize="8192"

将8080修改为80

重新启动Tomcat(先运行shutdown.bat关闭,再运行Startup.bat启动),即将使用的端口号修改。

可能的错误:

表示端口已经被占用,如安装了IIS,关闭IIS中的服务,再重新启动Tomcat。

修改后再使用http://localhost:8080/MyWeb/则无法显示网页,将:8080去掉或改为:80即可正常访问。

 

四、使用Tomcal后台管理Web程序

在启动Tomcat服务后,在浏览器中输入:http://localhost/,即可进入Tomcat后台管理程序。

管理运行项目的有admin和Tomcat Manager两种,但在Tomcat 5.0后未安装admin,须要另外安装,所以只有Tomcat Manager一种:

点击链接进入

出现提示输入用户名和密码

点击确定进入,出错,表示还没有配置用户名和密码,或不正确

也可能不是以上提示

打开conf/ tomcat-users.xml,在<tomcat-users></tomcat-users>中输入用户名和密码,可复制错误提示的代码。

  <role rolename="manager"/>

  <user username="wyq" password="wyq" roles="manager"/>

表示:role为角色,用户名:wyq,密码:wyq,登录到manager,重新进入,输入用户名和密码,即可进入后台管理系统

Tomcat 5.5可能无法显示以上提示。

在后台中可以看到已经启动的Web程序,如MyWeb

1、可以对Web程序进行启动(Start),停止(Stop),重载(Reload),删除(Undeloy)的操作。如果在目录中手动删除一个项目,可能会无法完全删除,因为有许多自动生成的删除不完全。而使用此处提供的删除功能,可以彻底删除。

在运行的程序中可以看到Manager本身也是一个Web程序在Tomcat中运行

2、通过后台加载一个Web程序

点击“浏览…”,打开要运行项目的war包,点击Deploy就可以把Web程序加装载到Tomcat中。加载后在就可以看到加载的项目出现在正在运行的程序列表中。

 

五、配置Web程序安全项

方法一:web.xml文件中安全性的设置

       要是为某Web应用设置访问权限,或是为Web应用的某此资源设置权限。

第一步:

       在自己的Web应用的WEB-INF/web.xml配置文件的<web-app></web-app>标记中加入一段配置代码:

<!-- Define a Security Constraint on this Application

  安全约束

  web-resource-name为安全约束的名字,任意取名

  url-pattern为访问资源的权限,/*表示所有资源

  role-name表示角色(身份)名,在tomcat的conf/tomcat-users.xml文件中使用此角色名,并为其设置用户名和密码. 如<user username="wyq" password="wyq" roles="myrole"/>并且这个名字最好和下边的<security-role>中的<role-name>设置为相同-->

  <security-constraint>

    <web-resource-collection>

      <web-resource-name>MyJSP</web-resource-name>

         <url-pattern>/*</url-pattern>

    </web-resource-collection>

    <auth-constraint>

       <!-- NOTE:  This role is not present in the default users file -->

       <role-name>myrole</role-name>

    </auth-constraint>

  </security-constraint>

  <!-- Define the Login Configuration for this Application

  登录配置:

  auth-method为登录方式,有五种,BASIC为最基本,普通的一种。

  realm-name为登录框上显示的提示

  -->

  <login-config>

    <auth-method>BASIC</auth-method>

    <realm-name>MyWebApp</realm-name>

  </login-config>

 

  <!-- Security roles referenced by this web application -->

  <security-role>

    <description>

      The role that is required to log in to the Manager Application

    </description>

    <role-name>myrole</role-name>

  </security-role>

 

 

 

 

 

 

 

 

 

 

 


关于以上代码的解释:

1、<login-config></login-config>中的内容

       auth-method为登录方式,有五种,BASIC为最基本,普通的一种。

      realm-name为登录框上显示的提示

2、<security-constraint>中的内容

web-resource-name:为安全约束的名字,任意取名。

      url-pattern为访问资源的权限,/*表示所有资源

      role-name表示角色(身份)名,在tomcat的conf/tomcat-users.xml文件中使用此角色名,并为其设置用户名和密码。 如<user username="wyq" password="wyq" roles="myrole"/>,

并且这个名字最好和下边的<security-role>中的<role-name>设置为相同-->。

 

在自己的Web应用中设置了以上配置,只是说明访问这个Web应用需要身份认证,但还没有用户名和密码,所以无法登录。要设置用户名和密码须要在Tomcat中配置,配置方式和前边讲的相同。

在conf/ tomcat-users.xml文件中增加<user username="wyq" password="wyq" roles="myrole"/>其中roles为上边指定的角色(身份)。

注意:如果在conf/ tomcat-users.xml中设置了两行用户名相同的用户,在Tomcat重新启动后,将会只保留最后一行。所以如果要为相同的用户名指定不同的角色,可以把角色写在同一个roles中,如:<user username="wyq" password="wyq" roles="manager,myrole"/>。

方法二:使用Form表单验证

在方法一中,访问受保护的资源将会弹出一个对话框,要求输入用户名和密码(conf/ tomcat-users.xml中配置)。

使用Form表单验证需要做的更改本项目WEB-INF/web.xml文件,Tomcat中的conf/tomcat-users.xml文件和增加两个页面。

1、WEB-INF/web.xml文件中的修改,在<web-app></web-app>中添加配置

<security-constraint> <、security-constraint> 安全配置,

<url-pattern>/*</url-pattern>在其中设定要保护的资源

<role-name>MyRole</role-name>设定访问资源使用的角色名。

       <login-config></login-config>登录配置,

       <auth-method>FORM</auth-method>在其中设定验证方法为Form。

       <form-login-page>/login.jsp</form-login-page>登录页面

     <form-error-page>/loginError.jsp</form-error-page>登录失败的页面

<security-constraint>

    <web-resource-collection>

      <web-resource-name>MyResources</web-resource-name>

      <url-pattern>/*</url-pattern>

    </web-resource-collection>

    <auth-constraint>

       <!-- NOTE:  This role is not present in the default users file -->

       <role-name>MyRole</role-name>

    </auth-constraint>

  </security-constraint>

 

  <!-- Define the Login Configuration for this Application -->

  <login-config>

    <auth-method>FORM</auth-method>

     <form-login-config>

            <form-login-page>/login.jsp</form-login-page>

            <form-error-page>/loginError.jsp</form-error-page>

     </form-login-config>

  </login-config>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


2、在conf/ tomcat-users.xml中增加使用上边定义的角色访问资源的用户名和密码。

<user username="wyq" password="wyq" roles="MyRole"/>

 

 

 


3、两个页面login.jsp和loginError.jsp页面(扩展名为html也可以),login.jsp中有登录表单,在访问受保护的页面时首先执行。loginError.jsp为登录失败时执行。

       在login.jsp中设计一个表单,表单提交目的页面(action)固定,用户名和密码标记使用的用户名固定。

<body>

  <!-- j_security_check,j_username,j_password不能改成别的名字,大小写区分 -->

    <form method="POST" action="j_security_check" >

           User Name:<input type="text" name="j_username"><br/>

           Password:  <input type="password" name="j_password"><br/>

           <input type="submit" value="Login!!"> </form>

  </body>

 

 

 

 

 

 


       在loginError.jsp中写入当登录失败后显示的提示。


 

六、Tomcat 的启动设置

Tomcat无法启动可能是环境变量未设置,包括JAVA_HOME和CATALINA_HOME。

错误提示:

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

At least one of these environment variable is needed to run this program

 

The JAVA_HOME environment variable is not defined correctly

This environment variable is needed to run this program

NB: JAVA_HOME should point to a JDK not a JRE

 

The CATALINA_HOME environment variable is not defined co

This environment variable is needed to run this program

以上提示表示环境变量设置不正确,重新设置环境变量,并且应该使用命令方式设置,才能保证正确。

命令方式:

查看环境变量内容:set JAVA_HOME      

设置环境变量:

set JAVA_HOME=D:\Eclipse\JDK      

set CATALINA_HOME=D:\Eclipse\apache-tomcat-6.0.14

 

注意:

JAVA_HOME设置为JDK安装根目录,无须设置到bin目录

CATALINA_HOME设置为tomcat根目录。

也可以使用对话框设置,但不要设置成.;D:\Eclipse\JDK;

 

 

七:使用Tomcat设置虚拟目录

为什么需要设置虚拟目录?

部署JavaWeb应用,只需要把你WAR包或目录结构拷贝到%Tomcat_Home%/webapps下就可以了。

但随着网站的增长,你需要把你的JavaWeb应用放置到Tomcat外部,这时候就需要设置Tomcat虚拟目录,

让你的应用脱离Tomcat的安装目录。

设置方法

1.找到%Tomcat_Home%/conf/server.xml文件。

2.按ctrl+F查找<Host

3.在<Host></Host>之间加入:  

       <Context path="/lxt008" docBase="d:\TomcatFormSecurityDemo" reloadable="true" debug="0"></Context>     

       path: Context URL,通过http://localhost:8080/lxt008访问该应用。 

       docBase: 应用的物理绝对路径,默认是%Tomcat_Home%/webapps

 

       reloadable="true" :修改JSP/Servlet无须重启Tomcat,Tomcat可自动重载。

       通常开发时设为真,但较消耗资源,所以应用时设置为假

       debug="0" : 设置输出的调试信息级别。起小输出信息起多,通常开发时小此,应用时大些

4.把符合JavaWeb规范的应用TomcatFormSecurityDemo拷贝到d盘下。

5.输入http://localhost:8080/lxt008测试!
原创粉丝点击