`
wsql
  • 浏览: 11863477 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

web.xml文件分析

 
阅读更多

<?xml version="1.0" encoding="UTF-8"?> <!-- web.xml文件的schema信息 -->

<!-- 其他的元素都被放到了web-app标签之中 -->
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<description> <!-- description标签是对站点的描述 -->
</description>

<display-name> <!-- display-name标签定义站点的名称 -->
</display-name>

<distributable> <!-- distributable标签,该站点是否支持分布式管理 -->
</distributable>

<content-param> <!-- 用来设定web站台的环境参数-->
<param-name> <!-- 参数的名字 -->
MyName
</param-name>
<param-value> <!-- 参数的值 -->
SuperMos
</param-value>
</content-param> <!-- getServletContent().getInitParameter("MyName"); -->


<filter> <!-- 用来声明filter的相关的设定 -->
<filter-name> <!-- 这里保存的当然就是filter的名字 -->
SetCharacterEncoding
</filter-name>

<filter-class> <!-- 这里来定义的就是filter类 -->
com.yinhai.SetCharacterEncodingFilter
</filter-clss>

<init-param> <!-- 这里来定义参数 -->
<param-name> <!-- 这里来指定参数的名称 -->
encoding
</param-name>
<param-value> <!-- 这里来制定参数的值 -->
utf-8
</param-value>
</init-param>
</filter> <!-- filter必须和filter-mapping配合使用 -->

<filter-mapping> <!-- 指定filter所对应的URL -->
<filter-name> <!-- 这里来指定filter的名字 -->
SetCharacterEncoding
</filter-name>
<url-pattern> <!-- 这里来指定filter所作用的URL -->
/*
</url-pattern>
</filter-mapping>

<servlet> <!-- 用来声明一个servlet数据 -->
<servlet-name>
SuperMos
</servlet-name>
<servlet-class>
com.yinhai.SuperMosServlet
</servlet-class>
<jsp-file> <!-- 指定web站台中的某个jsp页面的完整的路径 -->

</jsp-file>
<init-param> <!-- 用来定义参数使用的,里面有name和value -->

</init-param>
</serlet>

<servlet-mapping> <!-- 和servlet配合使用的标签用来定义url -->
<servlet-name>
SuperMos
</servlet-name>
<url-pattern>
/yinhai/SuperMosquito
</url-pattern>
</servlet-mapping>

<session-config> <!-- 用来定义web站点的session参数 -->
<session-timeout> <!-- 用来定义该站点的session有效期,时间为分钟 -->
30
</session-timeout>
</session-config>

<mime-mapping> <!-- 定义一个扩展名和某一个MIME type做对应 -->
<extension> <!-- 扩展名的名称 -->
xls
</extension>
<mime-type> <!-- 对应的MIME的格式 -->
application/vnd.ms-excel
</mime-type>
</mime-mapping>

<welcome-file-list> <!-- 用来定义首页的列单 -->
<welcome-file> <!-- 定义首页的文件名称 -->
index.jsp
</welcome-file>
<welcome-file>
index.html
</welcome-file>
</welcome-file-list>

<error-page> <!-- 用来处理错误的代码或者是异常的页面 -->
<error-code> <!-- 指定错误的代码 -->
404
</error-code>
<location> <!-- 指定在web站点内的相应的资源的路径 -->
/error404.jsp
</location>
</error-page>
<error-page> <!-- 用来处理错误的代码或者是异常的页面 -->
<error-code> <!-- 指定错误的异常信息 -->
java.lang.Exception
</error-code>
<location> <!-- 指定在web站点内的相应的资源的路径 -->
/exception.jsp
</location>
</error-page>

<taglib> <!-- 用来指定jsp页面用到的tag Library路径 -->
<taglib-uri> <!-- 指定TLD文件的uri,在jsp页面中用taglib指令取出 -->
TagLib
</taglib-uri>
<taglib-location> <!-- 指定TLD文件的存放位置 -->
/WEB-INF/tlds/TagLib.tld
</taglib-location>
</taglib>

<resource-ref> <!-- 利用jndi可以取得可用资源,比如数据源 -->
<description> <!-- 资源的说明 -->
JNDI JDBC DataSource of SuperMos
</description>
<res-ref-name> <!-- 资源的名称 -->
jdbc/SuperMos_db
</res-ref-name>
<res-type> <!-- 资源的种类 -->
javax.sql.DataSource
</res-type>
<res-auth><!-- 资源的许可,由Container或者Application -->
Container
</res-auth>
<res-sharing-scope> <!-- 资源是否可以共享Shareable,Unshareable -->
Shareable
</res-sharing-scope>
</resource-ref>

</web-app>

<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素。
其中<taglib>元素在JSP 1.2时就已经存在;而<jsp-property-group>是JSP 2.0 新增的元素。
<jsp-property-group>元素主要有八个子元素,它们分别为:
1.<description>:设定的说明;
2.<display-name>:设定名称;
3.<url-pattern>:设定值所影响的范围,如:/CH2 或 /*.jsp;
4.<el-ignored>:若为true,表示不支持EL 语法;
5.<scripting-invalid>:若为true,表示不支持<% scripting %>语法;
6.<page-encoding>:设定JSP 网页的编码;
7.<include-prelude>:设置JSP 网页的抬头,扩展名为.jspf;
8.<include-coda>:设置JSP 网页的结尾,扩展名为.jspf。


一个简单的<jsp-config>元素完整配置:

<jsp-config>
<taglib>
<taglib-uri>Taglib</taglib-uri>
<taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>
</taglib>
<jsp-property-group>
<description>Special property group for JSP Configuration JSP example.</description>
<display-name>JSPConfiguration</display-name>
<url-pattern>/jsp/* </url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>GB2312</page-encoding>
<scripting-invalid>true</scripting-invalid>
<include-prelude>/include/prelude.jspf</include-prelude>
<include-coda>/include/coda.jspf</include-coda>
</jsp-property-group>
</jsp-config>


配置web.xml来限制对某些servlet的请求

有时我们只希望通过认证的用户才能请求某些servlet的话,就可以在web.xml中来进行相应的配置,来达到此目的。

这就要用到<security-constraint></security-constraint>元素。
对于tomcat,中web.xml使用security-constraint元素需要在位于<Tomcat-installation-directory>/conf/tomcat-users.xml的XML文件中创建用户名和密码。比如下面的这个tomcat-users.xml文件:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,manager"/>
<user username="admin" password="admin" roles="admin"/>
</tomcat-users>

此XML片段包括一个tomcat-users根元素,它包含一个或多个role和user元素。
然后在Web应用程序的web.xml中创建security-constraint、login-config和security-role元素。

<security-constraint>
<web-resource-collection>
<web-resource-name>HelloServlet</web-resource-name>
<url-pattern>/HelloServlet</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>


<auth-constraint>
<description>This applies only to the "tomcat" security role</description>
<role-name>admin</role-name>
</auth-constraint>


<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
</login-config>


<security-role>
<role-name>admin</role-name>
</security-role>

其中security-constraint元素包含一个或多个web-resource-collection元素,它是描述Web应用程序中的哪些web资源受到指定安全限制的保护。http-method元素指定安全限制覆盖的HTTP方法。上面的例子中,当我们对/HelloServlet的GET或POST请求时将触发配置的安全机制。
auth-constraint元素用于描述允许访问Web组件的安全角色。此例中安全角色的例子有tomcat、manager、admin。而只有当作为admin角色的用户才可以访问HelloServlet。

Web应用程序通过login-config元素来认证用户,并确认该用户是否为正确的角色。
longin-config包含的transport-guarantee子元素用来指定认证方法,BASIC是一种常见的Web认证方式,浏览器给用户提示一个对话框,要求输入用户名和密码,随后Tomcat将给出的用户名和密码与tomcat-users.xml中的用户名和密码进行比较,然后使用前面的security-constraint配置来确定用户是否可访问受保护的servlet。

除BASIC外,还可以是FORM、CLIENT-CERT、DIGEST等

其实这种认证方法实际上有两个步骤:
1、检查提供的用户名和密码是否正确。
2、判断用户是否映射到特定的安全角色。例如,用户可能提供了正确的用户名和密码,但没有映射到特定的安全角色,也将被禁止访问特定的Web资源

分享到:
评论

相关推荐

    Jboss启动报Failed to parse WEB-INFweb.xml; - nested throwable错误

    进一步分析错误日志,我们可以看到,Jboss抛出了一个 Duplicate throwable nesting of same base type的警告,这提示我们Jboss在解析web.xml文件时遇到了问题。 解决方案 要解决Failed to parse WEB-INF/web.xml; ...

    Web.xml配置详解

    详细介绍了web.xml文件的内容。

    web.xml配置详细讲解

    本文档详细讲解了web.xml的配置,对web.xml中应用到各元素进行分析

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    Web项目中使用Spring, 使用 Spring 的器监听器 ContextLoaderListener.docx

    一、Web项目中使用Spring o1. 新建一个Maven项目 o2. 使用之前的案例 o3. 定义index页面 o4. 定义RegisterServlet o5. 定义result页面 o6. web.xml 注册 Servlet o7. 运行结果分析 二、 使用 Spring 的器监听器 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    ASP.NET配置文件Web.config用法详解

    Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后...

    Pb_xml.zip_icecza_pb web_pb 6.5 安装使用_pb解析XML_xml

    加载文件:在这里,您可以只加载一个XML文件,并看到它解析在TreeView 。 pb_list_style :档案emplyees.xml将解析和转化利用pb_list_style.xsl ,由此产生的HTML中显示规则 pb_cat_style :档案emplyees.xml将...

    XML实用大全(web开发必备手册)

    3.1.3 将XML文件装入Web浏览器... 35 .2 考察简单的XML文档... 37 3.3 赋于XML标记以意义... 39 .4 为XML文档编写样式单... 40 .5 将样式单附加到XML文档上... 41 3.6 本章小结... 43 第4章 数据的结构化... ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    第3章 对xml文档进行分析 46 3.1 dom、sax和jaxp 46 3.2 使用dom解析xml文档 47 3.2.1 dom结构模型 47 3.2.2 dom解析器工厂 50 3.2.3 jaxp的错误类和异常类 52 3.2.4 用dom解析xml文档实例 53 3.3 使用sax...

    使用Java读取XML配置文件

    目前使用 SAX 比较多,与 DOM 主要区别是 SAX 是一行一行读取 XML 文件进行分析,适合比较大文件,DOM 是一次性读入内存,显然不能对付大文件。 下面是一个使用 SAX 解析 XML 配置文件的 Java 程序: ```java ...

    J2EE电子商务系统开发从入门到精通

    2.6.1 web.xml文件..... 38 2.6.2 Struts-config.xml文件..... 39 2.7 Struts标签库..... 43 2.7.1 Bean标签库..... 43 2.7.2 HTML标签库..... 44 2.7.3 Logic标签库..... 45 2.8 Struts开发环境搭建..... 46 2.8.1 ...

    XML实用大全----xml详细参考书

    3.1.3 将XML文件装入Web浏览器... 35 .2 考察简单的XML文档... 37 3.3 赋于XML标记以意义... 39 .4 为XML文档编写样式单... 40 .5 将样式单附加到XML文档上... 41 3.6 本章小结... 43 第4章 数据的结构化... ...

    altova-xmlspy-enterprise-2010-v12-3

    它提供了世界领先的XML编辑器,在原图形架构设计师,一个代码生成器,文件转换器,调试器,分析器,完整的数据库集成,支持WSDL,SOAP,XSLT,XPath,XQuery,XBRL,Open XML文档,加上视觉Studio和Eclipse插件,...

    WebOffice开发文档.pdf

    WebOffice开发文档.pdf 点聚 WebOffice 系统是一个功能强大且灵活的文档管理系统,提供了丰富的开发接口和文档处理功能。本文档总结了点聚 WebOffice 系统的开发文档,涵盖了系统的工作原理、开发流程、控件接口和...

    零基础学Java&cedil;Web开发&nbsp;XML技术基础知识

    本章将对XML基本知识进行详细的分析,然后介绍几种常见的XML文档处理技术,最后用Java对XML文档的解析来结束本章内容的讲解,通过本章的学习,读者将对XML的基础知识有一个比较清楚的认识,并学会使用常见的XML文档...

    jsp MVC 三角形面积 猜数字

    * Web.xml 文件用于配置 Servlet 和 JSP 文件的映射关系 * Web.xml 文件还可以用于配置其他 Web 应用参数 5.数据模型设计: * 数据模型是指应用程序中的数据结构和关系 * 数据模型可以使用 JavaBeans 或其他数据...

    spring mvc项目

    spring mvc maven项目,导入IDEA后无报错,需要在IDEA中...该项目使用servlet3.0规范,无web.xml,无spring.xml等配置文件,所有的配置均通过Java Config、注解搞定,项目中还集成了log4j2技术,以及前端html文件等。

    Java-Web测试题.doc

    在 Java Web 项目中,web.xml 文件是项目的主要配置文件,用于定义项目的各种设置,包括 Servlet 映射、filter 配置、监听器配置等。web.xml 文件通常位于 WEB-INF 目录下,该目录是 Java Web 项目的根目录。 3. 在...

Global site tag (gtag.js) - Google Analytics