首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JSP 網頁開發中背景圖片與插入圖片的完整配置指南

     編輯:程式設計綜合問答

圖片儲存位置規範

在 Java Web 專案 (Maven 結構) 中,靜態資源建議放置於:

src/main/webapp/
├── images/          # 存放圖片 (背景圖、Icon、Banner 等)
│   ├── bg.jpg
│   └── logo.png
├── css/
│   └── style.css
├── js/
└── WEB-INF/

部署後可透過 https://host:port/contextPath/images/bg.jpg 存取。

設定背景圖片的三種方式

方式一:內嵌樣式 (簡單頁面)

<body style="background-image: url('images/bg.jpg'); 
               background-size: cover;
               background-position: center;
               background-repeat: no-repeat;">
    <!-- 頁面內容 -->
</body>

方式二:外部 CSS (推薦,易維護)


body {
    background-image: url('../images/bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed; /* 視差效果 */
}

<head>
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>...</body>

方式三:CSS 類別複用 (多頁面不同背景)


.bg-home { background-image: url('../images/home-bg.jpg'); }
.bg-login { background-image: url('../images/login-bg.jpg'); }
.bg-dashboard { background-image: url('../images/dashboard-bg.jpg'); }

/* 共用背景樣式 */
.bg-common {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 100vh;
}
<body class="bg-home bg-common">...</body>

插入內容圖片

基本語法

<img src="images/logo.png" alt="公司Logo" width="200" height="80">

動態路徑 (使用 JSP 表達式/EL)

<!-- 使用 pageContext.request.contextPath 確保路徑正確 -->
<img src="<%=request.getContextPath()%>/images/photo.jpg" alt="相片">

<!-- 或使用 JSTL core (需引入 taglib) -->
<%@ taglib prefix="c" uri="https://java.sun.com/jsp/jstl/core" %>
<img src="<c:url value='/images/photo.jpg'/>" alt="相片">

圖片Base64內嵌 (小圖標減少請求)

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="icon">

路徑問題完整解析

情境錯誤路徑正確路徑說明
JSP 在根目錄images/bg.jpgimages/bg.jpg相對路徑正確
JSP 在子目錄 /user/images/bg.jpg../images/bg.jpg需返回上層
使用絕對路徑/images/bg.jpg<%=request.getContextPath()%>/images/bg.jpg需包含 ContextPath
CSS 中引用圖片url('images/bg.jpg')url('../images/bg.jpg')相對 CSS 檔案位置

進階技巧

1. 圖片預載入 (提升體驗)

<script>
function preloadImages() {
    var imgs = ['images/bg.jpg', 'images/banner1.jpg', 'images/banner2.jpg'];
    imgs.forEach(function(src) {
        var img = new Image();
        img.src = src;
    });
}
window.onload = preloadImages;
</script>

2. 響應式圖片 (適配不同螢幕)

<picture>
    <source media="(max-width: 480px)" srcset="images/bg-mobile.jpg">
    <source media="(max-width: 768px)" srcset="images/bg-tablet.jpg">
    <img src="images/bg-desktop.jpg" alt="背景">
</picture>

3. 背景圖片漸變疊加 (文字可讀性)

.hero-section {
    background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
                url('../images/bg.jpg');
    background-size: cover;
    color: white;
}

常見問題排查

圖片不顯示檢查清單:

  1. 檔案是否實際存在於 src/main/webapp/images/
  2. 檔名大小寫是否一致 (Linux 區分大小寫)
  3. 瀏覽器開發者工具 Network 面板看請求狀態 (404? 302?)
  4. 路徑是否包含 contextPath (專案非根部署時)
  5. 是否被 Spring Security / Shiro 攔截 (靜態資源需放行)

總結

  • 圖片放在 webapp/images/,CSS 放在 webapp/css/
  • 背景圖用 CSS background-image,內容圖用 <img>
  • 路徑一律使用 ${pageContext.request.contextPath} 或 <c:url> 確保可攜性
  • 善用 background-size: cover、background-position: center 處理各種螢幕尺寸
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved