文章出處
文章列表
一、前期理論準備
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”
上個傳送門:HTTP Content-Type信息表
文章列表
全站熱搜