zoukankan      html  css  js  c++  java
  • 静态资源无法访问问题

     静态资源无法访问的问题有三种解决方式:

    1.使用Tomcat默认的servlet解决

    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>

    2.会将对静态资源的访问请求通过HandlerMapping映射到默认Servlet请求处理器DefaultServletRequestHandler对象。而该处理器调用了Tomcat的DefaultServlet来处理静态资源的访问请求。当然需要引入mvc约束

    <mvc:defult-servlet-handler/>3.方式三 在Spring3.0.4之后,Spring定义了专门用于处理静态资源请求的处理器ResourceHttpRequestHandler。
    并且添加了<mvc:resources/>标签,专门用于解决静态资源无法访问问题。 Location:静态资源所在目录
    mapping: 对资源的请求

    <mvc:resources location="/image/"    mapping="/image / ** "></mvc:resources>

     在没有添加静态资源的解决方法之前,jpg,js,css,都无法加载出来。下面使我们添加处理后的代码。

    搭建架构

    FirstController
    import javax.naming.ldap.Control;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.lang.annotation.Annotation;
    
    public class FirstController implements Controller {
    
        public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
            ModelAndView mv=new ModelAndView();
             /*  mv.setViewName("index.jsp");*/
            mv.addObject("msg","hello mvc");//key he value 
            mv.setViewName("index");
            return mv;
        }
    }

    Springmvc.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <bean id="/hello.do" class="cn.kitty.controller.FirstController"></bean>
        <!--方式一-->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!--前缀 prefix -->
        <property name="prefix" value="/"></property>
      <!--后缀 suffix -->
        <property name="suffix" value=".jsp"></property>
    </bean>
       
            </beans>

    index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page isELIgnored="false"%>
    
    <html>
    <body>
    <img src="image/2.jpg">
    <h2>Hello World!</h2>
    ${msg}
    </body>
    </html>

    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>Archetype Created Web Application</display-name>
      <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--初始化 -->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
    
        <load-on-startup>1</load-on-startup>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
      </servlet-mapping>
    
    </web-app>

    运行结果  美美哒

    后两种方式的代码都是写在

  • 相关阅读:
    Spring bean相关
    Springboot消除switch-case方法
    Springcloud中的region和zone的使用
    SpringCloud-Eureka-服务注册是如何发起的
    SpringBoot-SpringCloud-版本对应关系
    SpringCloud-Eureka-Provider&Consumer
    激活IDEA
    搞懂spring事务
    部署spring Boot项目到tomcat
    springBoot项目打war包部署到tomcat上
  • 原文地址:https://www.cnblogs.com/cuixiaomeng/p/7743298.html
Copyright © 2011-2022 走看看