解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题

通常把jsp页面放在webRoot的/WEB-INF下可以防止访问者直接输入页面。

而webRoot的/WEB-INF下的页面是受保护的,用户无法通过形如http://localhost:8080/test/webRoot/WEB-INF/content/xx.jsp来访问,他们的访问都必须透过struts处理请求才能达到。

然而,当把页面放在/web-inf下面时,JSP页面还是避免不了跟“外部”的js,css,图片“交互”,因为需要引入一些webRoot/css, webRoot/js, webRoot/images,而此时很容易引入失败,一般来说,此时用相对路径行不通了,所以必须使用绝对路径!下面一一总结。

一、引入webRoot/css

<link href="<%=request.getContextPath()%>/css/default.css" rel="stylesheet" type="text/css"/>

这个<%=request.getContextPath()%>即为/hh_test(项目名称),而<%=request.getContextPath()%>/css则相当于用绝对路径直接定位到了webRoot/css.

二、引入webRoot/js

<script type="text/javascript"  language="javascript" src="<%=request.getContextPath()%>/js/jquery-1.4.4.min.js"></script>

三、引入webRoot/images

<img src="<%=request.getContextPath()%>/images/4.gif"  alt="加载外部图片" />

------------------------------------------------------------------------------------------------------------------------------------------------------------

为了美观,也为了方便写代码,可以使用el表达式,即把<link href="<%=request.getContextPath()%>/css/default.css" rel="stylesheet" type="text/css"/>

改为<link href="${pageContext.request.contextPath}/css/default.css" rel="stylesheet" type="text/css"/>

原文地址:https://www.cnblogs.com/convict/p/9096481.html

时间: 2024-10-25 18:27:04

解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题的相关文章

JSP页面无法正常加载JS

在做练习时,发现jsp页面引入的js文件无法正常加载,相对路径和绝对路径都尝试过,浏览器控制台一直都报如下警告: 项目结构如下: 后来参考大佬们的解释后,在web.xml中添加了对js文件的过滤后,问题解决,原因就是如果不配置拦截路径,默认是会拦截外部引入的js文件,css文件被拦截也是同理.具体代码如下: <servlet-mapping> <servlet-name >default </servlet-name > <url-pattern >*.js

Node.js压缩web项目中的js,css和图片

安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别是uglify-js,clean-css,node-smushit 命令是npm install xxx ,我之前安装都是不适于全局安装的,这个应该无所谓 编写压缩的js(应该很好看懂) /*******压缩JS******/ var fs = require('fs'); var uglify = require("../../nodejs/node_modules/u

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url=Vz4TlygvnMyYVj105bCuzkusjF0G5rM6opHvEzhcCaJK5s1gFUZ3PBgAWCNsfY1RmtPf4ZEo8EV_Gd7SYKV4S_ 在有Struts部署的Java EE环境中,我们一般把jsp页面写在WebRoot\WEB-INF\content 目录下,

解决href标签跳转到WEB-INF下的jsp页面的办法

用的配置struts的action的方法. jsp页面这样写的. class里面的路径是下面的struts配置文件的路径 struts配置文件里这样写的. name里面的内容要和href里面的内用一致,然后这个action放在原来的package标签里面就行,不用放在另外一个package标签里.

IIS与TOMCAT协同工作---在IIS下运行JSP页面

转载:http://www.cnblogs.com/sjpisaboy/archive/2006/12/07/585749.html 最近碰到一个问题:我们实验室的一台IBM EServer服务器被运到学校的信息办进行托管,这台服务器上面跑着一些ASP.NET网站.ASP网站以及一个JSP的网站.服务器的操作系统是Window Server 2003,并在其上安装了IIS6.0.Tomcat5.5等服务器软件.众所周知,IIS服务器占用80端口,而Tomcat服务器一般用8080端口.本来两者互

java中文乱码解决之道(七)-----JSP页面编码过程

我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="GBK" %> 在上面代码中有两个地方存在编码:pageEncoding.contentType的charset.其中pageEnco

使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。

今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这里不得不吐槽一下国内资料的可信度,不说了,以后遇到问题尽量还是google吧,花点钱买个vpn值了,生命有限,节约时间. 下面记录下解决方法吧: 首先,确保jsp引入了jstl:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" pr

jsp 页面引入 java类

1 <%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> 2 <%@ page import="com.ccc.inf.acms.client.DynamicConfigLoader" %> 1. 引入所需的java类 1 <% 2 String uploadPath=DynamicConfigLoader.get("a

laravel 单页面按需加载js/css文件

我们常把公共的header以及footer提炼出来,但是每个子页面的css和js又不相同,如果都写在了父模板里,对不需要的子模板来说是负担,造成不必要的开销,此时就需要按需加载,laravel给我们提供了这样的便利 父模板里 在需要加载 js/css 的位置写入 @stack('backend-register-js') 子模板 @push('backend-register-js') <script> js代码 </script> @endpush ********或者*****