WEB.XML里的主要配置及含义

大家好,我是IT修真院,一枚正直纯洁善良的如刚入门的Java程序员,今天跟大家分享一下修真院官网JAVA任务二,深度思考中的知识点——什么是tcp/ip协议?TCP的三次握手指的是什么


1. 知识背景

前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。 web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。

WEB工程加载web.xml过程

WEB工程加载顺序与元素节点在文件中的配置顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。 WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位置。

加载过程顺序如下:

启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取两个结点。

然后容器创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。

容器将转换为键值对,并交给servletContext。

容器创建中的类实例,创建监听器。


2. 知识剖析

web.xml文件元素详解

schema

web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素中, 都必须标明这个 web.xml使用的是哪个模式文件。其它的元素都放在之中。

上下文参数

声明应用范围内的初始化参数。它用于向 ServletContext提供键值对,即应用程序上下文信息。 我们的listener, filter等在初始化时会用到这些上下文中的信息。 在servlet里面可以通过getServletContext().getInitParameter("context/param")得到。

过滤器

将一个名字与一个实现javaxs.servlet.Filter接口的类相关联。

监听器

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

Listener是Servlet的监听器,可以监听客户端的请求,服务端的操作等。

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

1. 指定servlet的名称

2. 指定servlet的类名称

3. 指定web站台中的某个JSP网页的完整路径

4. 用来定义参数,可有多个init-param。 在servlet类中通过getInitParamenter(String name)方法访问初始化参数

5.指定当Web应用启动时,装载Servlet的次序。 当值为正数或零时:Servlet容器先加载数值小的servlet,再依次加载其他数值大的servlet。 当值为负或未定义:Servlet容器将在Web客户首次访问这个servlet时加载它。

6. 用来定义servlet所对应的URL,包含两个子元素

7. 指定servlet的名称

8. 指定servlet所对应的URL

设置jsp

包括 两个子元素。 其中 元素在JSP 1.2 时就已经存在;而 是JSP 2.0 新增的元素。

会话超时配置
单位为min

欢迎文件页


3. 常见问题

  • 编码格式

  • 在业务层中的class 文件中直接引用Spring容器管理的bean

  • DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,需要分离静态文件(未使用nginx之类采取动静分离)


4. 解决方案

过滤器有对编码格式的支持CharacterEncodingFilter

1、在web.xml配置监听器ContextLoaderListener

2、部署applicationContext的xml文件

激活Tomcat的defaultServlet来处理静态文件

如:

default

*.css


5. 编码实战





    
        index.jsp
    

    
    
    404
    /WEB-INF/NoPage.jsp
    

    


    
    
        0
    

    
    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceEncoding
            true
        
    
    
        characterEncodingFilter
        /*
    

    
    
        HiddenHttpMethodFilter
        org.springframework.web.filter.HiddenHttpMethodFilter
    
    
        HiddenHttpMethodFilter
        /*
    

    
    
    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

    
    
    
    
        default
        *.css
    
    
        default
        *.swf
    
    
        default
        *.gif
    
    
        default
        *.jpg
    
    
        default
        *.png
    
    
        default
        *.js
    
    
        default
        *.html
    
    
        default
        *.xml
    
    
        default
        *.json
    
    
        default
        *.map
    

    
    
    
    
        
        springMVC
        org.springframework.web.servlet.DispatcherServlet
        
            
            contextConfigLocation
            
            
            
            
            
            classpath:spring-mvc.xml
        
        
        1
        true
    
    
        
        
        springMVC
        
        
        
        /
    



6. 参考文献

https://www.cnblogs.com/hellojava/archive/2012/12/28/2835730.html

https://blog.csdn.net/u010796790/article/details/52098258


PPT
视频


今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

作者:闵仕宇

不足之处,欢迎指正~

你可能感兴趣的:(WEB.XML里的主要配置及含义)