zoukankan      html  css  js  c++  java
  • SSM静态资源访问不了问题

    SSM静态资源访问不了问题

    • 因为配置SpringMVC会把全部请求都通过它拦截了
    <!--springmvc的前端控制器,拦截所有请求-->
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
    • 考虑spring-mvc.xml配置文件配置静态资源放行了没
    <!-- 设置静态资源不过滤 -->
    <mvc:resources location="/static/css/" mapping="/css/**" />
    <mvc:resources location="/static/images/" mapping="/images/**" />
    <mvc:resources location="/static/js/" mapping="/js/**" />
    
    <!-- 配置静态文件放行 -->
    <mvc:default-servlet-handler />
    
    • 配置完后就要在html或jsp中加载这些资源,可能路径写错

    • ${pageContext.request.contextPath} 是获得项目的webapp的目录的意思,静态资源访问不了可能这个没写
    • 在你的页面中如果需要使用webapp下的一些东西的时候,就可以在页面中使用这样的方式去获得这些资源文件

    • 编写了一个获取项目绝对路径的类,实现ServletContextListener接口
    • 出大问题,忘写@WebListener注解,所以根本不起作用,也就获取不到项目的静态资源了
    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import javax.servlet.annotation.WebListener;
    
    @WebListener
    public class AppListener implements ServletContextListener {
        @Override
        public void contextInitialized(ServletContextEvent servletContextEvent) {
            //取到ServletContext
            ServletContext context = servletContextEvent.getServletContext();
            context.setAttribute("ctx",context.getContextPath());
            System.err.println("----Servlet容器创建成功,ctx被放到ServletContext作用域----");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent servletContextEvent) {
    
        }
    }
    
  • 相关阅读:
    网络基础知识-TCP/IP协议各层详解
    MySQL及其图形界面navicat的安装
    Python 浅谈编程规范和软件开发目录规范的重要性
    python 浅析模块,包及其相关用法
    spring batch中MyBatisPagingItemReader分页使用介绍
    eclipse中git插件使用
    oracle中查找某用户执行某张表的操作操作记录
    redis集群主流架构方案分析
    消息队列常见的 5 个应用场景
    Kafka vs RocketMQ——单机系统可靠性
  • 原文地址:https://www.cnblogs.com/qtzd/p/12530990.html
Copyright © 2011-2022 走看看