通过代码示例学习Java安全技术(第7部分:Tomcat服务器对J2EE安全规范的支持)

通过代码示例学习Java安全技术(第7部分:Tomcat服务器对J2EE安全规范的支持)
通过代码示例学习Java安全技术(第7部分:Tomcat服务器对J2EE安全规范的支持)

前言

随着网络应用的不断深入,特别是电子商务应用的普及,对网络应用的安全提出了许多新的和更高的要求。在Java及J2EE应用系统平台环境中,提供了多层次和多种形式的安全技术的支持,从而可以在一定的程度上保证应用系统的安全性。比如,将Web应用中的客户端和Web服务器端之间的通讯连接方式从Http方式改变为Https方式,则是对Web 应用在协议层次的安全保护技术——Https是在协议层对Http的再次封装,加入了SSL/TLS等相关的技术。

作者根据自身多年的软件开发实践和经验总结,结合多年的IT职业培训的教学和高校软件学院一线的教学工作体验,在本系列文档中通过具体的程序代码示例为读者介绍Java 及J2EE应用系统平台环境中的安全相关的应用技术。主要的目的是希望能够将作者在项目开发中所涉及的安全应用技术进行总结和提炼,以成功的经验或者失败的教训为读者减少软件开发中由于安全技术的欠缺而导致应用系统在使用中所带来的各种风险,同时也为高校师生总结出Java及J2EE应用系统平台环境中的相关安全技术,增强和培养软件专业的学生对应用系统安全技术的关注度和提高对相关技术的应用能力。

在J2EE的技术规范中,为J2EE应用系统提供了两种不同形式的安全控制规范:说明性的安全性和可编程的安全性。本示例文档将应用“说明性的安全性”实现对Web应用的安全进行定义。

所谓的说明性的安全性,也就是通过安全结构描述(一般是在XML配置文件中定义)的方式来代表应用程序的安全需求。安全结构一般包括安全角色、访问控制和验证要求等方面的信息。在J2EE平台中的Web应用程序中的部署描述符文件(web.xml)充当了说明性安全的主要定义工具。因为部署描述符web.xml文件是Web应用系统组件的开发者和应用程序部署者或应用程序组装者之间的配置定义工具。

本文档主要涉及J2EE安全性相关知识,在Tomcat服务器中如何实现Http可配置化验证技术及应用示例,包括Http基本身份验证示例、自定义表单身份验证的示例和Http摘要身份验证的示例等方面的内容。通过这些应用示例,为读者介绍在Web应用系统的开发中如何实现将应用系统中的身份验证逻辑处理程序从Web应用中分离并由服务器提供实现。

杨教授大学堂精心创作有系列化的优秀程序员职业提升必读技术资料,这些资料将系统地从软件设计和开发实现的“设计思想”、“管理策略”、“技术实现”和“经验方法”等方面与读者进行充分的交流,涉及作者对软件开发设计思想和原则、课程设计、项目实训、软件实现技术等方面的学习心得体会和应用技巧、经验总结。

本文目录

1.1Tomcat中实现Http可配置化验证 (3)

1.1.1在web.xml文件中与身份验证相关的标签 (3)

1.1.2在Tomcat中实现基本的Http身份验证示例 (10)

1.2在Tomcat中实现自定义表单身份验证 (18)

1.2.1基于自定义表单的验证技术及应用 (18)

1.2.2在Tomcat中实现自定义表单身份验证的示例 (20)

1.2.3对Struts框架中的Action程序进行授权 (26)

1.3在Tomcat中实现摘要身份验证 (27)

1.3.1Http 摘要身份验证 (27)

1.3.2在Tomcat中实现摘要身份验证的示例 (28)

1.1Tomcat中实现Http可配置化验证

1.1.1在web.xml文件中与身份验证相关的标签

1、web.xml文件的作用

web.xml系统配置文件是按照J2EE Servlet规范定义的Web应用发布描述符文件,是完全独立于Tomcat Servlet容器的Web应用本身的配置信息文件。主要是用来初始化Web应用中的各种配置信息:比如Welcome页面、Servlet、Servlet-Mapping、Filter、Listener、启动加载级别等方面的配置信息。

当然,如果在Web应用中没有涉及这些配置信息时,可以不用web.xml文件。因此,对于每个Web 项目来说,web.xml文件并不是必须要提供的。如下为某个Web项目中的web.xml文件的存储位置的示图。

在J2EE的Web应用中,Web容器(Servlet容器)支持Web应用程序内置的安全机制——身份认证和访问授权。

2、J2EE安全性相关知识介绍

在J2EE的技术规范中,为J2EE应用系统提供了两种不同形式的安全控制规范:说明性的安全性和可编程的安全性。本示例文档将应用“说明性的安全性”实现对Web应用的安全进行定义。

(1)说明性的安全性

通过安全结构描述的方式来代表应用程序的安全需求,安全结构一般包括安全角色,访问控制和验证要求等。在J2EE平台中的Web应用程序中的部署描述符文件(web.xml)充当了说明性安全的主要定义工具。

因此,部署描述符web.xml文件是Web应用系统组件的开发者和应用程序部署者或应用程序组装者

之间的配置定义工具。应用程序的开发者用它来表示应用中的安全需求,应用程序部署者或应用程序组装者将安全角色与部署环境中的用户和组映射起来。

在Web应用程序运行时,容器(Web容器和EJB容器)从部署描述符web.xml文件中提取出相应的安全策略,然后容器(Web容器和EJB容器)根据安全策略执行安全验证。因此,应用说明性的安全性验证技术,不需要开发人员编写任何的安全相关的程序代码,一切都是通过配置部署描述符web.xml 文件定义。

(2)可编程的安全性

可编程的安全性是在说明性的安全技术的基础上,使安全敏感的应用可以通过调用被容器(Web容器和EJB容器)提供的API来对安全作出决断。这在说明性的安全性不足以满足企业的安全模型的情况是非常有用的。比如J2EE在Servlet的HttpServletRequest 接口中提供有两个如下的方法:isUserInRole (HttpServletRequest):判断用户角色

getUserPrincipal (HttpServletRequest):获得用户认证信息principal

3、Web容器提供三种类型的认证机制

(1)可配置化的安全验证技术

这些认证机制都允许开发人员直接在Web应用程序中的web.xml配置文件中进行相关的配置就可以实现Web应用的登录验证方面的功能,从而减少了对系统登录功能实现的重复编程开发,而且灵活性比较高——可以根据应用的需要随时改变相关的配置项目。

(2)定义受保护的资源和授权角色

开发人员可以把Web应用中受保护的各种资源都定义在web.xml配置文件的资源集的定义标签(如)中,Web用户只有在取得了合法的身份验证之后才可以访问这些受保护的系统资源——Web容器可以保护整个Web应用中的资源、也可以是Web应用中的某个子文件夹内的资源、甚至于特定的一类文件资源等。所有的这些资源,都取决于开发人员对待保护的系统资源集的定义。(3)Web容器提供三种类型的认证机制

1)基本认证(BASIC)

2)基于表单的认证(Form)

3)摘要认证(DIGEST)

(4)为什么要应用JAAS的Java验证和授权服务

使用JAAS(Java Authentication Authorization Service,Java验证和授权服务)验证的好处是,身份验证的逻辑处理程序从Web页面中分离,对页面的限制访问是通过在/WEB-INF/web.xml文件中的配置标签定义和指定,无需自行编程相关的身份验证的处理程序。

4、Http基本认证(BASIC)方式

(1)基本认证方式是HTTP1.0标准中所提出的认证方法

它被认为是最不安全的认证。因为它不仅没有提供对用户提交的身份信息在传递到服务器端程序的加密保护的相关措施,而且身份验证的页面也不能按照用户的要求进行定制以满足用户的特殊应用要求。

(2)配置定义示例

如下为定义基本认证方式的标签——由其中的标签决定:

