【web.xml】项目从web.xml开始
前言
依自己目前的所闻所见,每个项目的WEB-INF下都会带有一个web.xml配置文件。当启动项目时,web容器(tomcat)会首先去读取web.xml中的内容,读取加载完成后才算完成了项目的启动。
详解
总体结构如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0" metadata-complete="true"> <display-name>Archetype Created Web Application</display-name>
<!--在这里配置-->
</web-app>
头部 : schema 引用
<web-app>:具体配置配置在此标签内,如下常见配配置项
1. <context-param>:配置上下文的初始参数
<!--容器在启动时就加载spring的配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param> <context-param>
<param-name>name</param-name>
<param-value>小明</param-value>
</context-param>
参数会加载到 context——>parameters中
此时可以在controller中利用以下方法获取
@RequestMapping("/home")
public String home(HttpServletRequest request){
String name = request.getServletContext().getInitParameter("name");
System.out.println(name+"_______________________");
return "/index2";
}
2.<listener>:配置监听器
<!--spring 启动IOC容器的监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3.<servlet>:配置servlet
<!--spring mvc 的DispatcherServlet-->
<servlet>
<servlet-name>enterprise-servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--spring mvc 的 配置文件,如果配置文件名和servlet-name相同则不需要此配置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:enterprise-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<!--对文件上传的限制-->
<multipart-config>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>enterprise-servlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
也可单独使用,使用默认servlet加载静态资源
<!--tomcat默认servlet为default-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/*.css</url-pattern>
</servlet-mapping>
4.<filter>:配置过滤器
<!--配置字符编码过滤器-->
<!--字符编码过滤器必须要配置在所有过滤器前面-->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.<session-config>:配置session过期时间
<!--session的过期时间,单位为分钟,优先级 servlet api(setMaxInactiveInterval(秒))—> 项目/web.xml—>tomcat/web.xml-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
6.<error-page>:配置错误跳转页面
<!--当页面访问不存在的请求时就跳转到404.jsp页面-->
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/pages/error/404.jsp</location>
</error-page>
7.<resource-ref>:配置JNDI数据源
<resource-ref>
<description>DHCP数据库连接池</description>
<res-ref-name>jdbc/microDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
此处可参看:这里 查看如何实现利用JNDI实现数据库连接。
加载顺序:会先读取<context-param>和<listener>两个节点
——>创建servletContext,将<context-param>的键值对交给servletContext
——>创建listener的类实例
——>filter
——>servlet(load-on-startup:标记容器是否在启动的时候就加载这个servlet,越小越先执行(0-正整数),负数或不配置则等到调用该servlet时才加载)
【web.xml】项目从web.xml开始的更多相关文章
- maven多模块项目,多web合并项目使用心得
Fixflow,做中国最好的开源流程引擎!项目地址https://github.com/fixteam/fixflow 此文章适合maven初学者或想接触maven的用户,讲的只是皮毛,高手请自觉略过 ...
- Web API 2 入门——Web API 2(C#)入门(谷歌翻译)
ASP.NET Web API 2(C#)入门 在这篇文章中 本教程中使用的软件版本 创建一个Web API项目 添加模型 添加控制器 使用Javascript和jQuery调用Web API 运行应 ...
- javaWeb项目中Web.xml的基本配置
这个地址写的非常好 ,欢迎大家访问 Å:http://www.cnblogs.com/hxsyl/p/3435412.html 一.理论准备 先说下我记得xml规则,必须有且只有一个根节点,大小写敏感 ...
- maven项目提示web.xml is missing或红色感叹号
1.web.xml is missing and <failOnMissingWebXml> is set to true 提示信息应该能看懂.也就是缺少了web.xml文件,<fa ...
- JavaWeb项目中web.xml有关servlet的基本配置
JavaWeb项目中web.xml有关servlet的基本配置: 我们注意到,tomcat下的conf中也有一个web.xml文件,没错的,所有的JavaWeb项目中web.xml都继承自服务器下的w ...
- SpringMVC项目中web.xml中的节点载入顺序问题
SpringMVC项目中web.xml中的节点载入顺序问题,之前以为web.xml中就是一些配置信息,和节点的顺序没有关系.后来才发现初始化时的载入顺序是和节点的顺序相关的. 完整的web.xml文件 ...
- 关于IDEA中web项目中web.xml配置文件标红的解决办法
原文链接 https://blog.csdn.net/qq_33451695/article/details/86684127 解决方法前提:web.xml没有实际错误,但依然被web.xml标红 出 ...
- java web 项目中web.xml 详解
web.xml详述: web.xml 是每个Java web 项目的必备文件,又叫做部署描述符,Servlet规范中定义的,是web应用的配置文件. 概念: .部署描述符文件就像所有XML文件一样,必 ...
- maven web项目中web.xml
web.xml 不是web工程必须的. web.xml文件用来配置那些东西:欢迎页,servlet,filter等. web.xml文件中定义了多少种标签元素,web.xml 中就可以出现它的模式文件 ...
- javaWeb项目中web.xml的xsd( XML Schemas Definition)文件
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://w ...
随机推荐
- ImCash:韩国最大交易所遭遇至暗时刻:2018年亏损1.8亿美元
Bithumb上个月遭到黑客攻击,随后要求用户小心存款,该公司报告称损失1.8亿美元(合2050亿韩元). 据<韩国时报>(Korea Times)报道:受到熊市影响,数字货币交易所实际交 ...
- 字节跳动19春招研发第一次在线笔试-A卷
结果:凉. 说明 此博客仅为笔试记录所用,如涉及版权或保密问题,请联系我及时删除. 联系方式:georgehu716@qq.com 1. 找零 时间限制:C/C++ 1秒,其他语言 2秒 空间限制:C ...
- MonggoDB(二)
分组聚合 如果你有数据存储在MongoDB中,你想做的可能就不仅仅是将数据提取出来这么简单,可能需要对数据进行分析并加以利用. 聚合框架:可以使用多个构件创建一个管道,上一个构件的结果传给下一个构件. ...
- Linux下Shell重定向
1. 标准输入,标准输出与标准错误输出 Linux下系统打开3个文件,标准输入,标准输出,标准错误输出. 标准输入:从键盘输入数据,即从键盘读入数据. 标准输出:把数据输出到终端上. 标准错误输出:把 ...
- 基础java中的package的命名规则和import的使用
包的命名一般用公司域名但是注意域名后辍要放前面如下 package com.cnblogs.i.Cat//对应地址是com/cnblos/i/cat.class也就是Cat.class的地址 如果想将 ...
- 201771010126 王燕《面向对象程序设计(java)》第十一周学习总结
实验十一 集合 实验时间 2018-11-8 1.实验目的与要求 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API: Vector类实现了长度可变的数组. Vecto ...
- [LeetCode] Transpose Matrix 转置矩阵
Given a matrix A, return the transpose of A. The transpose of a matrix is the matrix flipped over it ...
- 29 ArcMap许可服务器点击授权后无法进入下一步
系统描述:Windows server 2008 R2 ArcMap版本:10.6 系统要求各项都满足,包括补丁包都有,没有杀毒软件,ArcMap软件能安装上,但是到授权那步出问题 系统要求http ...
- Mesos源码分析(13): MesosContainerier运行一个Task
MesosContainerizer的实现在文件src/slave/containerizer/mesos/containerizer.cpp中 Future<bool> MesosC ...
- 【转载】C++ ,C#数据类型对照
C++ C#=====================================WORD ushortDWORD uintUCH ...