位置: IT常识 - 正文

JavaWeb web.xml配置详解(javaweb.xml配置文件)

编辑:rootadmin
JavaWeb web.xml配置详解

推荐整理分享JavaWeb web.xml配置详解(javaweb.xml配置文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java中web.xml路径怎么配,javaweb怎么配置,java web web.xml,javaweb.xml配置文件,java web xml配置,java web工程web.xml配置详解,java web xml配置,java web xml配置,内容如对您有帮助,希望把文章链接给更多的朋友!

参考:

XML 教程Java web之web.xml配置详解

Javaweb三大组件是:Servlet,Filter,Listener。

1、Servlet Servlet作为中转处理的容器,连接了客户端和服务器端的信息交互和处理。2、Filter 拦截用户请求,在服务器作出响应前,可以在拦截后修改request和response,实现开发者想得到的功能。3、Listener Listener就是监听器,监听主要是对ServletContext,HttpSession,ServletRequest这三大域对象的创建和销毁事件监听,还有就是对域对象属性的操作监听,当监听这些事件发生是就会进行一些适当的操作。0、概述

web.xml文件不是必须的

一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、filter、listener、启动加载级别等。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web应用。

web容器的加载顺序 ServletContext -> context-param -> listener -> filter -> servlet。

启动一个web项目,web容器会读取它的配置文件web.xml,读取和两个结点。 创建一个ServletContext(Servlet上下文),这个web项目的所有部分都将共享这个上下文 容器将转换为键值对,并交给ServletContext。 容器创建中的类实例,创建监听器。

1、头文件

参考:

XML:文件头部xmlns详解XML 中的 xmlns、xmlns:xsi、xsi:schemaLocation<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"></web-app>xmlns:xsi , xmlns, xsi:schmeLocation 这些看上去相近的属性是什么含义, 为什么他们的值是不一样的 URL?这些 URL 是否对应一些可以访问的资源,对于该文件的解析是否会需要下载这些 URL 对应的资源?

①、xmlns:h="http://xmlns.jcp.org/xml/ns/javaee" 为h元素定义一个命名空间,"http://xmlns.jcp.org/xml/ns/javaee"是标识该空间的唯一字符串(常采用URL形式) ②、xmlns="http://xmlns.jcp.org/xml/ns/javaee" 默认空间的唯一标识符"http://xmlns.jcp.org/xml/ns/javaee"

对于命名空间的标识符, URI 的作用仅仅是保证唯一性, 它并不需要对应一个可以访问的资源或文件 ! 但是, 有很多公司都会让namespace 的 URI 指向一个包含该命名空间信息的网页。

③、xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ④、xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 根据之前的知识我们可以理解, xmlns:xsi 定义了一个命名空间前缀 xsi 对应的唯一字符串 http://www.w3.org/2001/XMLSchema-instance。 但是读者会发现, 这个 xmlns:xsi 在不同的 xml 文档中似乎都会出现。 这是因为, xsi 已经成为了一个业界默认的用于 XSD(XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义 xml 文档结构的。

注: XML 解析器可以根据 一个 XSD 文件的内容来解析另一个 XML 文件, 判断该文件的结构是否和 XSD 文件中定义的一致。 XSD 文件 可以理解为 XML 文档可以自定义的语法或格式检查器

④这行的语法其实是, xsi:schemaLocation = "键" “值”,即 xsi 命名空间下 schemaLocation 元素的值为一个由空格分开的键值对。

前一个“键” http://maven.apache.org/POM/4.0.0 指代 【命名空间】, 只是一个全局唯一字符串而已。

后一个值指代 【XSD location URI】 , 这个值指示了前一个命名空间所对应的 XSD 文件的位置, xml parser 可以利用这个信息获取到 XSD 文件, 从而通过 XSD 文件对所有属于 命名空间 http://maven.apache.org/POM/4.0.0 的元素结构进行校验, 因此这个值必然是可以访问的, 且访问到的内容是一个 XSD 文件的内容。

例:

<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"></beans>xmlns="http://www.springframework.org/schema/beans"就是定义了一个默认命名空间, xmlns 的值可以随便改,只要是唯一的就行,如果更改了这里的值,下面的xsi:schemaLocation中的也要修改为对应的值。xmlns:context="http://www.springframework.org/schema/context"就是定义了一个 context 的命名空间,使用 context 下的元素,需要加上 context 前缀。xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",创建了一个 xsi 命名空间,可以通过xsi:schemaLocation来定义 xsd 文件的位置,以便 XML 解析器解析 XML 文件。2、配置欢迎页面<web-app><welcome-file-list><welcome-file>wecome1.jsp</welcome-file><welcome-file>wecome2.jsp</welcome-file><description>欢迎页面</description></welcome-file-list></web-app>JavaWeb web.xml配置详解(javaweb.xml配置文件)

上面代码中就配置了两个欢迎页面 wecome1.jsp 和 wecome2.jsp,显示时按照配置顺序显示,如果能找到 wecome1.jsp 文件就显示该文件,如果找不到就找第二个,依次类推。

欢迎页面是用于访问 web 工程时,只给了根名,没有给出具体的页面,这时就回去访问配置的欢迎页面,如果没有配置欢迎页面,不同的应用服务器可能会有不同的行为。对于 Tomcat 来说,会默认先查找 index.html 文件,如果找到了,就将其返回给浏览器;如果没有找到,就继续查找 index.jsp 文件,如果都没有找到,那么 Tomcat 就会显示 The requested resource is not available 的页面。

欢迎页面只是在没有给出具体的访问页面时会被用到,如果指定了具体页面,只要访问的路径正确,是可以正常访问的。

3、配置Servlet

为Servlet命名和定制URL

<web-app><servlet><servlet-name>TestServlet</servlet-name><servlet-class>com.yiyu.servlet.showAllServlet</servlet-class></servlet><servlet-mapping><servlet-name>TestServlet</servlet-name><url-pattern>/TestServlet</url-pattern></servlet-mapping></web-app><!-- <servlet-name></servlet-name> 指定servlet的名称 <servlet-class></servlet-class> 指定servlet的类名称 \<jsp-file></jsp-file> 指定web站台中的某个JSP网页的完整路径 <init-param></init-param> 用来定义参数,可有多个init-param。在servlet类中通过getInitParamenter(String name)方法访问初始化参数 <load-on-startup></load-on-startup>指定当Web应用启动时,装载Servlet的次序。当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet。当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它。 <servlet-mapping></servlet-mapping> 用来定义servlet所对应的URL,包含两个子元素 <servlet-name></servlet-name> 指定servlet的名称 <url-pattern></url-pattern> 指定servlet所对应的URL -->

<servlet-name>:注册的名字 <servlet-class>:配置的 Servlet 的全类名 <url-pattern>:为这个 Servlet 映射一个对外访问路径 servlet 和 url-pattern 之间的关系是 一对多的关系。

4、配置Filter

参考:

web.xml filter配置

详见该博客

包:servlet-api.jar

过滤器配置

<web-app><filter><filter-name>Filter1</filter-name><!--过滤器名称--><filter-class>D2020128.TestFilter</filter-class><!--过滤器类的包路径--><!-- 可使用<init-param>标签初始化 --></filter><!-- 一个过滤器需要过滤多种文件,则可以配置多个<filter-mapping>,一个mapping定义一个url-pattern来定义过滤规则 --><filter-mapping><!--过滤器映射--><filter-name>Filter1</filter-name><url-pattern>/TestServlet</url-pattern><!--指定过滤器作用的对象--></filter-mapping><filter-mapping><filter-name>Filter1</filter-name><!-- 所有外部访问都需要先经过该过滤器。 --><url—pattern>/*</url-pattern><!-- 作用于某一文件夹下所有文件 --><!-- <url—pattern>/dir/*</url-pattern> --><!-- 作用于某一种类型的文件 --><!-- <url—pattern>*.扩展名</url-pattern> --><!-- 作用于某一文件夹下某一类型文件 --><!-- <url—pattern>/dir/*.扩展名</url-pattern> --></filter-mapping></web-app>Filter 的 url-pattern 中配置的路径是访问已经存在的网络资源,如静态页面、jsp、servlet等。filter 和 url-pattern 之间的关系是 多对多的关系。即,Filter可负责拦截多个请求或响应;一个请求或响应也可被多个Filter拦截。(多个 filter 会根据 web.xml 中配置的顺序组成 filter 链)。

常用场合: (1)认证Filter (2)日志和审核Filter (3)图片转换Filter (4)数据压缩Filter (5)密码Filter (6)令牌Filter (7)触发资源访问事件的Filter (8)XSLT Filter (9)媒体类型链Filter

此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面、权限管理、过滤敏感词汇 等等工作。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁

过滤器生命周期:初始化init() → 过滤doFilter() → 析构(销毁)destroy() 过滤器有四种拦截方式!分别是:REQUEST、FORWARD、INCLUDE、ERROR。 过滤器链 顺序:按照web.xml中配置的顺序

4.1、如何创建Filter?

类似于servlet,需两步 第一步:创建Filter处理类(一般我们都用现有的) Filter必须实现javax.servlet.Filter接口,在该接口中定义了三个方法: (1) void init(FilterConfig config):用于Filter的初始化。FilteConfig用于访问Filter的配置信息。 (2) void destroy():Filter销毁前的操作,例如完成某些资源的回收。 (3) void doFilter(ServletRequest request,ServletResponse response,FilterChain chain): 实现过滤功能的核心方法,实现对请求request进行预处理,也可以实现对服务器响应response进行后处理—它们的分界线为是否调用了chain.doFilter(request,response),执行该方法之前,即对用户请求request进行预处理,执行该方法之后,即对服务器响应response进行后处理。

第二步:Web.xml文件中配置Filter Filter配置与Servlet的配置非常相似,区别在于Servlet通常只配置一个URL,而Filter可以同时配置多个请求的URL。配置Filter有两种方式: (1). 在Filter类中通过Annotation进行配置。 (2). 在web.xml文件中通过配置文件进行配置。

5、监听器<listener> <listerner-class>com.listener.SessionListener</listener-class> </listener>

监听器可以监听就是在 application,session,request 三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件。

application是ServletContext类型的对象。ServletContext 代表整个web应用,在服务器启动的时候,tomcat会自动创建该对象。在服务器关闭时会自动销毁该对象。

6、配置会话超时

单位为秒

<session-config> <session-timeout>120</session-timeout></session-config>7、配置上下文参数

本文链接地址:https://www.jiuchutong.com/zhishi/300457.html 转载请保留说明!

上一篇:猿创征文|信息抽取(2)——pytorch实现Bert-BiLSTM-CRF、Bert-CRF模型进行实体抽取(猿创部落是干什么的)

下一篇:基于VGGNet乳腺超声图像数据集分析

  • 我就这样掉进了“消费升级”的陷阱(我掉下去了)

    我就这样掉进了“消费升级”的陷阱(我掉下去了)

  • win10任务栏搜索框怎么关闭(win10任务栏搜索栏)

    win10任务栏搜索框怎么关闭(win10任务栏搜索栏)

  • 钉钉群聊怎么改自己名字(钉钉群聊怎么改群主)

    钉钉群聊怎么改自己名字(钉钉群聊怎么改群主)

  • 拼多多拼小圈不让别人看怎么设置(拼多多拼小圈不见了怎么恢复)

    拼多多拼小圈不让别人看怎么设置(拼多多拼小圈不见了怎么恢复)

  • 华为手机智能语音如何关闭(华为手机智能语音怎么开启)

    华为手机智能语音如何关闭(华为手机智能语音怎么开启)

  • 抖音作者回复怎么置顶(抖音作者回复怎么删除)

    抖音作者回复怎么置顶(抖音作者回复怎么删除)

  • 辅助微信号有什么风险(辅助微信号有什么区别)

    辅助微信号有什么风险(辅助微信号有什么区别)

  • 腾讯会议截屏主持人会知道吗(腾讯会议截屏主持人知道吗)

    腾讯会议截屏主持人会知道吗(腾讯会议截屏主持人知道吗)

  • 电脑不装显卡能用吗(电脑不装显卡能玩lol吗)

    电脑不装显卡能用吗(电脑不装显卡能玩lol吗)

  • x屏幕多大(12屏幕多大)

    x屏幕多大(12屏幕多大)

  • 手机银行app可以改手机号码吗(手机银行app可以贷款吗)

    手机银行app可以改手机号码吗(手机银行app可以贷款吗)

  • 机械硬盘当移动硬盘的弊端(机械硬盘当移动硬盘用怎么分区)

    机械硬盘当移动硬盘的弊端(机械硬盘当移动硬盘用怎么分区)

  • 手机256g是什么概念(手机256g是什么意思)

    手机256g是什么概念(手机256g是什么意思)

  • 为什么西瓜视频打不开了(为什么西瓜视频不能看了)

    为什么西瓜视频打不开了(为什么西瓜视频不能看了)

  • hdv和dv哪个是高清(hd和vd是什么意思)

    hdv和dv哪个是高清(hd和vd是什么意思)

  • ps中如何旋转选区框(ps如何旋转选定区域)

    ps中如何旋转选区框(ps如何旋转选定区域)

  • word怎么解除锁定(word怎么解除锁定,限制编辑也被锁了)

    word怎么解除锁定(word怎么解除锁定,限制编辑也被锁了)

  • 抖音怎么看对方在不在线(抖音怎么看对方跟谁聊天)

    抖音怎么看对方在不在线(抖音怎么看对方跟谁聊天)

  • 存储容量1 gb等于多少(存储容量1 gb等于什么)

    存储容量1 gb等于多少(存储容量1 gb等于什么)

  • 华为手环3如何关机(华为手环3如何充电)

    华为手环3如何关机(华为手环3如何充电)

  • 小米手环nfc什么意思(华为手环nfc)

    小米手环nfc什么意思(华为手环nfc)

  • 内贸电商如何进行数据选品(外贸电商和内贸的区别)

    内贸电商如何进行数据选品(外贸电商和内贸的区别)

  • 房间4g信号弱怎么解决(房间4g信号很差,有什么方法可以解决吗)

    房间4g信号弱怎么解决(房间4g信号很差,有什么方法可以解决吗)

  • 已解决无法访问您的文件该文件可能已被移至别处、修改或删除。 ERR_FILE_NOT_FOUND(无法访问或访问被拒绝是怎么解决)

    已解决无法访问您的文件该文件可能已被移至别处、修改或删除。 ERR_FILE_NOT_FOUND(无法访问或访问被拒绝是怎么解决)

  • Vue项目实战 —— 后台管理系统( pc端 ) —— Pro最终版本(vue3.0实战项目)

    Vue项目实战 —— 后台管理系统( pc端 ) —— Pro最终版本(vue3.0实战项目)

  • 微信小程序--》你真的了解小程序组件的使用吗?(微信小程序开发平台)

    微信小程序--》你真的了解小程序组件的使用吗?(微信小程序开发平台)

  • 电子税务局如何删除办税人员
  • 报关金额必须跟收汇金额一致吗?
  • 社团费用报销制度
  • 股权投资公司属于金融企业吗
  • 视同销售收入计入会计利润吗
  • 无形资产报废的例题
  • 建安行业外地预缴工会经费
  • 个人所得税没有税也要申报吗
  • 收到汇票的账务处理
  • 增值税预交怎么计算
  • 仓储费专用发票可以抵扣吗?
  • 水利基金的计税基础是什么
  • 土地增值税清算是什么意思
  • 蔬菜销售收入免增值税吗
  • 简易征收销项税额咋做账
  • 所得税 季报
  • 外籍人员工资个税
  • win11怎么关闭进程
  • 研发费用加计扣除优惠明细表
  • 提升一下网速
  • 项目投资总额是什么
  • surface pro记笔记
  • sgbhp.exe - sgbhp是什么进程 有什么用
  • 领用自产库存商品
  • php中implode
  • 固定资产转让出去租赁收入怎么入账
  • 房地产消防工程入什么科目
  • 【AIGC】1、爆火的 AIGC 到底是什么 | 全面介绍
  • 以前年度损益调整账务处理分录
  • 体验了一回
  • this.$router.push点了后hash地址改变了,页面却不跳转
  • php执行另一个php
  • thinkphp制作404跳转页的简单实现方法
  • 无形资产摊销的方法
  • 进口货物交哪些税费
  • 工资表社保表格怎么算
  • ps怎么怎么用
  • mysqlbinlog命令详解
  • react 上下文hooks内容存储到本地
  • 床垫发票
  • 税控服务费减免会计分录
  • 用友t3怎么结转本年利润
  • 百万级别数据库mysql
  • 外资企业和内资企业并举
  • 疫情期间社保减免优惠政策几个月
  • 外出经营一定要开
  • 开户套餐费是什么意思
  • 单位购买防疫物资请示
  • 被代持股份的股东需要负责吗
  • 进项税额已抵扣又红字冲红税务系统自动冲回吗
  • 独立法人资格是独立核算
  • 建账前应该考虑哪些问题
  • u盘怎么安装win2012
  • centos7如何设置ssh免密登陆
  • Fedora Core 4.0 安装图解
  • wave editor教程
  • 重装xp系统后键盘没反应
  • ubuntu20.04怎么用
  • linux 详解
  • win7出现正在启动就不动了
  • win8如何关闭开始屏幕
  • win1020h2累积更新
  • window8系统桌面啥样的
  • win10玩上古世纪闪退
  • win7系统无法进入登录界面
  • linux crontab用法
  • python挑战
  • Unity-Shader Sublime 自制shader提示插件
  • android 一个activity多个layout
  • Lesson01_01 HTML基础
  • jquery form serialize
  • nodejs libuv
  • 如何利用工具人
  • jquery插件大全
  • Vuforia How To Use Android Plugins in Unity Apps
  • win10的安装方式有哪些
  • 实例分析法名词解释
  • python批量ping
  • 不用税控盘可以勾选发票吗
  • 契税房屋套数如何计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设