文档章节

综合技术 --maven web.xml详解

求是科技
 求是科技
发布于 2015/08/19 15:19
字数 1117
阅读 786
收藏 8

//参考  http://mianhuaman.iteye.com/blog/1105522

本项目的web.xml文件内容

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>CQR</display-name>
  
   <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>
  
   <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
   </listener>
   
   <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    
    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>   
  
    <welcome-file-list>  
           <welcome-file>index.jsp</welcome-file>  
    </welcome-file-list> 
    
</web-app>

详解web.xml文件

一、开篇

1.每次启动web项目的时候,web容器都会去读取它的配置文件web.xml,读取<listener>和<context-param>两个节点。--我的项目只配了<listener>

2.紧接着容器创建一个servletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。

3.容器将<context-param>转换为键值对,并交给servletContext。

4.容器创建<listener>中的类实例,创建监听器。

二、load-on-startup

load-on-startup配置在<servlet>中,见本工程配置。

load-on-startup元素在web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。

在servlet的配置中,<load-on-startup>1</load-on-startup> 的含义是:容器在启动的时候就加载这个servlet。

三、加载顺序

加载顺序与它们在web.xml文件中的先后顺序无关,即不会因为filter写在listener之前就先加载filter。它们的加载顺序是:context-param -->listener -->filter -->servlet。

四、web.xml文件详解

web.xml文件中所有的元素都放在<web -app>与</web -app>之间。

<display-name></display-name> 定义站台的名称 --本项目配置中有


<discription></discription> 对站台的描述,可以不要


<context-param></context-param> 设定web站台的环境参数,它有两个子元素

<param-name></param-name> 指定参数的名称

<param-value></param-value> 设定参数值

eg:

<context-param>
    <param-name>my_param</param-name>
    <param-value>hello</param-value>
</context-param>

在此设定的参数,可以在servlet中用getServletContext().getInitParameter("my_param") 来取得


<filter></filter>包含如下子元素

<filter-name></filter-name> 指定filter名字

<filter-class></filter-class> 指定filter的类的名称

<init-param></init-param>用来定义参数,它有两个子元素

<param-name></param-name> 指定参数的名称

<param-value></param-value> 设定参数值

eg:本项目中字符编码过滤

   <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></filter>同时使用的是<filter-mapping></filter-mapping> 用来定义filter所对应的URL,它有两个子元素

<filter-name></filter-name> 指定filter的名字

<url-pattern></url-pattern> 指定filter所对应的URL

eg:

   <filter-mapping>  
        <filter-name>CharacterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
   </filter-mapping>


<listener></listener>用来设定listener接口,主要子元素有

<listener-class></listener-class>定义listener的类的名称

eg:

   <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
   </listener>


<servlet></servlet>用来声明一个servlet的数据,主要有以下子元素

<servlet-name></servlet-name> 指定servlet名称

<servlet-class></servlet-class> 指定servlet的类的名称

eg:

   <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>

与servlet一起使用的是<servlet-mapping>用来定义servlet所对应的URL,包含两个子元素

<servlet-name></servlet-name> 指定servlet的名称

<url-pattern></url-pattern> 指定servlet所对应的URL

    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>


<welcome-file-list></welcome-file-list> 用来定义首页的列单,包含一个子元素

<welcome-file></welcome-file> 指定首页的文件名称

例如:

    <welcome-file-list>  
           <welcome-file>index.jsp</welcome-file>
           <welcome-file>index.html</welcome-file>  
    </welcome-file-list>


<error-page></error-page>  用来处理错误代码或异常的页面,有三个子元素

<error-code></error-code>  指定错误代码

<exception-type></exception-type>  指定一个java异常类型

<location></location>  指定在该web项目内站台的资源路径

例如:

<error-page>
    <error-code>404</error-code>
    <location>/error404.jsp</location>
</error-page>
<error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/exception.jsp</location>
</error-page>


五、相应元素配置

1.web应用图标:指出IDE和GUI工具用来表示web应用的大图标和小图标

<icon>

<small-icon>/images/app_small.gif</small-icon>

<large-icon>/images/app_large.gif</large-icon>

</icon>

2.web应用名称:提供给GUI工具展现时该web应用的名称

<display-name> QQZQ </display-name>

