zoukankan      html  css  js  c++  java
  • 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类来处理这个请求

  • 相关阅读:
    物理机和虚拟机互相可以ping通,还是无法连接
    CentOS 7: ping Name or service not known
    Ubuntu上安装搜狗输入法(sogou)
    成功安装 tesserocr
    The following untracked working tree files would be overwritten by merge
    切换本地凭据(Windows上登录的GitHub账号)
    配置了SSH后还是每次都要求输入密码
    dpkg dependency problems prevent configuration
    mui 设置应用全屏模式
    解决烦人的缓存问题!
  • 原文地址:https://www.cnblogs.com/cyx819340507/p/8385224.html
Copyright © 2011-2022 走看看