JavaWeb-web.xmlの

web.xmlそれはServlet仕様開発JavaWebのアプリケーション・デプロイメント・ディスクリプタ。

二つの要素

名前 説明 一般的
表示名 これは、Webアプリケーションの名前を定義します T
説明 説明情報文のWEBアプリケーション T
配布 タグ要素が空である場合、その有無、分散処理ステーションかどうかを指定することができる。この要素がweb.xmlに存在する場合、現像ステーションで表しを分散JSPコンテナの複数の間で実行されるように設計されています。 F
コンテキスト-PARAM アプリケーションの規定の範囲内の初期化パラメータ。アプリケーション内で共有。 T
フィルタ javax.servlet.Filterインタフェースを実現するために、クラス名に関連付けられたフィルタエレメント。 T
フィルタマッピング 名前のフィルタたら、フィルタマッピング要素は、1つのまたは複数の関連するサーブレットやJSPページでそれを使用する必要があります。 T
リスナー サーブレットAPIバージョン2.3の変更およびセッションまたはサーブレット環境を削除する、確立したときにイベントリスナーに通知する、イベントリスナーのためのサポートを追加します。イベントリスナクラスそのリスナーの要素を指定します。 T
サーブレット サーブレットやJSPページに初期化パラメータまたはカスタムURLを開発するには、まず、サーブレットやJSPページに名前を付ける必要があります。サーブレット要素は、このタスクを達成するために使用されます。 T
サーブレット・マッピング これは、サーブレットとURLの間のマッピングを定義し、その名前が<servlet>要素に接続されています。 T
セッション設定 セッションは、一定時間内にアクセスされない場合は、サーバーはメモリを節約するためにそれを放棄することができます。
タイムアウト値は明示のHttpSessionの単一のセッションオブジェクトsetMaxInactiveIntervalメソッドを使用して設定することができる、またはセッション設定要素のデフォルトタイムアウト値を使用して製剤化することができます。
T
MIMEマッピング Webアプリケーションは、保証を提供することで、特定のMIMEタイプへの割り当て、MIME-mapping要素を確保することを望んで、特殊なファイルを考えている場合。 F
歓迎のファイルリスト Welcomeページ(htmlhtm、またはjsp、など) T
エラーページ 例外が表示されるように指定、スローされます。 T
JSP-config設定 WebアプリケーションのJSPファイルのグローバル構成情報を提供します。これは、2つのサブ要素があり、taglibそしてjsp-property-group F
セキュリティ制約 1つ以上のWebリソースコレクションに関連付けられているセキュリティ上の制約のために F
ログイン-config設定 どのようにアクセス保護されたページにしようとするユーザを認証するためにサーバーを指定する必要があります。それはであるsercurity-constraint関節の要素の使用。 T
セキュリティ役割 セキュリティロールを定義します。定義は、オプションのセキュリティロールの説明とセキュリティロールの名前が含まれています。 F
resource-env-refType 管理対象リソースに関連した文。 F
resource-ref 工場で使用するリソース外部リソースを宣言します。 F

フィルタ設定

Servletコンテナは、クライアント要求を受信し、応答結果を出し、フィルターはチェックして、その中の情報を変更することができweb、フィルタのアプリケーションを追加し、必要であるweb.xml2つの要素を設定するには:<filter><filter-mapping>、次は、<filter>要素の典型的な:

<filter>
	<filter-name>SampleFilter</filter-name>
    <filter-class>com.yan.SampleFilter</filter-class>
</filter>

上記のコードは、名前のフィルタを定義しSampleFilterたクラスがあり、このフィルタを実現しますcom.yan.SampleFilter

<filter>サブ要素:

プロパティ 説明
<フィルタ名> 複数のフィルタがある定義されたフィルタ名、Webアプリケーション、名前の重複を許可しません
<フィルタクラス> 指定されたトランザクションのフィルタリングを特定する責任があり、このフィルタクラスを実現。

<フィルタ-mapping>要素は、責任濾過をフィルタリングするために使用されるURL例示的なものです:

<filter-mapping>
	<filter-name>SampleFilter</filter-name>
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>

以上代码指明当客户请求访问Web应用中的所有JSP文件时,将触发SampleFilter过滤器工作.具体的过滤事务由在<filter>元素中指定的类中完成.

<filter-mapping>元素的子元素描述:

属性 描述
<filter-name> 指定过滤器名,这里的过滤器名必须和<filter>元素中定义的名称对应.
<url-pattern> 指定过滤器负责过滤的URL

配置Servlet

<servlet>元素用来定义Servlet,以下代码定义了一个名为SampleServletServlet,实现这个Servlet类的是com.yan.servlet.SampleServlet:

<servlet>
	<servlet-name>SampleServlet</servlet-name>
    <servlet-class>com.yan.servlet.SampleServlet</servlet-class>
</servlet>

<servlet>元素的属性描述:

