Content-Type偽裝 - 將jsp偽裝成css

來源:互聯網
上載者:User

一、前期理論準備

1)目的:
 在jsp中動態產生css語句,然後輸出給瀏覽器解析、渲染。
2)瀏覽器解析檔案的依據:
 頁面載入後,瀏覽器會發起各個請求去下載各種資源。
 比如下載css檔案,然後根據css的解析規則去解析文檔。而如果下載的檔案Content-Type不符合,則瀏覽器會自動屏蔽掉。

二、讓jsp變身css的前提

 知道瀏覽器的解析規則後,jsp需要做的就是把自己的Content-Type偽裝成"text/css"。

三、直接上代碼:

index.html

<!DOCTYPE HTML><html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>jsp檔案輸出為css檔案</title><link type="text/css" rel="stylesheet" href="./css.jsp" /></head><body>    <p class="demo">wall say: hello!</p></body></html>

css.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" session="false"%><%    // 偽裝響應的http頭部    response.setHeader("Content-Type", "text/css");        // 輸出css樣式    out.clear();    out.print("@charset \"utf-8\";\n");    out.print("p{color:red;}\n");%>

四、結果



成功將jsp偽裝成css檔案,瀏覽器解析樣式成功!

五、擴充

 根據這種偽裝規則,可以將jsp偽裝成任意的檔案格式,只要瀏覽器能夠解析。
比如偽裝成js,則將Content-Type設定為“application/x-javascript”

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.