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)

大家都在看

  • springboot使用@data注解,减少不必要代码

    一、idea安装lombok插件 二、重启idea三、添加maven依赖 12345四、书写一个实体类import lombok.Data; @Datapublic class M…

    Java 2023年5月30日
    074
  • Java中 List、Set、Map 之间的区别

    一、List(列表) List的元素以线性方式存储,可以存放重复对象,List主要有以下两个实现类: ArrayList : 长度可变的数组,可以对元素进行随机的访问,向Array…

    Java 2023年5月29日
    098
  • 常见的Socket网络异常场景分析

    简介 在目前微服务的背景下,网络异常越来越常见了,而有一些网络异常非常模糊,理解什么情况下会导致什么异常,还是有一定难度的,为此我做了大量实验,来复现各种异常场景。 socket状…

    Java 2023年6月7日
    093
  • SpringBoot整合knife4j

    一、 knife4j简介 1、简介 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,它封装了swagger。前身是swagger-bootst…

    Java 2023年5月30日
    087
  • nginx:alias的使用

    1.访问目录不在nginx的主目录下,location和alias必须以 / 结尾。 location /gps/ { alias "D:/data/gps/"…

    Java 2023年5月30日
    0112
  • java~Map集合整理

    Map图 HashMap 是 Java Collection Framework 的重要成员,也是Map族(如下图所示)中我们最为常用的一种。不过遗憾的是,HashMap是无序的,…

    Java 2023年5月29日
    087
  • maven安装及导入本地jar包

    一、maven的安装方法 1.去maven官网下载适合的版本 下载地址: 官方下载地址 2.下载后解压到任意目录 3.配置系统环境变量 M2_HOME ,值为maven解压后的目录…

    Java 2023年6月15日
    0104
  • 【Java面试手册-算法篇】给定一个正整数,请找出小于这个数字的所有回文数字

    首先来看看回文数字的定义 : 回文数字:设n是一任意自然数,若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。比如12321、666是回文数字,而1234不是回文数…

    Java 2023年6月8日
    094
  • C语言输出格式工整的日历——2乘6样式(详见本文)

    本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码如不能在Dev-C++上完好运行,出现如下问题: E:\Dev-Cpp\源代码\万年历.c [Error] ‘…

    Java 2023年6月8日
    091
  • 利用MySQL实现分布式锁,涉及到乐观锁和悲观锁的思想

    对于一些并发量不是很高的场景,使用MySQL来实现分布式锁会比较精简且巧妙。 下面就一个小例子,针对不加锁、乐观锁以及悲观锁这三种方式来实现。 主要是一个用户表,它有一个年龄的字段…

    Java 2023年6月8日
    0189
  • Spring

    Original: https://www.cnblogs.com/Monkey9527/p/14019218.htmlAuthor: 爬蜀道的猴子Title: Spring

    Java 2023年6月7日
    068
  • 达梦-DBLINK数据库链接

    link:date: 2022-09-06 说明:DM-Oracle指的是在DM中创建链接至Oracle的Dblink。 软件 版本 操作系统 Redhat 7 及以上版本,麒麟V…

    Java 2023年6月13日
    0105
  • nginx的请求限制

    一、http协议的连接与请求 总结: HTTP请求是建立在一次TCP连接的基础之上。 一次TCP请求至少产生一次HTTP请求。 二、连接限制 limit_conn_module 配…

    Java 2023年5月30日
    097
  • Git学习笔记

    Git git官方文档:https://www.runoob.com/git/git-tutorial.html 卸载 1、删除环境变量 2、控制面删除 官网下载地址:https:…

    Java 2023年6月13日
    091
  • [spring]spring注解开发

    8.使用注解开发 1.bean spring4以后,注解依赖于aop包,确保你的lib中有它 确保开启了使用注解 2.组件代替bean实现自动注入 在配置文件中自动扫描包下的所有类…

    Java 2023年6月6日
    079
  • IDEA阅读spring源码并调试

    目标:搭建起Spring源码阅读和代码调试跟踪的环境,顺便建立一个简单的Demo,能够调试Spring的源代码 本节,主要介绍一下Spring源码阅读和调试的相关环境搭建,并使用M…

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