属性 描述
<servlet-name> 定义Servlet名字
<servlet-class> 指定实现这个Servlet的类
<init-param> 定义Servlet的初始化参数,对应的是<servlet-class>定义的类中的实例属性.
包含参数名和参数值,在一个<servlet>元素中可以有多个<init-param>.在Servlet类中通过getInitParameter(String name)方法访问初始化参数.
<load-on-startup> 指定当Web应用启动时,加载Servlet的次序,当这个值为正数或0时,Servlet容器先加载数值较小的Servlet,如果为负数或没有设定,那么Servlet容器将在Web客户首次访问这个Servlet时加载它,即懒加载.

配置Servlet映射

<servlet-mapping>元素用来设定客户访问某个ServletURL,以下代码为SampleServlet指定URL/sample:

<servlet-mapping>
	<servlet-name>SampleServlet</servlet-name>
    <url-parttern>/sample</url-parttern>
</servlet-mapping>

<servlet-mapping>使得程序中定义的Servlet类名和客户访问的URL彼此独立.当Servlet类名发生改变时,只要修改<servlet>元素中的<servlet-class>子元素即可.

而客户端访问ServletURL无须做相应的改动.

<servlet-mapping>元素的子元素:

属性 描述
<servlet-name> 指定Servlet名字,与<servlet>元素中定义的名字匹配
<url-pattern> 指定访问这个ServletURL,这里只需给出相对于整个Web应用的URL路径

配置Session

<session-config>元素用来设定HTTP Session的生命周期.例如,如下代码指明Session可以保持不活动状态的最长时间为30秒,超过这一时间,Servlet容器将把它作为无效Session处理.

<session-config>
	<session-timeout>30</session-timeout>
</session-config>

配置Welcome文件清单

当客户访问Web应用时,如果仅仅给出Web应用的Root URL,没有指定具体的文件名或资源路径,Servlet会自动调用Web应用的Welcome文件.<welcome-file-list>元素用来设定Welcome文件清单.:

<welcom-file-list>
	<welcome-file>login.jsp</welcome-file>
	<welcome-file>login.html</welcome-file>
</welcom-file-list>

<welcome-file>可以是一个序列,找到第一个合法文件即返回给客户端.

配置资源引用

如果Web应用访问了由Servlet容器管理的某个JNDI Resource,则必须在web.xml文件中声明对这个JNDI Resource的引用.表示资源引用的元素为<resource-ref>:

<resource-ref>
	<description>DB Connection</description>
    <res-ref-name>jdbc/sampleDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

其子元素描述:

属性 描述
<description> 说明
<res-ref-name> 指定所引用资源的JNDI名字
<res-type> 指定所引用资源的类名字
<res-auth> 指定管理所引用资源的Manager,有两个可选值:ContainerApplication,分别表示由容器还是Web应用来创建和管理Resource.

配置安全约束

<security-constraint>用来为Web应用应以安全约束.以下代码指明当前用户访问该Web应用下的所有资源时,必须具备admin角色.

<security-constraint>
	<web-resource-collection>
    	<web-resource-name>sample application</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
    	<role-name>admin</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

<security-constraint>元素的子元素:

元素 描述
<web-resource-collection> 声明受保护的Web资源
<auth-constraint> 声明可以访问受保护的资源的角色,可以包含多个<role-name>子元素
<user-data-constraint> 核心是<transport-guarantee>,它指定客户端和服务器之间的通信应为NONEINTEGRALCONFIDENTIAL
默认为NONE,表示该应用程序不需要任何运输保证。
INTEGRAL表示应用程序要求在客户端和服务器之间发送的数据必须以在传输过程中无法更改的方式发送。
机密意味着应用程序要求以防止其他实体观察传输内容的方式传输数据。
在大多数情况下,如果出现INTEGRALCONFIDENTIAL标志,则表明需要使用SSL

<web-resource-collection>元素的子元素:

元素 描述
<web-resource-name> 标识受保护的Web资源
<url-pattern> 指定受保护的URL路径,可以是多个
<http-method> 指定受保护的方法,可以是多个

配置安全验证登录界面

<login-config>元素指定当Web客户访问受保护的Web资源时,系统弹出的登录对话框的类型.以下代码配置了基于表单验证的登录界面:

<login-config>
	<auth-method>FORM</auth-method>
    <realm-name>Form-Based Authentication</realm-name>
    <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(基本验证),DIGEST(摘要验证)和FORM(表单验证)
<realm-name> 设定安全域的名称
<form-login-config> 当验证方法为FORM时,配置验证页面和出错页面
<form-login-page> 当验证方法为FORM时,登录界面路径
<form-error-page> 当验证方法为FORM时,设定出错页面

配置对安全验证角色的引用

<security-role>元素指明这个Web应用引用的所有角色的名字.例如,如下代码声明引用了admin角色:

<security-role>
	<description>
    	The Role that is required to log in to the sample Application
    </description>
    <role-name>admin</role-name>
</security-role>

安全配置的说明

如上我们所配置的安全信息生效,需要在WEB-INF/tomcat-user.xml中配置相应的角色信息:

    <role rolename="admin"/>
    <user username="admin" password="admin" roles="admin"/>

当用户访问当前页面/sample时,会找到<login-config>的实际配置给用户一个登录渠道,当用户输入的用户名密码对应上tomcat-user.xml中配置的user后找到其归属的role,如果roleadmin,则允许访问.

おすすめ

転載: www.cnblogs.com/yw0219/p/12664271.html