BASIC

(3)身份认证界面

当用户试图访问受保护的系统资源时,浏览器将会弹出如下示图所示的对话框,用户在其中的“用户名”和“密码”输入框中输入相关的身份信息;如果身份验证通过,则将进入受保护的资源页面,否则将继续进行身份验证。

(4)主要的缺点

基本认证方式的主要缺点是用户名和密码等信息都是用Base64 编码转换之后传输到Web容器的——而Base64编码本身非常容易被解码,所以经过base64编码的密码实际上是明文发送的。可以被拦截和获得用户提交的身份信息;此外,客户端浏览器也还无法认证Web服务器的合法性,因此客户端用户很容易被钓鱼到一个非法的Web服务器从而输入了身份信息。因此,存在一定的安全隐患。

5、Http基于表单的认证(Form)

(1)基于表单的认证其实也就是自定义表单的认证

开发人员可以指定用户身份验证登录时的验证表单所在页面和登录失败时所跳转的错误信息显示

页面。因为在Htpp基本认证方式中所弹出的身份验证的界面是浏览器内带的登录表单,为了统一登录界面和Web应用中的其它页面保持一致的界面风格,可以应用Http自定义表单的认证。

(2)配置定义示例

如下的标签示例为基于表单认证的配置定义:

FORM

/loginSystem.jsp

/showErrorInfo.jsp

其中的标签定义正常的身份验证时的登录表单所在的页面URI地址(本示例为在Web应用根目录下的loginSystem.jsp页面),而标签定义在身份验证失败后,需要跳转的显示错误信息的页面URI地址(本示例为在Web应用根目录下的showErrorInfo.jsp页面)。

6、Http摘要认证(DIGEST)

(1)它是HTTP1.1提出的对前面的基本认证的替代方法

相比于前面的基本(BASIC)认证方式和基于表单的认证(Form),它是相对比较安全的认证方式。因为在认证时将请求的数据要通过MD5的加密方式提取出明文密码的信息摘要,而其它两种身份验证下的用户账号和密码等请求信息都是以明文的形式在网络上传输。

(2)配置定义示例

如下的标签示例为DIGEST认证的配置定义:

DIGEST

(3)身份认证界面

当访问者试图访问受保护的系统资源时,浏览器将会弹出如下示图所示的身份验证的表单(其实为对话框)。

7、为什么要应用Web容器所提供的身份认证机制

(1)什么是身份认证

身份认证是在计算机网络信息通讯过程中确认信息的发送方和信息的接收方双方身份的过程,以正确地区分信息的发送方和信息的接收方。

身份认证在目前的Web应用系统环境中可分为用户(客户端系统的使用者)与服务器主机间的认证和服务器主机与主机之间(分布式网络应用环境)的认证两种主要的形式。

(2)什么是访问控制

访问控制可以确保安全角色只能访问已授予它安全权限的授权对象。当然,在企业级的应用系统中,最为普遍采用的访问控制机制是基于角色的访问控制(Role Based Access Control,简称RBAC)。

读者需要注意的是,J2EE系统平台中的角色机制与标准的RBAC是有很大的差别,同时自身也存在一定的缺陷。比如,J2EE的角色仅仅是一组权限声明的集合,并且不具有继承关系、约束关系,也不能在运行时对角色和权限进行动态的管理——因为容器管理的安全中的用户角色是在Web应用程序部署描述符web.xml文件中预先定义并静态地映射到在目标J2EE 容器中所定义的安全角色。

(3)为什么要应用身份认证的管理机制

在IT业中的一切信息(当然,也包括用户的身份信息)都是用一组特定的数据表示的,而计算机目前只能识别出用户的数字身份而无法准确地识别出用户的实际物理、社会身份。此外,在企业应用环境中的某些资源往往要求只允许某些人访问,有些资源甚至是机密的或安全敏感的。

因此,在IT应用中如何保证以数字身份进行操作的IT设备使用者就是这个数字身份所定义的合法拥有者或者使用者,从而保证操作者的物理身份与对应的数字身份是相互对应的?

身份认证机制及相关的实现技术其实也就是解决这类问题的,从而避免不良后果的产生;对企业应用系统中的各种Web资源进行访问控制也是十分必要的。

8、Web应用中的登录是最常见的身份验证形式

(1)应用系统一般都提供有身份登录验证的程序界面

在许多Web应用系统中,特别是企业应用系统中都提供有登录的操作界面——可以为登录的Web

表单页面,也可以为应用程序的对话框。当应用系统的使用者试图访问敏感的系统资源或者使用相关的功能时,应用系统一般都会弹出身份登录验证的程序界面。

(2)重复地开发实现身份登录验证的界面及相关程序

为此,软件系统的开发实现人员也就必须要在每个应用系统中都要重复地开发实现登录功能模块。这在一定的程度上会导致开发工作的重复性,能否由相关的系统平台统一实现登录界面和身份信息的验证检查?

J2EE Web容器中所提供的身份认证机制其实就是帮助J2EE系统平台下的开发人员解决此类问题,减少相关的开发人员的重复工作;另外,将应用系统中的所有访问控制的决策都委托给J2EE容器,从而将应用系统中的业务处理逻辑与安全定义和技术实现进行分离。

9、web.xml文件中的标签

(1)标签的主要作用

它定义基于Web容器的身份验证方式,如果为表单的验证方式,则还可以定义登录表单所在页面的URI、登录失败时的错误信息显示的页面等方面的信息。

(2)标签中的各个子标签

(3)标签的配置示例

下面配置示例中的标签指示身份验证的方式为自定义Web表单的身份验证——开发人员可以应用Web应用系统中的登录页面代替Web容器指示浏览器所弹出的标准对话框类型的登录界面,从而保证身份验证的视图界面与Web应用中的其它功能界面保持一致性。

FORM

/xxxx.jsp

/yyyy.jsp

其中的标签主要定义在采用自定义表单身份验证时的登录页面的参数,而其中的标签定义正常的登录页面,标签则定义在登录身份验证失败后的错误信息显示的页面。

10、web.xml文件中的标签

(1)标签主要的作用

它为“安全约束”方面的定义,主要定义Web应用系统中的那些系统资源需要被保护和可访问的用户类型等方面的信息,Web容器将使用在web.xml配置文件中定义的安全角色(由标签定义)对Web应用程序中的Web资源的访问进行授权和验证。

(2)标签内的各个子标签

(3)标签的应用示例

下面的配置示例由标签定义一个受保护资源的名称,该名称可以自定义(本示例为webApp Resource Area);各个受保护的资源都集合在标签所代表的受约束的Web资源集中定义。

webApp Resource Area