3.web应用描述:给出这个web应用的一些说明性文本

<disciption> CQR servlet and JSP pages</disciption>

4.上下文参数:声明应用范围内的初始化参数

<context-param>
    <param-name>ContextParameter</para-name>        
    <param-value>test</param-value>        
    <description>It is a test parameter.</description> 
</context-param>

在servlet里面可以通过getServletContext().getInitParameter("context/param")得到

5.过滤器设置:将一个名字与一个实现javaxs.servlet.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>

6.监听器设置

    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>

7.servlet配置

    <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>

8.会话超时配置(单位为分钟)

   <session-config>    
      <session-timeout>120</session-timeout>    
   </session-config>

9.数据库连接池配置

  <resource-ref>    
       <description>JNDI JDBC DataSource of shop</description>    
       <res-ref-name>jdbc/sample_db</res-ref-name>    
       <res-type>javax.sql.DataSource</res-type>    
       <res-auth>Container</res-auth>    
   </resource-ref>


自此,结束。


© 著作权归作者所有

上一篇: IOS --网络请求
下一篇: 搭建maven工程
求是科技

求是科技

粉丝 100
博文 455
码字总数 238818
作品 0
成都
后端工程师
私信 提问
Tomcat 7 下对 JSP 进行预编译

问题: 有一个web应用,包含很多jsp,直接调用某些后台库的方法,但这些库通过 Java 的安全管理器运行在一个沙盒环境中,必须使用某个密钥签名后才能进行调用。 解决方案: 因此初步考虑使用以...

红薯
2011/09/20
2.9K
4
如何成为一个优秀的JSP程序员

一个普通的错误是把JSP当作简化的Java,它不是,(事实上, JSP是简化的Servlet)程序员通常试着没有学习要求的支持技巧而直接学习JSP。JSP是一个衔接技术,并且成功地连接你需要理解的另外的...

五味格子
2011/05/11
31
0
web工程中web.xml元素加载顺序以及配置实例

web工程中web.xml元素加载顺序以及配置实例 简介 web.xml是web工程的配置文件,容器加载web工程时,会首先从WEB-INF中查询web.xml,并加载其中的配置信息,可以将web.xml认为是web工程的入口...

jhon_n
2017/10/18
9
0
公开课

课程名称:Java EE企业级应用开发 课程大纲: 一、Java面向对象 1. Java面向对象编程 2. 泛型集合框架 3. I/O输入输出 4. 多线程 5. 网络编程 6. 反射Reflection 7. JDBC 二、HTML+CSS 8. H...

柯普瑞杨老师
2017/10/24
1
0
SpringBoot jsp详解

简单使用springboot创建工程 版本:1.5.8 开发工具:idea 2017.1.4 spring-boot 对模板引擎的支持有: FreeMarker Groovy Thymeleaf Mustache JSP 但是官方不建议实用jsp: JSPs should be a...

songhaiqiang
2017/10/23
83
0

没有更多内容

加载失败,请刷新页面

加载更多

mac下redis安装、设置、启动停止

常用命令说明 redis服务器:redis-server redis客户端:redis-cli redis性能测试工具:redis-benchmark AOF文件修复工具:redis-check-aof RDB文件修复工具:redis-check-rd redis设置临时密...

botkenni
10分钟前
3
0
好程序员web前端分享HTML5常见面试题集锦四

好程序员web前端分享HTML5常见面试题集锦四 1、为什么要初始化CSS样式? 答案:因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面...

好程序员官方
11分钟前
2
0
CDN的网络架构是什么?

CDN网络架构主要由两大部分,分为中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cac...

云漫网络Ruan
11分钟前
2
0
pandas入门07---可视化

01 入门 制作提供信息的可视化是数据分析的重要任务之一。首先介绍一下matplotlib库。 import matplotlib.pyplot as pltimport numpy as npdata = np.arange(10)print(data)plt.plot(da...

筠初
12分钟前
2
0
201_PyTorch中文教程:Torch与Numpy互操作

201_PyTorch中文教程:Torch与Numpy互操作 Numpy是经典的数学计算库,Torch中的Tensor可以与之互相转换,从而可以充分利用二者的计算函数和模型,以及使用其它支持Numpy的软件库和工具。但需...

openthings
12分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部