本站首页    管理页面    写新日志    退出


天堂之光 人间希望

你我共同品味

JAVA的浓香.

Linux的清芬.

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


我的分类(专题)

日志更新

最新评论

留言板

链接

联系我

msn:zhanglincon@hotmail.com


Blog信息
blog名称:
日志总数:99
评论数量:281
留言数量:4
访问次数:809432
建立时间:2005年11月17日




[JAVA XML]祥解WEB应用的部署文件web.xml
原创空间,  软件技术

zhanglincon 发表于 2005/11/21 17:25:04

  本文使用的服务器是Tomcat服务器,Web应用发布描述文件web.xml是在Servlet规范中定义的。web.xml存放在WEB-INF/目录下    在分析web.xml文档之前我想先说一下web.xml中根元素<web-app>各子元素的顺序问题,因为在web.xml中元素定义的先后顺序是不能颠倒的(除非在web.xml文件中使用XML Schema,本文不做讨论),否则Tomcat服务器可能抛出SAXParseException。    顺序如下:              <web-app>                      <display-name>                      <description>                      <distributable>                      <context-param>                      <filter>                      <filter-mapping>                      <servlet>                      <servlet-mapping>                      <session-config>                      <mime-mapping>                      <welcome-file-list>                      <error-page>                      <taglib>                     <resource-env-ref>                      <resource-ref>                      <security-constraint>                      <login-config>                      <security-role>                      <env-entry>                      <ejb-ref>                      <ejb-local-ref>web.xml中的开头几行是固定的,它定义了该文件的字符编码,XML版本以及引用的DTD文件。<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 在web.xml中顶层元素为<web-app>,其他所有的子元素都必须定义在<web-app>内 <display-name>元素定义这个web应用的名字,Java Web 服务器的Web管理工具将用这个名字来标志Web应用。 <description>元素用来声明Web应用的描述信息 <context-param>元素用来配置外部引用的,在servlet中如果要获得该元素中配置的值,String param-value = getServletContext().getInitParameter("param-name") <filter>        <filter-name>SampleFilter</filter-name>        <filter-class>com.lpdev.SampleFilter</filter-class></filter><filter-mapping>        <filter-name>SampleFilter</filter-name>        <url-pattern>*.jsp</url-pattern></filter-mapping>以上是配置了一个servlet过滤器,对于servlet容器收到的客户请求以及发出的响应结果,servlet都能检查和修改其中的信息,以上代码指名当客户请求访问Web应用中的所有JSP文件时,将触发SampleFilter过滤器工作,具体的过滤事务在由<filter-class>中指定的类来完成  <servlet>  <servlet-name>IncludeServlet</servlet-name>  <servlet-class>com.lpdev.IncludeServlet</servlet-class>    <init-param>     <param-name>copyright</param-name>     <param-value>/foot.jspf</param-value>     <load-on-startup>1</load-on-startup>  </init-param> </servlet>配置Servlet,<servlet-name>是servlet的名字,<servlet-class>是实现这个Servlet的类,<init-param>定义Servlet的初始化参数(参数名和参数值),一个Servlet可以有多个<init-param>,在Servlet类中通过getInitParameter(String name)方法访问初始化参数  <servlet-mapping>  <servlet-name>IncludeServlet</servlet-name>  <url-pattern>/IncludeServlet</url-pattern> </servlet-mapping>配置Servlet映射,<servlet-mapping>元素用来设定客户访问某个Servlet的URL,这里只需给出对于整个web应用的相对的URL路径,<url-pattern>中的“/”表示开始于Web应用的根目录例如,如果你在你本地机器上使用Tomcat4.1.x,并且创建了名为“myapp”的应用程序,<url-pattern>/IncludeServlet</url-pattern>该Servlet的完整web地址就是http://localhost:8080/myapp/IncludeServlet <session-config>元素用来设定HttpSession的生命周期,该元素只有一个<session-timeout>属性,时间单位是“秒”。 <welcome-file-list>当用户访问web时,如果仅仅给出web应用的Root URL,没有指定具体文件名,容器调用该配置,该元素可以包含多个<welcome-file>属性。 <taglib>元素用来设置web引用的tag library,例示定义了一个“/mytaglib”标签库,它对应的tld文件为:/WEB_INF/mytaglib.tld<taglib>    <taglib-url>/mytaglib</taglib-url>    <taglib-locationg>/WEB-INF/mytaglib.tld</taglib-location></taglib> <resource-ref>如果web应用由Servlet容器管理的某个JNDI Resource,必须在web.xml中声明对这个JNDI Resource的引用。<resource-ref>    <description>DB Connection</description> //说明    <res-ref-name>jdbc/sampleDB</res-ref-name> //引用资源的JNDI名字    <res-type>javax.sql.DataSource</res-type> //引用资源的类名字    <res-auth>Container</res-auth> //管理引用资源的Manager</resource-ref> <security-constraint>用来为Web应用定义安全约束 <security-constraint>    <web-resource-collection>//声明受保护的web资源       <web-resource-name>ResourceServlet</web-resource-name>//标识受保护web资源       <url-pattern>/ResourceServlet</url-pattern>//指定受保护的URL路径       <http-method>GET</http-method>//指定受保护的方法       <http-method>POST</http-method>    </web-resource-collection>    <auth-constraint>//可以访问受保护资源的角色       <description>this applies only to admin secrity role</description>       <role-name>admin</role-name>    </auth-constraint>    <user-data-constraint>       <transport-guarantee>NONE</transport-guarantee>    </user-data-constraint> </security-constraint> <login-config>元素指定当Web客户访问受保护资源时,系统弹出的登陆对话框的类型。例示配置了基于表单验证的登陆界面<login-config>    <auth-method>FORM</auth-method>//BASIC(基本验证法),DIGEST(摘要验证),FORM(表单验证)    <real-name>设定安全域的名称</realname>    <form-login-config>        <form-login-page>/login.jsp</form-login-page>        <form-error-page>/error.jsp</form-error-page>    </form-login-config> <security-role>指明这个Web应用引用的所有角色名字<security-role>    <description>描述</description>    <role-name>admin</role-name></security-role> (完)  


阅读全文(4272) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144765243 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号