zoukankan      html  css  js  c++  java
  • springmvc11

    解读中央调度器 < url-pattern/ >

    1 .do

    在没有特殊要求的情况下,springmvc 的中央调度器 DispatcherServlet 的< url-pattern/ >常使用后缀匹配方式,如写为 *.do 或者 *.action , *.mvc 等


    2 /

    可以写为 / ,因为DispatcherServlet会将向静态资源的获取请求,例如 .css .js .jpg .png 等资源的获取请求,作为是一个普通的Controller请求。中央调度器会调用处理器映射器为其查找相应的处理器。当然也是找不到的,所以在这种情况下,所有的静态资源获取请求也均会报404错误。


    发起的请求是由哪些服务器处理的:

    http: //localhost:8080/05_url_pattern/index.jsp tomcat
    http: //localhost:8080/05_url_pattern/images/1.jpg tomcat
    http: //localhost:8080/05_url_pattern/html/test.html tomcat
    http: //localhost:8080/05_url_pattern/some.do springmvc框架(DispatcherServlet)


    tomcat本身能处理静态资源的访问,像html,图片,js文件等都是静态资源


    tomcat的web.xml文件有一个 servlet 名称为 default,在服务器启动时创建。如下:

    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern> // "/" 表示静态资源和未映射的请求都给这个default处理
    </servlet-mapping>

    这个名叫 default 的 servlet 作用:
    1 处理静态资源
    2 处理未映射到其它servlet的请求


    使用 ” / “ 后,无法访问静态资源,可以访问动态资源

    // web.xml
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!--
    使用框架的时候,url-pattern可以使用两种方式
    1.使用扩展名方式,语法 *.xxxx , xxxx时自定义扩展名。常用的方式 *.do, *.action, *.mvc等等
    http://localhost:8080/myweb/some.do
    http://localhost:8080?myweb/other.do

    2.使用斜杠 "/"
    当你的项目使用了 / ,它会替换 tomcat 中的 default.
    导致所有的静态资源都给DispatcherServlet处理,默认情况下DispatcherServlet没有处理静态资源的能力,
    没有控制器对象能处理静态资源的访问,所以静态资源(html,js,图片,css)都是404

    动态资源some.do可以访问,原因时我们程序中有MyController控制器对象,能处理some.do请求
    -->
    <url-pattern>/</url-pattern>
    </servlet-mapping>

  • 相关阅读:
    JavaScript原型详解
    jQuery插件开发全解析
    再谈JavaScript闭包及应用
    狗日的Javascript中的闭包
    UML的基本图(一)
    项目开发-树形层级结构中的数量统计
    不要再坑人啦!NSOperation才是苹果推荐使用的多线程技术!
    linux下查看文件内容cat,more,less
    cocos2d-x -- 渠道SDK【棱镜】接入(2)
    关于虚拟机装kali-linux的联网问题
  • 原文地址:https://www.cnblogs.com/huaobin/p/14908543.html
Copyright © 2011-2022 走看看