web.xml配置

该篇笔记参考了网上部分文章,仅仅作为学习之后的笔记

1、默认欢迎页的设置

    设置某路径的下的jsp文件(根目录是webapp)

<welcome-file-list>
    <welcome-file>/jsp/login.jsp</welcome-file>
</welcome-file-list>

    此处如果jsp页面上需要有后台查询的参数,需要转向servlet,这时候直接像下面这么写,欢迎页是出不来的,还需要在webapp下建一个文件夹,然后建一个文件名为userList.do文件。然后加上我们的springMVC拦截器。Tomcat知道这个静态文件的存在,去请求的时候,被拦截器拦截了,转向了动态请求

<welcome-file-list>  
    <welcome-file>user/userList.do</welcome-file>  
</welcome-file-list>  

附上springMVC的配置

 <!-- Spring MVC servlet -->  
    <servlet>  
        <servlet-name>SpringMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>/WEB-INF/spring-mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <async-supported>true</async-supported>  
    </servlet>  

还有一个办法就是在 ‘<welcome-file>’里写上jsp,然后在jsp里面进行重定向

<jsp:forward page='/user/userList'></jsp:forward>

 <welcome-file-list>里可以写多个<welcome-file>越上面的优先级越高,当不存在的时候,才会去尝试请求下一个。

2、命名与定制URL

<servlet>  
        <servlet-name>SpringMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>/WEB-INF/spring-mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <async-supported>true</async-supported>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>SpringMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping> 

servlet名为SpringMVC,所有/文件都会经过DispatcherServlet的处理,<init-param>的是用于定制初始化参数的,getServletCofig.getInitParameter('')可以获取参数名对应的值

load-on-startup:是指改servlet是否在启动时就加载(实例并初始化),里面的值必须为整数,小于0或没有指定的时候表示,只有在被选择的时候才去加载。大于0表示,在启动的时候就初始化并加载该servlet,且正数越小优先级越高,当值相等的时候,就自己选择顺序来加载。

async-supported:异步支持,true为启用异步支持。

--------

上下文参数

<context-param>  
         <param-name>contextConfigLocation</param-name>  
        <param-value>classpath:applicationContext.xml</param-value>  
 </context-param>

在servlet里可以通过 getServletContext.getInitParamter("")得到初始化参数

3、错误页面设置

可以通过异常类型或者错误码来指定错误处理页面

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

4、设置过滤器

过滤器可以拦截请求,对请求/响应进行设置编码、业务逻辑判断、拦截等操作,当用户访问一个页面的时候,请求会先经过过滤器的处理,最后才到达servlet

    <filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <async-supported>true</async-supported>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>

过滤器名:filter-name --- 过滤器的实现类 filter-class ----初始化参数:init-param ----初始化参数名---初始化参数值

filter-mapping这一块是为了将过滤器映射到servlet或者url中,跟web资源关联起来。所以里面就是设置 上面声明的过滤器的名字,然后url-pattern中写入过滤器映射的url,这里的/*是指全部URL

5、设置监听器(捕捉服务器的启动和停止,在启动/停止触发方法做相应的操作)

 applictaion,session,,request三个对象创建、销毁或往其中添加修改删除属性时自动执行代码的功能组件,可以监听客户端的请求,服务端的操作等

监听器可以分为三类

   servletContext监听(用于对servlet整个上下文进行监听(创建、销毁))

 servletContextAttributeListener(对Servlet上下文属性进行监听)

 session监听(对session创建、销毁、增删改属性等等状态的监听)

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

listener-class是监听器类的完整路径

6、设置会话(Session)过期时间,以分钟为单位

<session-config>
     <session-timeout>60</session-timeout>
</session-config>

7、与*的区别

<url-pattern>/*</url-pattern>

所有请求都会被捕捉过滤

<url-pattern>/</url-pattern>

不会拦截*.jsp

8、<url-pattern>与<servlet-class>

<url-pattern>:表明什么格式的url进入这个servlet

<servlet-class>:表明哪个java类来处理这个请求。

当客户端发出请求的时候,先到servlet-mapping中,根据请求的url所对应的url-pattern,来进行过滤,在到servlet-class中,找到处理的java类来处理这个请求

原文地址:https://www.cnblogs.com/cyx819340507/p/8385224.html