JavaWeb-web.xml

web.xmlServlet规范制定的 JavaWeb应用发布描述文件.

名称 描述 常用 display-name 定义了WEB应用的名字 T description 声明WEB应用的描述信息 T distributable 元素为空标签,它的存在与否可以指定站台是否可分布式处理.如果web.xml中出现这个元素,则代表站台在开发时已经 被设计为能在多个JSP Container 之间分散执行. F context-param 声明应用范围内的初始化参数。在应用内共享. T filter 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。 T filter-mapping 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。 T listener servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。Listener元素指出事件监听程序类。 T servlet 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。 T servlet-mapping 定义了servlet与url之间的映射关系,其name与

元素相连. T session-config 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。

可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。 T mime-mapping 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。 F welcome-file-list 欢迎页面(

等) T error-page 异常被抛出时,指定将要显示的页面。 T jsp-config 用于为Web应用程序中的JSP文件提供全局配置信息。 它有两个子元素,

。 F security-constraint 用于将安全约束与一个或多个Web资源集合相关联 F login-config 指定服务器应该怎样给试图访问受保护页面的用户授权。它与

元素联合使用。 T security-role 定义安全角色.该定义包括对安全角色的可选描述以及安全角色名称。 F resource-env-refType 声明与资源相关的一个管理对象。 F resource-ref 声明一个资源工厂使用的外部资源。 F

对于 Servlet容器收到的客户请求,以及发出的响应结果,过滤器都能检查和修改其中的信息.在 web应用中加入过滤器,需要在 web.xml中配置两个元素: <filter></filter><filter-mapping></filter-mapping>.以下是 <filter></filter>元素的示范:


    SampleFilter
    com.yan.SampleFilter

以上代码定义了一个过滤器,名为 SampleFilter,实现这个过滤器的类是 com.yan.SampleFilter.

<filter></filter>的子元素:

属性 描述


    SampleFilter
    *.jsp

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

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

属性 描述

指定过滤器名,这里的过滤器名必须和

元素中定义的名称对应.

指定过滤器负责过滤的URL

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


    SampleServlet
    com.yan.servlet.SampleServlet

<servlet></servlet>元素的属性描述:

属性 描述

定义

名字

指定实现这个

的类

定义

的初始化参数,对应的是

定义的类中的

包含参数名和参数值,在一个

元素中可以有多个

类中通过

方法访问初始化参数.

指定当

应用启动时,加载

的次序,当这个值为正数或0时,

容器先加载数值较小的

,如果为负数或没有设定,那么

容器将在

客户首次访问这个

时加载它,即懒加载.

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


    SampleServlet
    /sample

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

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

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

属性 描述

指定

名字,与

元素中定义的名字匹配

指定访问这个

,这里只需给出相对于整个

应用的

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


    30

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


    login.jsp
    login.html

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


    DB Connection
    jdbc/sampleDB
    javax.sql.DataSource
    Container

其子元素描述:

属性 描述

说明

指定所引用资源的JNDI名字

指定所引用资源的类名字

指定管理所引用资源的

,有两个可选值:

,分别表示由容器还是

