• 使用监听器解决路径问题,例如在jsp页面引入js,css的web应用路径


    使用监听器解决路径问题,例如在jsp页面引入js,css的web应用路径

    经常地,我们要在jsp等页面引入像js,css这样的文件,但是在服务器来访问的时候,这时间就有关到相对路径与绝对路径了。像网页这种,我们不可能去写死一个绝对路径,就需要来写相对路径。

    一、要想在jsp页面中引入 js,css等文件,web应用的路径可以使用${pageContext.request.ContextPath}

    例如:

    <script src="${pageContext.request.contextPath}/jquery/jquery-2.1.1.min.js"></script>

    二、使用监听器解决路径问题

    1、先写一个类来实现ServletContextListener,覆写里面的接口

    例如先写一个ServletStartUpListener.class

    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    
    /**
     * 资源访问路径监听
     */
    public class ServletStartUpListener implements ServletContextListener {
    
        @Override
        public void contextInitialized(ServletContextEvent servletContextEvent) {
            //将web用户名称保存到application中去
            ServletContext application = servletContextEvent.getServletContext();
            String contextPath = application.getContextPath();
            application.setAttribute("APP_PATH",contextPath);
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent servletContextEvent) {
    
        }
    }

     2、在web.xml文件中配置监听器,让应用在启动的时候监听到,并执行初始化方法,将web用户名称保存到application中去

      <!--使用监听器配置web路径-->
      <listener>
        <listener-class>com.lzc.rbac.web.ServletStartUpListener</listener-class>
      </listener>

     3、再在我们的jsp页面使用监听器解决路径问题

    例如:

    <script src="${APP_PATH}/jquery/jquery-2.1.1.min.js"></script>

     这里的${APP_PATH}就是获取在上面实现ServletContextListener类中的contextInitialized()方法里面设置的属性值application.setAttribute("APP_PATH",contextPath);

  • 相关阅读:
    SpringBoot及Vue3.0 登录验证码实现
    SpringBoot 文件上传、下载、显示
    Redis持久化
    Redis持久化之RDB、AOF详解
    SpringBoot AOP 记录操作日志、异常日志
    JAVA后端《持续集成 持续交付 持续部署》
    MySQL Binlog 介绍
    谷歌浏览器chrome即将在2020年底停止支持flash,我们程序员该怎么办
    年薪170万的阿里P8级员工征婚有感--话说阿里真有钱,这员工要求的条件真多
    为什么百度只抓取了首页而不抓取我的网站的内页的原因分析
  • 原文地址:https://www.cnblogs.com/limn/p/9502955.html
Copyright © 2020-2023  润新知