/*

users

而其中的标签定义受保护的资源所在的URI访问模式,本示例为整个Web应用所在的范围;而标签指定哪些用户角色可以访问由标签所指定的URI,本示例中的标签则定义能够有权利访问受保护的资源的用户角色为users——当然,可以通过提供多个标签设置一个或多个角色名。如下的代码示例是设置两种不同的用户角色都可以访问受保护的系统资源。

users

admin

1.1.2在Tomcat中实现基本的Http身份验证示例

1、在tomcat-users.xml文件中定义用户和角色

(1)tomcat-users.xml文件所在的目录

可以在C:\jakarta-tomcat-5.0.19\conf(为本示例的Tomcat服务器的相关目录)下的tomcat-users.xml 文件中添加Web应用相关的角色和用户账号。如下示图为tomcat-users.xml文件所在的目录的局部截图。

(2)tomcat-users.xml文件的主要作用

Tomcat采用基于角色的访问控制模型管理用户对系统的使用,安全性比较高,其角色和对应用户都保存在tomcat-users.xml中。在tomcat-users.xml文件中所定义的内容是不依赖于任何一个Web应用程序的,可以在任何一个Web程序中都可以使用在tomcat-users.xml文件中所定义的信息——因此,其中的信息是全局配置信息。

在tomcat-users.xml文件中一般定义用户的角色类型、某个角色中所包含的各个用户的身份信息(账号和密码)。

(3)在tomcat-users.xml文件中可以同时添加多类和多个用户

在tomcat-users.xml文件开头声明了XML的版本和编码方式,而其中的之间描述了系统中的用户角色(所谓角色就是一组特权)和某个具体角色的用户账号和密码等信息——比如,其中的表示建立了一个名字叫tomcat的用户角色;而表示建立了一个用户,名字为tomcat,密码为tomcat,拥有的用户角色为tomcat所拥有的权限。

当然,一个用户也可以拥有多个不同角色的权限,如其中的表明用户both拥有角色tomcat和role1两者的权限。

tomcat-users.xml文件具有扩充性,开发人员可以在其中根据应用的需要增加新的角色和用户账号等身份信息。

在本示例中通过增加如下的新的配置标签示例以定义角色名称为users,其中包含有两个用户——yang和zhang,以及这些账号所对应的密码。

(4)什么是角色和为什么要应用角色

角色一方面代表一系列用户,另外一方面也可以代表一系列的权限。因此,角色是用户和权限的结合体。引入角色的概念主要是为了分离用户和访问权限的直接联系。

因为用户与访问权限的直接组合可能是短暂的,而角色则可以相对稳定。用户的变化只涉及到角色而无需考虑权限。而权限的变化只涉及到角色,也无需考虑用户或用户组。

2、然后在Web应用的web.xml文件中定义被保护的资源并对该资源进行访问授权

(1)定义被保护的资源URI

如下标签中的/BasicVerify/*标签定义被保护的资源的URI地址字符串的访问模式——本示例为Web应用中的根目录下的BasicVerify子目录。

protected Resource

/BasicVerify/*

users

(2)对该资源进行授权

上面的示例标签中的users标签定义对目标资源的授权角色——本示例为users角色的用户有权利访问相关的受保护资源。

3、在Web应用的web.xml文件中定义验证的方式

主要是要决定身份验证的方式——基本验证还是表单验证等,如下的配置定义示例选择基本验证方式。

BASIC

Default

4、在Web应用的web.xml文件中定义安全角色

this is a user

users

其中的标签应该要与在tomcat-users.xml文件中所定义的标签中的rolename属性值保持一致性,表示需要验证的用户安全角色。

5、完整的配置定义标签示例

"https://www.360docs.net/doc/269243307.html,/dtd/web-app_2_3.dtd">

…..

protected Resource

/BasicVerify/*

users

BASIC

Default

this is a user

users

…..

6、Tomcat提供Realm支持

(1)什么是Realm(安全域)

Tomcat服务器使用Realm使某些特定的用户组具有访问某些特定的Web应用的权限,而没有权限的用户不能访问这个应用。Realm类似于Unix操作系统中的Group(组)——在Unix操作系统中,一个Group对应着操作系统中的一定资源,某个Group不能访问不属于它的系统资源。

安全域(Realm)是Tomcat服务器用来保护Web应用中的相关敏感资源的一种机制。开发人员在安全域中可以配置安全验证方面的信息——即用户信息(包括用户名和口令)以及用户和角色的映射关系。在Tomcat服务器中的org.apache.catalina.Realm接口中声明了把一组用户名、口令及所关联的角色集成到Tomcat中的方法,为部署在Tomcat服务器中的Web应用程序提供安全性的技术实现的支持。(2)Tomcat提供了如下不同Realm对访问某个Web应用程序的用户进行相应的验证1)JDBCRealm(JDBC域)

JDBCRealm通过JDBC驱动程序访问存放在关系型数据库中的安全认证信息,因此它是将用户的身份信息存放在数据库表中,并通过JDBC API从数据库表中获得用户身份信息并进行身份验证。

JDBC域使得安全配置非常灵活。当修改了数据库中的安全认证信息后,不必重启Tomcat服务器——因为数据库系统和Tomcat服务器两者是相互独立的。

当用户第一次访问受保护的资源时,Tomcat将调用Reaml的authenticate()方法,该方法从数据库中读取最新的安全认证的身份信息。该用户通过认证之后,在用户访问Web资源期间,用户的各种验证信息被保存在缓存中。

2)DataSourceRealm(数据库连接池域)

DataSourceRealm域和JDBCRealm域的两者的不同是访问数据库的方式不一样:DataSourceRealm 通过Tomcat服务器容器所提供的JNDI类型的DataSource(数据库连接池)访问数据库,而JDBCRealm 则是通过JDBC驱动程序操作访问数据库。

DataSourceRealm采用数据库连结池机制,把可用的数据库连结保存在缓存中,避免每次访问数据库都建立数据库连结,这样可以提高访问数据库的效率。

3)JNDIRealm(JNDI Directory 域)

将用户信息存在基于LDAP等目录服务的服务器里,通过JNDI技术从LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)服务器中获取用户的身份信息并进行验证。

4)MemoryRealm(内存域)

将用户信息存在一个XML配置文件中,对用户进行身份验证时,将会从相应的XML配置文件(默认情况下,该XML文件为Tomcat安装目录的conf/tomcat_users.xml文件)中提取用户信息。内存域是由org.apache.catalina.realm.MemoryRealm类来实现的,在Web应用初始化阶段,Tomcat服务器从XML 文件中读取安全认证信息,并把它们以一组对象的形式存放在内存中。

但如果修改身份信息的XML文件后,则需要重新启动Tomcat服务器。

5)JAASRealm(JAAS)

通过JAAS(Java Authentication Authorization Service,Java验证和授权API)的安全授权API,实现自己的安全认证机制。开发人员可以通过实现以下的两个接口:javax.security.auth.spi.LoginModule 和javax.security.Principal从而实现自己的安全机制。

(3)本示例应用Default定义

Default的定义表示使用缺省的安全域,也就是MemoryRealm。

7、测试本配置示例的执行效果

(1)试图访问受保护的系统资源

重新启动Tomcat服务器,并在浏览器中直接输入在Web应用系统中所保护的资源所在的目录的请求URL地址:http://127.0.0.1:8080/WebMis/BasicV erify/,将出现如下的登录页。

(2)身份验证成功后将可以访问受保护的系统资源

在弹出的登陆身份验证的表单中输入用户名称:yang(请见前面的tomcat-users.xml文件的设置的各个用户的账号),密码:12345678后将出现如下的信息页面——也就是能够正常地看到和访问受保护的系统资源。

而如果用户名称或者密码出现错误而导致身份验证失败时,浏览器将强制要求用户再次输入身份信息并且只有在登录成功后,访问者才能访问到被保护的目标资源,否则将一直处在系统登录的状态。

8、了解Http基本验证方式的请求响应的过程

Http认证采用“质询—响应(Challenge-Response)”的机制,其中的“质询”是Web服务器端对客户端的质询,即要求客户端程序发送身份认证相关的信息;而所谓的“响应”是客户端程序对Web服务器端程序的“质询”的响应,即发送带有认证信息的Http请求。

在各种Http认证方式中的客户端程序(如Web浏览器)第一次请求一个URI资源时,并不知道该资源是否需要进行身份认证,因此总是不带认证信息的发送请求,这时的Web服务器端程序就会找不到相关的认证信息,从而导致此次的认证失败,于是向客户端程序发出一个“质询”(给客户端发送一个Http响应,其状态码为401(Unauthorized),并且包含消息头WWW-Authenticate)。

(1)客户端浏览器请求某个受保护的系统资源后,Web服务器接收到该请求的URL地址后会发送一个401(未授权)的Http响应信息,在响应信息中附带有Realm信息表示此请求的目标资源是要使用Basic 认证——要求客户端提供用户名和密码进行身份认证。

(2)客户端浏览器接收到这个401的响应信息后,会按照协议的要求弹出一个登录的对话框——也就是前面的登录表单。强制要求用户输入用户名和密码等信息。并在用户点击“确定”按钮后提交用户名、密码到Web服务器——但会将输入的用户名密码用Base64进行编码转换后,采用非加密的明文方式传送给服务器。

提交的方式是在Http的请求头中加入:WWW-Authorization:Basic XXXXXXX。其中的Basic后面的信息是用户名、密码的BASE64的编码——也就是客户端浏览器收到“质询”后,需要给Web服务器端程序返回一个“响应”。为此,需要重新发送一个新的Http请求。这个新的Http请求与前一个Http 请求的差别在于多了一个Authorization消息头。

(3)如果认证成功,则返回相应的受保护的系统资源并允许访问者进行操作。而如果认证失败,则仍返回401状态,要求重新进行认证——有些浏览器只允许三次身份验证过程,如果三次身份验证都不成功,则显示出相关的错误信息而不再进行身份验证。但有些浏览器则一直停留在身份验证的界面中。9、Http基本验证方式请求响应的特点

(1)由于Http协议是无状态的,同一个客户端对同一个realm内的受保护的系统资源的每一次访问都会被要求进行身份认证。

(2)客户端浏览器通常会缓存用户名和密码,并和authentication realm一起保存。所以,一般不需要操作者重新输入用户名和密码——但其实内部是再次提交身份信息并进行身份验证的检查过程。

(3)由于用户的个人身份信息是以非加密的明文方式传输,虽然经过Base64的编码转换(因为Base64编码仅仅是编码,而不是加密)成了不易被人直接识别的字符串,但是仍然无法防止用户名密码被恶意盗用的安全风险。

10、Http基本验证方式的应用场合

在Http基本验证方式的通讯过程中,如果能够保证信息的数据包在中间环节的传输中不会被“截取”和“篡改”,例如Web应用系统是处于内部局域网或者底层协议是安全的(如使用SSL或其它一些安全机制,为验证过程提供数据加密、服务器端认证、信息真实性等方面的安全保证),完全可以弥补Http 基本验证方式在安全性方面的不足。

因此,Http基本验证方式可以广泛地应用在企业内部的各种管理系统中,如后台系统管理员的身份验证。

1.2在Tomcat中实现自定义表单身份验证

1.2.1基于自定义表单的验证技术及应用

1、基于自定义表单的身份验证

(1)基于From(自定义表单)的安全认证可以通过Tomcat 服务器对由开发人员所提供的Web 表单中所提供的身份验证的请求数据进行验证,基于自定义表单的身份验证可以使系统开发者自定义用户登录的页面和错误信息显示页面。

这也是与前面的基本身份验证方式的最大差别,其它的处理过程都基本相同,从而可以改善用户身份验证的视图界面,避免采用“千篇一律”的登录表单。如下示图为在某个Web应用系统中采用开发人员所提供的登录表单替换为由浏览器所弹出的“标准对话框”形式的登录表单。

(2)基于自定义表单的身份验证和基本身份验证之间的差别

这种验证方法与基本HTTP的验证方法差别不仅体现在登录表单可以自定义,也还体现在可以根据开发人员的要求制定登陆出错的目标页面。如下示图为在某个Web应用系统中采用开发人员所提供的登录失败时弹出错误信息提示页面,并在页面中显示出相关的错误信息——使得访问者能够明确为什么身份验证没有通过,而避免一直在登录中。

2、基于自定义表单的身份验证的实现原理

(1)J2EE Web容器通过拦截并检查用户的访问请求

检查正在访问的用户身份是否已在Web应用系统中已经创建好login session(登录会话)中保存。

(2)如果没有,则将用户的请求转向到身份认证服务的登录页面——该页面由开发人员在web.xml配置文件中配置定义,Web容器动态加载该页面从而使得用户进行身份登录验证。

(3)最后将用户的登录提交的请求数据传送给J2EEWeb容器

3、基于自定义表单的身份验证也仍然存在安全隐患

在J2EE Web容器的基于自定义表单的身份验证的规范中,并没有提供对用户所提交的身份信息进行加密转换保护的要求,浏览器仍然是以纯文本明文的方式发送到J2EE Web容器。因此,信息很容易被拦截和监听——存在一定的安全隐患。

4、在Tomcat中实现基于自定义表单的安全验证的过程

(1)首先定义用户和角色

在Tomcat中,用户、用户组和角色都是在XML配置文件(C:\jakarta-tomcat-5.0.19\conf\tomcat-users.xml)中指定的。

(2)设计登录页面表单

对该登录页面的表单有一定的要求——只需要提供一个登陆页面,包含一个名为j_security_check 的Form表单,一个名为j_username的TextBox(文本输入框)和一个名为j_password的PasswordBox (密码输入框)。示例

表单的内容如下:

注意在表单中的用户名对应的文本输入框必须要命名为“j_username”,而密码对应的密码文本输入框必须要命名为“j_password”,表单的aciton属性值必须要设置为“j_security_check”。

(3)最后在web.xml中进行定义

在/WEB-INF/web.xml中配置即可使用Tomcat默认的JAAS身份验证。

1.2.2在Tomcat中实现自定义表单身份验证的示例

1、编写登录页面和错误处理页面

请见某个Web应用NetBook中的\BookAdminManage文件夹中的程序中的页面loginIndex.htm和loginError.jsp页面。如下为这些页面所在的目录示图:

Tomcat服务器性能调优几个方面

Tomcat性能调优几个方面 一、操作系统调优 对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。。 【适用场景】任何项目。 二、Java虚拟机调优 应该选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JDK1.3性能提高了近10%-20%,JDK1.5比JDK1.4性能提高25%-75%。因此对性能要求较高的情况推荐使用 JDK1.6。 【适用场景】任何项目。 三、Apache集成Tomcat Web服务器专门处理HTTP请求,应用服务器是通过很多协议为应用提供商业逻辑。虽然Tomcat也可以作web服务器,但其处理静态html的速度比不上Apache,且其作为web服务器的功能远不如Apache,因此把Apache和Tomcat集成起来,将html和Jsp的功能部分进行明确分工,让Tomcat只处理Jsp部分,其他的由Apache,IIS等web服务器去处理,由此大大提高Tomcat的运行效率。 如果一个项目中大量使用了静态页面、大量的图片等,并有有较大的访问量,推荐使用Apache集成Tomcat的方式来提高系统的整体性能。 Apache和Tomcat的整合有三种方式,分别是JK、http_proxy和ajp_proxy.其中JK方式是最常见的方式,JK本身有两个版本分别是1和2,目前1最新版本是1.2.8,而版本2早已经废弃了。http_proxy是利用Apache自带的mod_proxy 模块使用代理技术来连接Tomcat。Ajp_proxy连接方式其实跟http_proxy方式一样,都是由mod_proxy所提供的功能。只需要把配置中的http://换成ajp://,同时连接的是Tomcat的AJP Connector所在的端口。 相对于JK的连接方式,后两种在配置上比较简单的,灵活性方面也一点都不逊色。但就稳定性而言不像JK这样久经考验,所以建议采用JK的连接方式。Apache+JK+Tomcat配置:

tomcat服务器简介

1 课程回顾 XML加强 1)Dom4j修改XML文档 写出xml文档: XMLWriter writer = new XMLWriter() writer.wrtite(doc); 增加: DocumentHelper.createDocument() 增加新文档 Element.addElement("name"); 增加子标签 Element.addAtrribute(“name”,“value”)增加属性 修改: Attribute.setValue("value"); 修改属性值 Element.setText("value"); 修改文本内容 删除: Element.detach(); 删除标签 Attribute.detach(); 删除属性 2)XPath技术:快速找到xml元素(标签,属性,文本) 2.1 dom4j使用xpath: List list = Element.selectNodes("xpath表达式");多个节点对象 Node node = Element.selectSingleNode("xpath表达式"); 一个节点对象 xpath表达式: / 表示根位置或者子标签 // 表示后代标签(不分层次结构) * 表示所有元素 [ ] 表示条件 @ 表示选择属性 text() 表示选择文本 and 表示与条件 3)SAX解析:原理:加载一点,解析一点,处理一点,对内存要求不高!!!(基于事件) SAXPasser 类: parser(File file,DefaultHandler handler):该方法使用sax解析方式去解析xml文档 DefaultHandler类:重写该类中的一些方法,用于处理xml文档 startElement( .... String qName): 读到开始标签时调用 characterrs(char[] ch,int start,int length); 读到文本内容时调用(包括空格和换行) endElement(.....String qName): 读到结束标签时调用 今天的目标:xml约束+ web开发入门

Tomcat完整教程

第一章 Tomcat概述 一、Tomcat简介 TOMCAT是APACHE JAKARTA软件组织的一个子项目,TOMCAT是一个JSP/SERVLET容器,它是在SUN公司的JSWDK(JA V A SERVER WEB DEVELOPMENT KIT)基础上发展起来的一个JSP和SERVLET规范的标准实现,使用TOMCAT可以体验JSP和SERVLET的最新规范。经过多年的发展,TOMCAT不仅是JSP和SERVLET规范的标准实现,而且具备了很多商业JA V A SERVLET容器的特性,并被一些企业用于商业用途。 1、Tomcat Tomcat在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行Serlvet/JSP 的Web容器,不过Tomcat也扩展了一些应用服务器的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat 是一种具有JSP环境的Servlet容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳。 1.1 SERVLET容器 负责处理客户请求。当客户请求来到时,SERVLET容器获取请求,然后调用某个SERVLET,并把SERVLET的执行结果返回给客户。 当客户请求某个资源时,SERVLET容器使用SERVLETREQUEST对象把客户的请求信息封装起来,然后调用JA V A SERVLET API中定义的SERVLET的一些生命周期方法,完成SERVLET 的执行,接着把SERVLET执行的要返回给客户的结果封装到SERVLETRESPONSE对象中,最后SERVLET容器把客户的请求发送给客户,完成为客户的一次服务过程。 1.2 TOMCAT的工作模式 1.2.1 独立的SERVLET容器 TOMCAT的默认工作模式,作为独立的SERVLET容器,是内置在WEB服务器中的一部分,是指使用基于JA V A的WEB服务器的情形。 其他两种方式是TOMCA T与其他服务器集成的方式: 1.2.2 进程内的SERVLET容器 SERVLET容器作为WEB服务器的插件和JA V A容器的实现。WEB服务器的插件在内部地址空间打开一个JVM(JA V A VIRTUAL MACHINE)使JA V A容器得以在内部运行。如有某个需要调用SERVLET的请求,插件将取得对此请求的控制并将它传递(使用JNI)给JA V A容器。进程内的容器对于多线程、单进程的服务器非常适合,并且提供了很好的运行速度,只是伸缩性有所不足。 注意:JNI是JA V A NATIVE INTERFACE的缩写,是JA V A本地调用接口,通过JNI,JA V A 程序可以和其他语言编写的本地程序进行通信。 1.2.3 进程外的SERVLET容器 SERVLET容器运行于WEB服务器之外的地址空间,并且作为WEB服务器的插件和JVM 使用IPC(如TCP/IP)进行通信。进程外容器的反应时间不如进程内的容器,但有较好的伸缩性、稳定性等性能。 IPC INTERPROCESS COMMUNICATION(进程间通信)的简写,它是实现进程间通信的一

Tomcat服务命令

Procrun是一套让Java应用程序运行在WIN#@下更容易的库和应用程序。 Procrun服务应用程序 Prunsrv一个让应用程序作为服务运行的服务程序,它能转换任一应用程序作为服务运行。 Procrun监视器应用程序 Prunmgr是一个可视化应用程序,用来监视和配置procrun服务。 可用的命令行选项: //ES// 编辑服务的配置这是一个默认的操作. 如果没有提供选项,可执行文件被命名为服务名称W.exe 来调用 //MS// 服务监视器把图标放在系统托盘中 命令行参数 每一个命令行指令的格式为//XX//服务名 可用的命令行选项为: //TS// 运行服务为一个控制台应用程序,这是默认的操作。可执行文件被命名为服务名称W.exe 来调用 //RS// 运行服务仅从服务管理器中调用 //SS// 停止服务 //US// 更新服务参数 //IS// 安装服务 //DS// 删除服务,如果正在运行会停止它 命令行参数 每一个命令行参数的前缀为-- 。如果命令行前缀为++ ,那么参数会被附加在已经存在的选项后面。如果提供了相同名称的环境变量作为命令行参数,但是前缀为PR_,则具有优先权。例如: set PR_CLASSPATH=xx.jar 等同于使用

--Classpath=xx.jar 作为命令行参数。 参数名称默认描述 --Description 服务名称的描述(最大1024字符) --DisplayName 服务名称显示的服务名称 --Install procrun.exe //RS//ServiceName 安装镜像 --Startup 人工服务启动模式,自动或者人工 --Type 服务类型可以是交互式的桌面程序。使用和这个选项仅限于本地系统帐号 --DependsOn 列出服务的依赖关系。依赖的服务使用# 或者; 字符分割 --Environment 列出对服务提供的环境变量,格式为key=value 。使用# 或者; 字符分割 --User 运行程序使用的的用户帐号。它仅用来StartMode模式的java或者exe,让程序作为服务运行在没有作为服务帐号的权限下运行。 --Password --User 指定的帐号的口令 --ServiceUser 指定服务运行的帐号名称。格式为DomainName\UserName 。服务进程以这个帐号登录,如果帐号属于内建的域,可以使用 .\UserName 的格式 --ServicePassword 通过--ServiceUser 指定的帐号的口令 --JavaHome JAVA_HOME 设定一个和JAVA_HOME环境变量不同的JAVA_HOME --Jvm 自动使用自动或者指定全路径的jvm.dll 。你可以使用环境变量 --JvmOptions -Xrs 以-D 或者-X 格式列出传递给JVM的参数。这些选项使用# 或者; 字符分割。如果你需要嵌入# 或者; 字符,请使用单引号把它括起来。 --Classpath 设置java类路径 --JvmMs 初始内存池,单位MB --JvmMx 最大内存池,单位MB --JvmSs 线程堆栈,单位KB --StartImage 将要启动的可执行程序 --StartPath 启动程序工作路径 --StartClass 用来启动的类 --StartParams 列出传递给StartImage 或者StartClass 的参数。参数使用# 或者; 分割。 --StartMethod Main 如果使用了不是main的方法名称 --StartMode executable 可以是一个jvm java或者exe程序 --StopImage 可执行程序用来发出停止服务的信号 --StopPath 停止程序的工作路径 --StopClass 停止服务的类 --StopParams 列出传递给StopImage 或者StopClass 的参数。参数使用# 或者; 分割。 --StopMethod Main 如果使用了不是main的方法名称 --StopMode executable 可以是一个jvm java或者exe程序 --StopTimeout No Timeout 定义一个时长,单位秒,procrun等待服务优雅地退出 --LogPath working path 日志路径

将Web项目War包部署到Tomcat服务器基本步骤

1. 常识: 1.1 War包 War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java 的代码。 当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布。 War包可以放在Tomcat下的webapps或者word目录下,随着tomcat 服务器的启动,它可以自动被解压。 1.2 Tomcat服务器 Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于 轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,最新的Servlet 和JSP规范总是能在Tomcat中得到体现。 2. 配置Java运行环境 2.1 下载并安装JDK 从官网上下载最新的JDK: https://www.360docs.net/doc/269243307.html,/javase/downloads/index.jsp ,下载后安装,选择想把JDK安装到的目录。JRE是包含在JDK中的,所以不需要再另外安装JRE了。 2.2 设置JDK环境变量 右击“计算机”,点击“属性”,点击弹出窗口中左侧的“高级系统设置”,在弹出的选项卡中选择“高级->环境变量”。

假设你本地JAVA的JDK安装的位置为:C:\Program Files\Java\jdk1.7.0_45。 在这里,新建2个环境变量,编辑1个已有的环境变量。如下: 新建变量名:JAVA_HOME; 变量值:你安装JDK的安装目录,在这里为C:\Program Files\Java\jdk1.7.0_45。

Tomcat服务器是一个免费的开放源代码的Web应用服务器

Tomcat服务器是一个免费的开放源代码的Web应用服务器。因为Tomcat技术先进、性能稳定且免费,所以深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。 一、Tomcat与应用服务器 到目前为止,Tomcat一直被认为是Servlet/JSP API的执行器,也就所谓的Servlet容器。然而,Tomcat并不仅仅如此,它还提供了JNDI和JMX API的实现机制。尽管如此,Tomcat仍然还不能算是应用服务器,因为它不提供大多数J2EE API 的支持。 很有意思的是,目前许多的应用服务器通常把Tomcat作为它们Servlet和JSP API的容器。由于Tomcat允许开发者只需通过加入一行致谢,就可以把Tomcat嵌入到它们的应用中。遗憾的是,许多商业应用服务器并没有遵守此规则。 对于开发者来说,如果是为了寻找利用Servlet、JSP、JNDI和JMX技术来生成Java Web应用的话,选择Tomcat是一个优秀的解决方案;但是为了寻找支持其他的J2EE API,那么寻找一个应用服务器或者把Tomcat作为应用服务器的辅助,将是一个不错的解决方案;第三种方式是找到独立的J2EE API实现,然后把它们跟Tomcat结合起来使用。虽然整合会带来相关的问题,但是这种方式是最为有效的。。 二、Tomcat与Web服务器 Tomcat是提供一个支持Servlet和JSP运行的容器。Servlet和JSP能根据实时需要,产生动态网页内容。而对于Web服务器来说,Apache仅仅支持静态网页,对于支持动态网页就会显得无能为力;Tomcat则既能为动态网页服务,同时也能为静态网页提供支持。尽管它没有通常的Web服务器快、功能也不如Web服务器丰富,但是Tomcat逐渐为支持静态内容不断扩充。大多数的Web服务器都是用底层语言编写如C,利用了相应平台的特征,因此用纯Java编写的Tomcat执行速度不可能与它们相提并论。

学习Tomcat服务器 应用与部署技术 笔记

Tomcat服务器应用与部署技术笔记 本文目录 1、Tomcat服务器概述 2、安装Tomcat服务器 3、常见启动问题 4、Tomcat服务器的目录层次结构 5、Web应用程序中一些概念 6、虚似目录的映射方式一:在server.xml文件的host元素中配置: 7、虚似目录的映射方式二:以创建Xml文件的方式映射 8、虚似目录的映射方式三:让Tomcat自动映射 9、Web应用的组成结构 10、web.xml文件介绍 11、配置虚似主机 12、图解演示web资源的访问过程 13、打包web应用—制作war包 14、配置context元素的reloadable元素 15、Tomcat体系架构图 16、配置https 加密连接器 17、使用Tomcat服务器的管理平台 18、图解软件开发的两种架构:c/s和b/s 1、Tomcat服务器概述 Tomcat服务器是适合小型的应用系统或者有特殊需要的系统的免费的Web服务器,该服务器支持全部JSP以及Servlet规范 (注:其他11种J2EE规范不支持,但也足够用了,绝大部分对安全性要求不是很高的网站都在用,包括Google都在用。) 2、安装Tomcat服务器 获取Tomcat:在Tomcat官方站点:https://www.360docs.net/doc/269243307.html,获取Tomcat安装程序包: tar.gz文件是Linux操作系统下的安装版本 exe文件是Windows系统下的安装版本

zip文件是Windows系统下的压缩版本 (推荐使用:配置错误后可立刻删除,重新解压获得一份全新Tomcat) 安装Tomcat :双击 bin 目录下的 startup.bat 文件 输入 http://localhost:8080/,显示如下界面代表安装成功 3、常见启动问题 (1)启动程序一闪而过:原因是Java_home环境变量需要配置,在windows中设置java_home环境变量。只要在setclasspath.bat批处理文件第一次使用JAVA_HOME环境变量之前的任何地方,将JAVA_HOME环境变量设置为JDK的主目录,就可以使用startup.bat文件启动Tomcat了。 (2)端口占用问题:在conf文件夹下的server.xml文件中修改标签中的port(端口)属性值。 (3)多份解压Tomcat程序使用目录位置不正确:这是Catalina_home环境变量的设置问题:当有多份Tomcat压缩包时,该变量将设定唯一被启动Tomcat包的位置,这关系到发布的Web文件存在于哪份压缩包的目录下。建议发布时一定要设置,平时开发不要设置(不设置时,默认启动当前包)。

tomcat服务器文档

一、配置用户 在tomcat-users.xml加入下面的role,再创建一个user,重启服务器输入下面创建的用户名和密码就可以进入管理页面了 注意:在localhost:8080页面下,如果一旦点击三个按钮输入过用户名,密码,localhost:8080页面会记住输入的用户名和密码,如果第一次输入的用户名密码没有manager-gui、admin-gui权限的话,会弹出拒绝页面,再次进入localhost:8080页面,点击三个按钮,会默认帮你输入之前的用户名和密码,仍然会弹出拒绝页面,要想进入管理页面,必须在之前输入的用户下加入manager-gui、admin-gui权限 第一个按钮查看服务器状态 第二个按钮管理服务器上部署的应用,页面上有start,stop按钮可以启动和关闭web project;还可以进行项目部署:在myeclipse的对应项目上右击/Export 在弹出的对话框中选择JavaEE/WARfile(MyEclipse)将该项目导入到某个位置(不妨是桌面),进入Tomcat 管理页面(http://localhost:8080)点击ManagerApp,进入管理应用界面,在WAR fileto deploy(如下图:)选择刚才到处的WAR文件即可,然后就可以在上面的应用列表中看到自己刚部署的项目。 第三个按钮管理主机界面

服务器Tomcat的使用和注意事项

JDK的下载和安装 JDK1.6下载 目前JDK最新版本是JDK1.6,到https://www.360docs.net/doc/269243307.html,/javase/downloads/index.jsp可以下载JDK1.6。 JDK1.6安装 JDK的安装非常简单,只需要按照向导一步一步进行即可。在安装时需记住安装的路径,在配置环境变量时将会用到这个安装路径。我的安装路径是F:jdk1.6。 配置环境变量 对于初学者来说,环境变量的配置是比较容易出错的,在配置的过程中应当仔细。使用JDK一共需要配置三个环境变量:java_home、classpath和path(不区分大小写)。 JAVA_HOME 右击“我的电脑”,选择“属性”,点击“高级”选项卡,选择“环境变量”。进入如下对话框:

在系统变量栏,点击“新建”按钮,弹出如下对话框: 在变量名处填写java_home,变量值填写F:jdk1.6,然后点击确定,这样java_home变量就配置完成了。 classpath 可以参考java_home的配置过程,需要新建一个系统变量,不过classpath的变量名是classpath,变量值是.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)。 path path变量在系统变量中已存在,要修改path变量只需要选中path变量,点击编辑即可。在变量值中加入如下内容:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin。建议把JDK bin 的路径放在原有path 的最前面。因为在%SystemRoot%\system32 中还有一个 java.exe/javaw.exe,这是Windows 操作系统自带的那个JRE,如果我们自己装的话就不要用他默认的那个JRE 了,可以用我们自己装的。如果把JDK bin 的path 放在最前面的话会优先使用。 配置JAVA_HOME,CLASSPATH,PATH的目的 设置JAVA_HOME JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。 一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.6.0目录里,则设置JAVA_HOME为该目录路径, 那么以后你要使用这个路径的时候, 只需输 入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二、归一原则, 当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃!

apache+tomcat+mysql服务器部署

一、软件程序路径及注意事项 程序安装路径: 为了方便服务器维护,我们必须对所放的程序目录有所约定。我们所用到的程序会统一打包,其中JDK、Mysql、Tomcat、Apache为绿色版(免安装版)。 程序统一安装在D:\WebSoft目录下面,网站程序统一放到D:\wwwroot目录下面。 JDK:D:\WebSoft\Jdk Mysql:D:\WebSoft\Mysql Tomcat: D:\WebSoft\Tomcats (可以放多个Tomcat) Apache:D:\WebSoft\Apache Navicate和EditPlus可以直接安装到D:\Program Files 注意事项: 1、每修改一个配置文件之前,应该把配置文件进行备份。 2、用非记事本软件来编辑文件 二、Notepad++安装 三、JDK配置 新增系统变量:JAVA_HOME 变量值:(JDK安装路径)D:\WebSoft\Jdk\jdk1.7.0_06 PATH变量值新增;%JAVA_HOME%/bin 打开CMD,输入java 四、MySQL配置 my.ini (D:\WebSoft\Mysql\MySQLServer 5.5) 把basedir修改为Mysql程序安装目录,datadir修改为数据保存的目录,如下: basedir="D:/Program Files/MySQL/MySQL Server 5.5/"

datadir="D:/ProgramData/MySQL/MySQL Server 5.5/Data/" 安装: 主要用到的命令是“mysqld --install mysql --defaults-file=D:/WebSoft/Mysql/MySQL5.5.38 /my.ini” 其中D:/WebSoft/Mysql/MySQL5.5.38/my.ini是Mysql程序目录下的my.ini,mysql是服务名称,可以根据需要修改。 为了能使用mysqld这个程序,你可以把Mysql安装了目录下的bin目录路径配到Path环境变量中去,也可以直接到Mysql安装目录下的bin目录直接运行。这里我选择第二种。 输入命令后,若出现Service successfully installed则应该安装无误,如果输入命令后没有反应,则可试试“mysqld –install mysql”,若出现错误则应该看所报的错误来解决问题。 启动服务 命令是net start mysql (mysql是刚才安装的服务名,当然你也可以到服务管理那找到mysql,然后启动),如下图。 自带的软件包中的Mysql用户名的root,密码是root,下面进行连接测试。在bin目录下直接输入mysql –uroot –p,回车,然后输入密码root 五、Navicate安装 Navicate安装路径无强制要求,安装后所用的注册码在软件包的压缩包的名字上。 六、Tomcat安装 Tomcat配置主要有两个注意点,一是端口修改(为了配置多个tomcat而避免端口冲突),二是程序网站程序路径(即修改到D:/wwwroot目录下)

Tomcat服务器配置和管理详解——如何实现在Tomcat服务器中进行Web应用程序管理和配置

1.1Tomcat服务器配置和管理详解——如何实现在Tomcat服务器中进行Web应用程序管理和配置 1.1.1如何实现在Tomcat服务器中进行Web应用程序管理和配置 1、配置出Web应用管理的Web应用程序(Manager Web Application) (1)概述 Tomcat中所提供的Manager Web Application让你通过一个比Admin Web Application更为简单的用户界面,执行一些与Web应用任务相关的一些管理功能。 (2)Manager Web Application程序 Manager Web Application被被定义在一个自动部署文件中C:\jakarta-tomcat-5.0.19\server\webapps\manager\manager.xml 。 (3)编辑manager.xml文件 通过编辑这个文件,以确保其中的context中的docBase属性参数是C:\jakarta-tomcat-5.0.19\server\webapps\manager的绝对路径。

(4)在C:\jakarta-tomcat-5.0.19\conf\ tomcat-users.xml 文件中添加Web管理员的角色和Web管理员1)添加用户角色 2)添加与该角色相配置的用户名称和密码 (5)登录Web管理员的页面 1)文本型管理界面 然后重新启动Tomcat,输入http://localhost:8080/manager/,将进入看到一个很朴素的文本型管理界面 如果输入http://localhost:8080/manager/list,将进入一个登录管理界面,然后输入用户名称:manager (前面在tomcat-users.xml中设置的)和密码:12345678。

Tomcat应用服务器介绍(优缺点、应用范围)

Tomcat应用服务器

目录 1.Tomcat介绍 (1) 2.Tomcat应用服务器优势 (1) 2.1.成本低 (1) 2.2.部署简便、运行高效 (1) 2.3.可以应对一定程度的高并发 (2) 2.4.可扩展性强 (2) 3.Tomcat应用服务器缺点 (2) 4.应用范围 (2)

引言 目前采用Java或JSP开发的应用系统,大部分都利用Tomcat作为Web应用服务器。Tomcat 作为一个小型的轻量级应用服务器,是开发和调试JSP程序的首选,在很多场景下都有比较广泛的应用。本文就Tomcat应用服务的优缺点进行了简单介绍。 1.Tomcat介绍 Tomcat是由Apache、Sun等公司共同开发的一个能够为Web应用程序提供免费开放元代码的服务器,是Apache基金会下的一个优秀开源产品,因此很多最新的JSP规范以及Servlet等都能够在Tomcat 当中体现出来。Tomcat5支持最新的SerVlet2.4和JSP2.0规范。在众多Web应用服务器当中,Tomcat具有比较强的稳定性能,技术支持最为先进,同时还是一款免费试用的服务器,因此在当前是设计Web 应用服务器的首选。 2.Tomcat应用服务器优势 2.1.成本低 Tomcat最大的优势在于其开源免费,可以省去巨额的采购费和服务费,是当前设计Web应用服务器的首选。 2.2.部署简便、运行高效 Tomcat轻便小巧,占用空间较小,安装配置极为方便,服务重启更是以秒计,应用部署简单高效,本身运行也不会给操作系统带来较大的负载。

2.3.可以应对一定程度的高并发 在性能方面,Tomcat提供阻塞和非阻塞的清求处理方式,通过优化单个Tomcat应用服务器配置可支持高达数千的并发请求数。在Tomcat集群环境下配以良好的负载均衡策略,可将并发数提升数倍乃至数十倍,该并发处理能力可以应对短期集中的用户访问请求。 2.4.可扩展性强 Tomcat非常轻量,可以较好地发挥Docker等新型云服务技术大规模部署的优势,具备很强的可伸缩特性,可以提升自动化运维水平及系统可用性。 3.Tomcat应用服务器缺点 正如前文提前的一样,Tomcat应用服务器在中小型系统和并发访问用户不是很多的场合下被普遍使用,当应用系统访问量比较大的时候,T omcat 服务器会出现运行不稳定,甚至服务自动停止的情况,每次都必须重起Tomcat 服务,导致后期运行维护的工作量增大。 4.应用范围 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,是作为跨平台开发和调试Web-JSP(Java Server Pages)与APP(Application)程序的首选,在中小型系统和并发访问用户不是很多的场合下被普遍使用,随着对分布式集群运用的支持扩展,Tomact的应用将更加广泛。面对大数据、高并发网络访问,Tomact 需要保持高速网络传输、保证信息传递及时、增强大数据并发处理能

Tomcat服务器搭建及使用指南

Tomcat服务器搭建及使用指南 一、Tomcat介绍 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML(标准通用标记语言下的一个应用。)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML 页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat 的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。 提问:Tomcat和Apache到底有什么区别? Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP、PHP) Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache 的扩展,但是可以独立于apache运行 两者都是apache组织开发,都具有HTTP服务器的功能,并且都是开源免费的。Tomcat是运行在apache上的应用服务器,所以我们安装的tomcat叫apache tomcat;举个例子来说------Apache是一辆车,上面可以装一些东西如html等,但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上,那这个桶就是TOMCAT。 二、Tomcat安装 安装前需要准备的安装包如下: JDK下载地址: https://www.360docs.net/doc/269243307.html,/technetwork/java/javase/downloads/index.html Tomcat下载地址: https://www.360docs.net/doc/269243307.html,/

一台服务器部署多套Tomcat

Tomcat必须是解压版的 apache-tomcat-7.0.55-windows-x64.zip 确保机器上没有其他的Tomcat,有则删除; 第一套Tomcat 第一步:将文件解压两份,并重命名文件名,例如: 第二步:进入其中一个目录下,如:D:\tomcat\apache-tomcat-7-8080\bin,更改service.bat文件,在其中添加如下内容: SET CATALINA_HOME=D:\tomcat\apache-tomcat-7-8080 第三步:用命令行执行(win+R 运行输入“cmd”)如下命令安装服务: D:\tomcat\apache-tomcat-7-8081\bin\service.bat install

如图则安装成功 第四步:运行bin目录下的tomcat7w.exe 启动成功,第一套Tomcat部署完成; 第二套Tomcat 第一步:更改第二个Tomcat \bin 目录下的service.bat文件(例:D:\tomcat\apache-tomcat-7-8081\bin) 1、在前面添加如下内容:

SET CATALINA_HOME=D:\tomcat\apache-tomcat-7-8081 2、查找SERVICE_NAME 更改它的值,如图改为Tomcat7f: 3、搜索“tomcat7.exe”,并全部重命名,如改为“tomcat7f.exe” 4、将bin目录下的 tomcat7.exe 为 tomcat7f.exe,改tomcat7w.exe 为 tomcat7fw.exe,注意,这里改的与步骤3里面的要统一; 第二步:更改Tomcat 目录下conf文件夹里的service.xml文件 更改其中的端口号,将其改为未使用的端口;

服务器原理和协议TomcatHttp协议

服务器原理和协议 学习的思路: Servler + Jsp + 数据库 1,Javaweb服务器原理 + HTTP协议 2,编程的API,来学,应该先学Servlet,比JSP而言,更复杂,倾向底层原理,JSP主要是页面显示 3,Servlet和Jsp之间加上数据库课程,(Mysql+Oracle),数据库语言Sql+Java数据库编程JDBC B/S 和C/S 的区别 Browser/Server 是一直特殊C/S结构,客户端采用浏览器实现:基于web系统微博,网页游戏,云计算 Google Client/Server 客户端必须单独安装腾讯QQ 微软 WEB系统是怎样通信的? Web browser(客户端)(客户端请求包含要访问的资源路径和名称)request Server(服务端)(服务端可以将页面、图片、媒体等很多的资源内容发送给客户端)response如果客户端的请求没有得到正确处理,服务端的响应会包含一个错误的状态码返回 什么是WEB应用? Web应用就是基于HTTP协议在B/S结果中的服务端的应用程序,它接收客户端浏览器的请求并返回应答结果(通常是以页面的形式返回) WEB应用部分的组成: 什么是静态资源,什么是动态资源? 静态资源的数据是固定的 动态资源的数据随着程序的执行而改变的 静态资源技术:Html + Css + JavaScript - DHTML Dynamic Html 动态资源技术:ASP/PHP/JSP 用来开发网站 ASP被 .net取代,.net代表的是很多微软技术综合(VB、ASP、C#)开发网站(工具,到运行平台都是收费的)俗称为网站开发技术贵族 PHP 网站开发第一技术,民间开发的,开源,免费–>开发网站(免费开源)网站开发技术平民 JSP开发成本太高(必须先学java),效率太低,服务器性能,服务器少 JAVA 优点:开发企业级应用 ERP/CRM/OA 规范性强、更加标准 B/S 系统基于请求–> 响应模型注意:必须现有请求才有响应,请求和响应是成对出现的; 访问网站基于一个协议的 输入网站----- 唯一域名----映射IP ----- 互联网一台服务器 服务器想被外界访问,必须开发端口 URL格式:

Apache服务器和tomcat服务器

1.Apache服务器和tomcat服务器 Apache应用服务器之三:为什么Apache与Tomcat要整合 https://www.360docs.net/doc/269243307.html,/uid-21266384-id-186473.html 一.Apache与Tomcat介绍 Apache是当前使用最为广泛的WWW服务器软件,具有相当强大的静态HTML 处理的能力。 Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP 规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。 Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。 二.为什么需要整合 整合的最主要原因是为了在现有的硬件条件下提供最大的负载。 如果单独使用Tomcat做JSP服务器,在工作效率上会存在问题,Tomcat处理静态HTML的能力不如Apache,并且所能承受的最大并发连接数也有一定的限制; 在测试中,当并发连接较多时,Tomcat就会处于“僵死”状态,对后继的请求连接失去响应。所以现在提出一个“整合”解决方案:将html与jsp的功能部分进行明确分工,让tomcat只处理jsp部分,其它的由apache这个web server处理。Apache与Tomcat各司其职,那么服务器的整体效率就能够得到提升。三.整合的基本原理 作为Apache下面的子项目,Tomcat 与Apache之间有着天然的联系。在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet 的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。 在tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,

Tomcat服务器配置和管理详解——如何应用Tomcat服务器的系统管理控制台实现局部资源管理

1.1Tomcat服务器配置和管理详解——如何应用Tomcat服务器的系统管理控制台实现局部资源管理 1.1.1在Tomcat中进行局部资源管理 1、利用系统管理Web应用程序来配置各种局部资源 所谓的局部资源是指针对某一个Context而言的,有DataSource和Envirment Entries等项目。 2、创建出局部的DataSourcs资源项目 (1)输入下面的内容 (2)点击“Commit Changes”按钮

(3)将在C:\jakarta-tomcat-5.0.19\conf\Catalina\localhost目录下的WebMis.xml添加下面的信息 factory https://www.360docs.net/doc/269243307.html,mons.dbcp.BasicDataSourceFactory maxWait -1 maxActive 20 password

Tomcat详细配置

安装Tomcat之前要先安装JDK,可从https://www.360docs.net/doc/269243307.html,上下载最新版本的JDK。Tomcat可从Apache Jakarta Project站点(https://www.360docs.net/doc/269243307.html,/site/binindex.cgi)上下载,本书使用的Tomcat版本是5.5.7,它需要安装J2SE 5.0(JDK 1.5)以上的版本才能运行。对于Wind ows操作系统,Tomcat 5.5.7提供了两种安装文件,一种是jakarta-tomcat-5.5.7.exe,一种是jakarta-tomcat-5.5.7.zip(如果读者使用的是Linux系统,请下载jakarta-tomcat-5.5.7.tar.gz)。jakarta-tomcat-5.5.7.exe是可执行的安装程序,读者只需要双击这个文件,就可以开始安装To mcat了。在安装过程中,安装程序会自动搜寻JDK和JRE的位置。安装完成后,在Windows 系统的“开始”->“程序”菜单下会添加Apache Tomcat 5.5菜单组。jakarta-tomcat-5.5.7.zip是一个压缩包,只需要将它解压到硬盘上就可以了。在这里,我建议读者下载jakarta-tomcat-5.5.7. zip压缩包,通过解压缩的方式安装Tomcat,因为解压缩的方式也适用于其他的操作系统,例如Linux系统。下面我们主要介绍jakarta-tomcat-5.5.7.zip的安装与Tomcat运行环境的设置。

—在/common/lib目录下的JAR文件可以被Tomcat服务器和所有的Web应用程序访问。 此外,对于后面将要介绍的Java Web应用程序,在它的WEB-INF目录下,也可以建立lib子目录,在lib子目录下可以存放各种JAR文件,这些JAR文件只能被当前Web应用程序所访问。

相关主题
相关文档
最新文档