来创建和管理

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


        sample application
        /*
        POST

        admin

        NONE

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

元素 描述

声明受保护的

资源

声明可以访问受保护的资源的角色,可以包含多个

子元素

核心是

,它指定客户端和服务器之间的通信应为

默认为

,表示该应用程序不需要任何运输保证。

表示应用程序要求在客户端和服务器之间发送的数据必须以在传输过程中无法更改的方式发送。

机密意味着应用程序要求以防止其他实体观察传输内容的方式传输数据。

在大多数情况下,如果出现

标志,则表明需要使用

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

元素 描述

标识受保护的

资源

指定受保护的

路径,可以是多个

指定受保护的方法,可以是多个

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


    FORM
    Form-Based Authentication

        /login.jsp
        /error.jsp

<login-config></login-config>元素的各个子元素:

属性 描述

指定验证方法,它有三个可选:

(基本验证),

(摘要验证)和

(表单验证)

设定安全域的名称

当验证方法为

时,配置验证页面和出错页面

当验证方法为

时,登录界面路径

当验证方法为

时,设定出错页面

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


        The Role that is required to log in to the sample Application

    admin

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


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

Original: https://www.cnblogs.com/yw0219/p/12664271.html
Author: 舒山
Title: JavaWeb-web.xml

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/537891/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Spring Cloud Alibaba系列之分布式服务组件Dubbo

    本博客的例子代码可以在github找到下载链接:代码下载 SpringBoot、SpringCloud Alibaba系列博客专栏:链接 1、分布式理论 1.1、分布式基本定义 《…

    Java 2023年5月30日
    082
  • fastposter v2.7.1 紧急发布 电商海报编辑器

    fastposter v2.7.1 紧急发布 电商海报编辑器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发。二维码海报,…

    Java 2023年6月5日
    080
  • 一次IOS通知推送问题排查全过程

    原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 发现问题 在上周一个将要下班的夜晚,测试突然和我打招呼,说IOS推送的修复更新上线后存在问题,后台报…

    Java 2023年6月7日
    088
  • JAVA流程控制if、switch、while、do while、for、break、continue的用法及区别

    选择结构 if 选择结构 语法 if(布尔表达式) { //当布尔表达式为true将执行的语句 } if(布尔表达式) { //当布尔表达式为true将执行的语句 }else{ /…

    Java 2023年6月9日
    0100
  • java C 类自动转换规则

    C类型转换规则 posted @2018-05-05 21:34 zengkefu 阅读(194 ) 评论() 编辑 Original: https://www.cnblogs.c…

    Java 2023年5月29日
    083
  • Spring Boot:整合JdbcTemplate

    综合概述 Spring对数据库的操作在jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具。我们可以借助JdbcTemplate…

    Java 2023年5月30日
    071
  • RestTemplate–解决中文乱码

    【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的个…

    Java 2023年6月6日
    075
  • 【每日算法】二分查找法II

    left,right=1,n while left<=right: mid="left+(right-left)//2" if 条件: right=&qu…

    Java 2023年6月9日
    084
  • Eureka 服务注册与发现

    服务治理 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理。 在传统的 rpc 远程调用框架中,管理每个服务与服务之间依赖关系比较复杂…

    Java 2023年6月8日
    072
  • java多线程回顾3:线程安全

    1、线程安全问题 关于线程安全问题,有一个经典案例:银行取钱问题。 假设有一个账户,有两个线程从账户里取钱,如果余额大于取钱金额,则取钱成功,反之则失败。 下面来看下线程不安全的程…

    Java 2023年6月15日
    077
  • HashSet源码分析

    HashSet是使用HashMap来实现的 总结 (1)由于在hashMap中key不可以重复所以HashSet中的元素不可重复。 (2)同理hashMap中允许key为null,…

    Java 2023年6月8日
    075
  • 通过宿主主机访问部署在虚拟机上的网站

    网站部署在笔记本的虚拟机(CentOS 6.8)上,虚拟机通过桥接的方式联网,网站开启成功,在虚拟机上可以打开,但是在宿主的浏览器打不开,后面百度一下发现是虚拟机的防火墙导致的。关…

    Java 2023年5月30日
    062
  • JDK 1.8 Metaspace 详解

    JDK 1.8 Metaspace _ https://javadoop.com/post/metaspace_ Original: https://www.cnblogs.com…

    Java 2023年5月30日
    0100
  • JDK 自带的观察者模式源码分析以及和自定义实现的取舍

    setChanged 这个开关的作用——可以借鉴思想 1、使得主题具备了很大的伸缩性 假如没有 setChanged,那么一旦主题的状态变了,就不得不立即通知订阅者,这不是很合理,…

    Java 2023年5月30日
    077
  • CentOS7安装Git

    参考资料 下载地址 步骤 1.下载包 2.git-2.9.5.tar.gz 和 git-manpages-2.9.5.tar.gz上传服务器 3.解压并编译 参考资料 官网 Git…

    Java 2023年6月9日
    079
  • Mybatis源码4 Cache的实现和其原理

    Mybatis CachingExecutor, 二级缓存,缓存的实现 一丶二级缓存概述 上一章节,我们知道mybaits在构造SqlSession的时候,需要让SqlSessio…

    Java 2023年6月14日
    064
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球