1)目的:
在jsp中動態產生css語句,然後輸出給瀏覽器解析、渲染。
2)瀏覽器解析檔案的依據:
頁面載入後,瀏覽器會發起各個請求去下載各種資源。
例如下載css文件,然後根據css的解析規則去解析文檔。而如果下載的檔案Content-Type不符合,則瀏覽器會自動屏蔽掉。
知道瀏覽器的解析規則後,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文件,瀏覽器解析樣式成功!
例如偽裝成js,則將Content-Type設定為「application/x-javascript」