webapp配置文件之web.xml
- web-app下的welcome-file-list
- web-app下的filter
- web-app下的filter-mapping
- web-app下的listener
- web-app下的error-page
- web-app下的env-entry
- web-app下的security-role
- web-app下的security-constraint
- web-app下的login-config
- web-app下的mime-mapping
- web-app下的locale-encoding-mapping-list
- web-app下的resource-env-ref
- web-app下的resource-ref
- web-app下的ejb-ref
- web-app下的ejb-local-ref
web-app下的welcome-file-list
welcome-file-list
包含welcome-file
的有序列表。
当URL请求是目录名称时,将提供welcome-file
列表中指定的第一个文件。 如果找不到该文件,则服务器将尝试列表中的下一个文件。
元素 | 必需/选用 | 描述 |
---|---|---|
<welcome-file> | 选用 | 首页文件名(welcome文件的文件名),例如index.html |
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
web-app下的filter
filter
定义了一个过滤器类及其初始化属性。
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 描述Web应用程序的文本 |
<display-name> | 选用 | 指定Web应用程序的显示名称。 |
<icon> | 选用 | 指定Web应用程序中用于在GUI工具中表示filter的大小图像的位置。 |
<filter-name> | 必需 | 定义过滤器的名称,用于引用部署描述符中其他位置的过滤器定义。 |
<filter-class> | 必需 | 过滤器的全类名。 |
<init-param> | 选用 | 包含一个name/value 键值对,作为Servlet的初始化属性。 |
<filter>
<description>...</description>
<display-name>...</display-name>
<icon>...</icon>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
filter下的description
描述Web应用程序的文本
filter下的display-name
指定Web应用程序的显示名称。
filter下的icon
指定Web应用程序中用于在GUI工具中表示filter的大小图像的位置。
filter下的filter-name
定义过滤器的名称。
<filter>
<filter-name>filterName</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
</filter>
filter下的filter-class
过滤器的全类名。
<filter>
<filter-name>filterName</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
</filter>
filter下的init-param
过滤器的初始化属性。
<filter>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
init-param下的param-name
过滤器的初始化属性的属性名。
init-param下的param-value
过滤器的初始化属性的属性值。
web-app下的filter-mapping
元素 | 必需/选用 | 描述 |
---|---|---|
<filter-name> | 必需 | url 模式或servlet 映射的过滤器的名称 |
<url-pattern> | 必需 (或者通过<servlet> 映射) | 用于解析URL的一个模式。如果模式匹配,则调用此元素中映射的过滤器。 |
<servlet-name> | 必需(或者通过<url-pattern> 映射) | servlet的名称,如果被调用,将导致该过滤器执行。 |
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
<servlet-name>myServlet</servlet-name>
</filter-mapping>
注:<url-pattern>
和<servlet-name>
可以同时定义,但是不推荐这样做。
filter-mapping下的filter-name
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
<!-- 不推荐同时定义url-pattern和servlet-name
<servlet-name>myServlet</servlet-name>
-->
</filter-mapping>
filter-mapping下的url-pattern
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
filter-mapping下的servlet-name
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>myServlet</servlet-name>
</filter-mapping>
web-app下的listener
使用listener
定义应用程序的监听器。
元素 | 必需/选用 | 描述 |
---|---|---|
<listener-class> | 选用 | 响应Web应用程序事件的类的名称。 |
<listener>
<listener-class>com.metawerx.listener.ContextListener</listener-class>
</listener>
<listener>
<listener-class>com.metawerx.listener.SessionListener</listener-class>
</listener>
listener下的listener-class
指定监听后响应Web应用程序事件的类的名称。
web-app下的error-page
error-page
指定错误代码或异常类型与Web应用程序中资源路径之间的映射。
发生错误时(响应HTTP请求异常或Java异常),返回的HTML页面,该页面显示HTTP错误代码或包含Java错误消息的页面。可以自定义该HTML页面,以代替显示这些默认错误的响应页面或Java异常。
元素 | 必需/选用 | 描述 |
---|---|---|
<error-code> | 选用 | 有效的HTTP错误代码,例如 404 。 |
<exception-type> | 选用 | Java异常类型的标准类名,例如 java.lang.string |
<location> | 必需 | 为响应错误而显示的资源的位置。例如 /ErrorPage.html. |
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorThrowable.jsp</location>
</error-page>
error-page下的error-code
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
error-page下的exception-type
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorThrowable.jsp</location>
</error-page>
error-page下的location
<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/errorThrowable.jsp</location>
</error-page>
web-app下的env-entry
env-entry
声明应用程序的环境条目,为每个环境条目使用单独的元素。
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 文本描述 |
<env-entry-name> | 必需 | 环境条目的名称。 |
<env-entry-value> | 必需 | 环境条目的值。 |
<env-entry-type> | 必需 | 环境条目的类型。可以设置为以下Java类型之一:java.lang.Boolean``java.lang.String``java.lang.Integer``java.lang.Double``java.lang.Float |
<web-app>
<env-entry>
<env-entry-name>webmasterName</env-entry-name>
<env-entry-value> defined String context</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>cms/defaultUserSettings/recordsPerPage</env-entry-name>
<env-entry-value>30</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>cms/enableXMLExport</env-entry-name>
<env-entry-value>false</env-entry-value>
<env-entry-type>java.lang.Boolean</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>cms/enableEmailNotifications</env-entry-name>
<env-entry-value>true</env-entry-value>
<env-entry-type>java.lang.Boolean</env-entry-type>
</env-entry>
</web-app>
env-entry下的description
<web-app>
<env-entry>
<description>my env-entry name</description>
</env-entry>
</web-app>
env-entry下的env-entry-name
<web-app>
<env-entry>
<env-entry-name>webmasterName</env-entry-name>
<env-entry-value> defined String context</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
</web-app>
env-entry下的env-entry-value
<web-app>
<env-entry>
<env-entry>
<env-entry-name>cms/defaultUserSettings/recordsPerPage</env-entry-name>
<env-entry-value>30</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
</env-entry>
</web-app>
env-entry下的env-entry-type
<web-app>
<env-entry>
<env-entry-name>cms/enableXMLExport</env-entry-name>
<env-entry-value>false</env-entry-value>
<env-entry-type>java.lang.Boolean</env-entry-type>
</env-entry>
</web-app>
web-app下的security-role
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 此安全角色的文本描述。 |
<role-name> | 必需 | 角色名称。 在此使用的名称必须在特定于WebLogic的部署描述符weblogic.xml中具有一个对应的条目,该描述符将角色映射到安全领域中的主体 |
<security-role>
<description>my security-role</description>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>cms_editors</role-name>
</security-role>
security-role下的description
<security-role>
<description>my security-role</description>
</security-role>
security-role下的role-name
<security-role>
<role-name>admin</role-name>
</security-role>
web-app下的security-constraint
security-constraint
设置通过<web-resource-collection>
定义的资源集合的访问权限。
元素 | 必需/选用 | 描述 |
---|---|---|
<display-name> | 选用 | 定义该限制的简称。 |
<web-resource-collection> | 必需 | 定义应用此安全约束的Web应用程序的组件。 |
<auth-constraint> | 选用 | 定义哪些组或主体有权访问此安全约束中定义的Web资源集合。 |
<user-data-constraint> | 选用 | 定义客户端应如何与服务器通信。 |
<!-- 限制对/private/* 目录的访问的约束-->
<security-constraint>
<web-resource-collection>
<description>...</description>
<web-resource-name>defined protected</web-resource-name>
<url-pattern>/private/*</url-pattern>
<!--如果列出http方法,则只有这些方法受保护。去掉注释即可指定保护下列方法。-->
<!--
<http method>DELETE</http method>
<http method>GET</http method>
<http method>POST</http method>
<http method>PUT</http method>
-->
</web-resource-collection>
<auth-constraint>
<!-- 只有admin和cms_editors才能访问此安全约束中定义的Web资源集合。-->
<description>...</description>
<role-name>admin</role-name>
<role-name>cms_editors</role-name>
</auth-constraint>
</security-constraint>
security-constraint下的display-name
<security-constraint>
<display-name>...</display-name>
</security-constraint>
security-constraint下的web-resource-collection
每个<security-constraint>
元素必须具有一个或多个<web-resource-collection>
元素。这些定义了此安全性约束所应用到的Web应用程序的范围。
元素 | 必需/选用 | 描述 |
---|---|---|
<web-resource-name> | 必需 | 该Web资源集合的名称。 |
<description> | 选用 | 该安全性约束的文本描述。 |
<url-pattern> | 选用 | 使用一个或多个<url-pattern> 元素来声明此安全性约束适用于哪些URL模式。至少使用这些元素中的一个,否则<web-resource-collection> 将被WebLogic Server忽略。 |
<http-method> | 选用 | 使用一个或多个<http-method> 元素来声明哪些HTTP方法(通常是GET 或POST )受到授权约束。如果省略<http-method> 元素,则默认行为是将安全约束应用于所有HTTP方法。 |
<!-- 限制对/private/* 目录的访问的约束-->
<security-constraint>
<web-resource-collection>
<description>...</description>
<web-resource-name>defined protected</web-resource-name>
<url-pattern>/private/*</url-pattern>
<!--如果列出http方法,则只有这些方法受保护。去掉注释即可指定保护下列方法。-->
<!--
<http method>DELETE</http method>
<http method>GET</http method>
<http method>POST</http method>
<http method>PUT</http method>
-->
</web-resource-collection>
</security-constraint>
ecurity-constraint下的auth-constraint
可选的auth-constraint元素定义哪些组或主体可以访问在此安全约束中定义的Web资源集合。
元素 | 必需/选用 | 描述 |
---|---|---|
<role-name> | 选用 | 允许访问的role名称 |
<description> | 选用 | 此安全性约束的文本描述。 |
<security-constraint>
<auth-constraint>
<!-- 只有admin和cms_editors才能访问此安全约束中定义的Web资源集合。-->
<description>...</description>
<role-name>admin</role-name>
<role-name>cms_editors</role-name>
</auth-constraint>
</security-constraint>
ecurity-constraint下的user-data-constraint
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 文本描述 |
<transport-guarantee> | 必需 | 指定客户端和服务器之间的通信。 |
注:
<transport-guarantee>
值的范围
-
NONE
该应用程序不要求任何运输的保障。
-
INTEGRAL
应用程序要求在客户端和服务器之间发送数据,而该方式不能在传输过程中更改。
-
CONFIDENTIAL
应用程序要求传输数据,以防止其他实体观察传输内容。
使用INTEGRA
L或CONFIDENTIAL
传输保证对用户进行身份验证时,web应用服务器会建立安全套接字层(SSL)连接。
<!-- 定义一个约束以在应用程序中的所有页面上强制建立SSL连接 -->
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
web-app下的login-config
使用可选的login-config元素配置如何认证用户;该应用程序应使用的领域名称;以及表单登录机制所需的属性。
如果存在此元素,则必须对用户进行身份验证,以便访问受Web应用程序中定义的<security-constraint>
约束的任何资源。一旦通过身份验证,就可以授权用户使用访问权限访问其他资源。
元素 | 必需 /选用 | 描述 |
---|---|---|
<auth-method> | 选用 | 指定用于认证用户的方法。可能的值:BASIC —uses browser authentication. (This is the default value.) FORM —uses a user-written HTML form. CLIENT-CERT |
<realm-name> | 选用 | 用来认证用户凭据的领域的名称。如果省略,则默认使用在Web应用程序->配置->管理控制台的“其他”选项卡上通过“身份验证领域名称”字段定义的领域。有关更多信息,请参阅管理WebLogic安全。 |
<form-login-config> | 选用 | 如果将<auth-method> 配置为FORM,请使用此元素。 |
Note: <realm-name>
元素不引用WebLogic Server中的系统安全领域。此元素定义在HTTP Basic授权中使用的领域名称。系统安全领域是在服务器中执行某些操作时检查的安全信息的集合。 Servlet安全领域是安全信息的不同集合,当访问页面并使用基本身份验证时将对其进行检查。
<!-- 基于表单的身份验证
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
-->
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Editor Login</realm-name>
</login-config>
<!-- 基于客户端证书的验证
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
-->
login-config下的realm-name
<login-config>
<realm-name>Editor Login</realm-name>
</login-config>
login-config下的auth-method
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
login-config下的form-login-config
Web资源相对于文档根的URI,用于验证用户。 这可以是HTML页面,JSP或HTTP servlet,并且必须返回HTML页面,该页面包含符合特定命名约定的基于FORM的身份验证。
元素 | 必需/选用 | 描述 |
---|---|---|
<form-login-page> | 必需 | Web资源相对于文档根的URI,用于验证用户。 这可以是HTML页面,JSP或HTTP servlet,并且必须返回HTML页面,该页面包含符合特定命名约定的基于FORM的身份验证。 |
<form-error-page> | 必需 | 相对于文档根目录的Web资源的URI,响应于失败的身份验证登录发送给用户。 |
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
form-login-config下的form-login-page
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
</form-login-config>
form-login-config下的form-error-page
<form-login-config>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
web-app下的mime-mapping
mime-mapping元素定义了扩展名和mime类型之间的映射。
元素 | 必需/选用 | 描述 |
---|---|---|
<extension> | 必需 | 描述扩展名的字符串,例如:txt 。 |
<mime-type> | 必需 | 描述定义的mime类型的字符串,例如: text/plain 。 |
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
mime-mapping下的extension
<mime-mapping>
<extension>xls</extension>
<mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>
mime-mapping下的mime-type
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
web-app下的locale-encoding-mapping-list
<!-- 设置区域编码 -->
<locale-encoding-mapping-list>
<locale-encoding-mapping>
<locale>ja</locale>
<encoding>Shift_JIS</encoding>
</locale-encoding-mapping>
</locale-encoding-mapping-list>
web-app下的resource-env-ref
resource-env-ref元素包含Web应用程序对与Web应用程序环境中的资源关联的托管对象的引用的声明,由一个可选描述、资源环境引用名称以及Web应用程序代码期望的资源环境引用类型的指示组成。
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 描述该资源环境引用。 |
<resource-env-ref-name> | 必需 | 指定该资源环境引用的名称。 |
<resource-env-ref-type> | 必需 | 指定该资源环境引用的类型,必须是Java语言类或接口的标准名称。 |
注:<resource-env-ref-name>
的值是Web应用程序代码中使用的环境条目名称。该名称是相对于java:comp / env
上下文的JNDI
名称,并且在Web应用程序中必须唯一。
web-app下的resource-ref
可选的resource-ref元素定义对引用的外部资源的查找名称。这允许Servlet代码通过在部署时映射到实际位置的“虚拟”名称去查找资源。
使用一个单独的<resource-ref>
定义每个外部资源的名称。在WebLogic特定的部署描述符weblogic.xml中,外部资源名称在部署时映射到资源的实际位置的名称。
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 对引用的外部资源的文本描述 |
<res-ref-name> | 必需 | JNDI树中使用的资源的名称。 Web应用程序中的Servlet使用此名称查找对资源的引用。 |
<res-type> | 必需 | 与引用名称相对应的资源的Java类型。使用Java类型的完整软件包名称。 |
<res-auth> | 必需 | 用于控制资源登录的安全性。 |
<res-sharing-scope> | 选用 | 指定是否可以共享通过resource manager connection factory 引用获得的连接。有效值:Shareable 、Unshareable |
注:<res-auth>
的属性值如果设置为APPLICATION
,则表示应用程序组件代码以编程方式执行资源签名。如果设置为CONTAINER
,则WebLogic Server使用通过login-config
元素建立的安全上下文。
web-app下的ejb-ref
可选的ejb-ref元素定义对EJB资源的引用。通过在特定于WebLogic的部署描述符文件weblogic.xml中定义映射,可以将该引用映射到部署时的EJB实际位置。使用单独的<ejb-ref>
元素定义每个参考EJB名称。
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 引用的文本描述。 |
<ejb-ref-name> | 必需 | Web应用程序中使用的EJB的名称。此名称映射到特定于WebLogic的部署描述符weblogic.xml中的JNDI树。 |
<ejb-ref-type> | 必需 | 引用的EJB的预期Java类类型。 |
<home> | 必需 | EJB home接口的全类名。 |
<remote> | 必需 | EJB远程接口的全类名。 |
<ejb-link> | 选用 | 包含的J2EE应用程序包中EJB的<ejb-name> 。 |
<run-as> | 选用 | 一种安全角色,其安全性上下文应用于引用的EJB。必须是使用<security-role> 元素定义的安全角色。 |
web-app下的ejb-local-ref
ejb-local-ref元素用于声明对企业bean的本地宿主的引用。
该声明包括:
- 可选描述
- 在引用企业bean的Web应用程序的代码中使用的EJB引用名称。引用的企业bean的预期类型
- 引用的企业bean的预期本地本地和本地接口
- 可选的ejb-link信息,用于指定引用的企业bean
元素 | 必需/选用 | 描述 |
---|---|---|
<description> | 选用 | 引用的文本说明 |
<ejb-ref-name> | 必需 | 包含EJB引用的名称。 |
<ejb-ref-type> | 必需 | ejb-ref-type元素包含所引用企业bean的预期类型。 ejb-ref-type元素必须是以下之一:<ejb-ref-type>Entity</ejb-ref-type>``<ejb-ref-type>Session</ejb-ref-type> |
<local-home> | 必需 | 包含企业bean的本地home接口的标准名称。 |
<local> | 必需 | 包含企业bean的本地接口的标准名称。 |
<ejb-link> | 选用 | eejb-ref或ejb-local-ref元素中使用ejb-link元素来指定将EJB引用链接到EJB。 |
EJB引用是Web应用程序环境中的一个条目,并且相对于java:comp / env的context。该名称在Web应用程序中必须是唯一的。建议名称以ejb /开头。该名称在Web应用程序中必须是唯一的。建议名称以ejb /开头。
例如:
<ejb-ref-name> ejb / Payroll </ ejb-ref-name>